Avatar billede multicoder Nybegynder
07. februar 2008 - 12:04 Der er 15 kommentarer og
1 løsning

Problemer med preg

Hej

Jeg har et stort problem med preg_replace, Problemet opstår når jeg søger efter både è og ; på samme tid. Hver for sig virker det fint.


<?
$var1  = "Dette er ; en è test...";

echo $var1;
echo "<BR>";

$var2 = preg_replace("/;/","5", $var1);
$var2 = preg_replace("/è/","8", $var1);

echo $var2;
?>


Resultat:
Dette er ; en è test...
Dette er ; en 8 test...

men hvis jeg sletter "$var2 = preg_replace("/è/","8", $var1);", så finder den fint ;

Håber i kan hjælpe.

pft
Avatar billede jakobdo Ekspert
07. februar 2008 - 12:11 #1
Se din kode her:

$var2 = preg_replace("/;/","5", $var1);
$var2 = preg_replace("/è/","8", $var1);

Du tager $var1 og behandler 2 gange.
Men det er jo kun dit sidste kald som rent faktisk gemmes i $var2.
Men du burde kunne bruge:
$var2 = preg_replace("/;/","5", $var1);
$var3 = preg_replace("/è/","8", $var2);
Avatar billede multicoder Nybegynder
07. februar 2008 - 14:00 #2
Arh.  min fejl, men har stadig problemet. Jeg prøver lige igen. :)

Jeg er kommet frem til at det har noget at gøre med min mysql db.

Hvis jeg fx her følgende kode.

$var1 = mysql_result($result,"0","name");
$var2 = "Lékué";

echo $var1; // Lékué
echo $var2; // Lékué

if($var1 == $var2)
echo "de er ens";
else
echo "de er ikke ens";

Så siger den at de ikke er ens.
Avatar billede jakobdo Ekspert
07. februar 2008 - 20:24 #3
Er begge strenge UTF8 eller ISO8859-1 ?
Avatar billede multicoder Nybegynder
07. februar 2008 - 22:05 #4
Min sql tabel er utf8_danish_ci, men jeg er lidt i tvivl om php/apache.

Hvis jeg ser i phpinfo under Environment så står der LANG=en_DK.UTF-8, ved ikke om det kan bruges.

Findes der en måde hvor jeg kan se om det er det ene eller det andet?
Avatar billede nielle Nybegynder
07. februar 2008 - 22:14 #5
Hvis udskriftenerne ser ens ud i de to tilfælde burde der vist ikke være problemer med encoding.

Men hvad mon mht. blanktegn i start eller slut? Måske er de to strenge faktisk ikke ens. Prøv med:

echo "[$var1]<br>"; // Lékué
echo "[$var2]"; // Lékué

og se om det står helt ens i de to tilfælde.
Avatar billede multicoder Nybegynder
07. februar 2008 - 22:27 #6
De er helt ens
[Lékué]
[Lékué]

Men hvis jeg smider dem gennem en md5(), så giver de to forskellige resultater.

md5($var1); dba84787b6dc513c8b4fe10afd6e26b1
md5($var2); 88ff822453c68d418255707fb1ae6708
Avatar billede nielle Nybegynder
07. februar 2008 - 22:47 #7
Hvad hvis du laver en Vis Kilde - er det så også det samme der står der i selve HTML koden?
Avatar billede multicoder Nybegynder
08. februar 2008 - 10:06 #8
Nu er vi inde på noget :)

var1 = [L&eacute;ku&eacute;]<BR>
var2 = [Lékué]

Men hvordan kan det være at resultatet fra sqlen ser anderledes ud.

Jeg har brugt phpmyadmin til at indsætte Lékué i tabellen.
Avatar billede nielle Nybegynder
08. februar 2008 - 10:11 #9
Så er det vel PhpMyAdmin som automatisk encoder teksten ved indsættelse.

Hvad sker der hvis du prøver at indsætte den samme tekst via et lille PHP script?
Avatar billede jakobdo Ekspert
08. februar 2008 - 10:16 #10
Jeg tror ikke phpmyadmin encoder teksten som indsættes i db.
Avatar billede nielle Nybegynder
18. februar 2008 - 18:23 #11
Er du kommet vidre med denne her?
Avatar billede multicoder Nybegynder
18. februar 2008 - 21:40 #12
Jeg er kommet lidt videre med det. Det hjalp da jeg fik set kilden via browseren.

Problemet opstår pga. at jeg har en htmleditor som omskriver é til &eacute;

Jeg har lavet en midlertidig løsning som ændre det tilbage igen når man gemmer i editoren.

Du må meget gerne smide et svar.

Tak for hjælpen..
Avatar billede nielle Nybegynder
19. februar 2008 - 06:59 #13
Svar :^)

Mon ikke der er lignende problemer med andre accent-tegn?
Avatar billede nielle Nybegynder
25. februar 2008 - 17:40 #14
Så mangler du bare at acceptere mit svar :^)
Avatar billede multicoder Nybegynder
25. februar 2008 - 21:52 #15
:-)
Avatar billede nielle Nybegynder
25. februar 2008 - 21:54 #16
Takker :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester