|
| eregi_replace problem med danske specialte~ Fra : Henrik Olsen |
Dato : 13-11-01 14:24 |
|
Nedenstående eksempel illusterer problemet.
$str = "En Historie kan være det rene Øregas for nogle, øl for andre.<br>";
echo eregi_replace ("øregas", "erstatning", $str);
echo eregi_replace ("Øregas", "erstatning", $str);
echo eregi_replace ("historie", "erstatning", $str);
echo eregi_replace ("Historie", "erstatning", $str);
giver følgende resultat
En Historie kan være det rene Øregas for nogle, øl for andre.
En Historie kan være det rene erstatning for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
Erstatningen er korrekt i eksempel 2,3 og 4, men ej i 1'eren. Kan nogle
hjælpe med dette?
PHP 4.06
| |
Anders Johannsen (13-11-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 13-11-01 16:07 |
|
> Erstatningen er korrekt i eksempel 2,3 og 4, men ej i 1'eren. Kan nogle
> hjælpe med dette?
<?php
echo $SERVER_SOFTWARE . "\n\n";
$str = "En Historie kan være det rene Øregas for nogle, øl for andre.<br>";
echo eregi_replace ("øregas", "erstatning", $str);
echo eregi_replace ("Øregas", "erstatning", $str);
echo eregi_replace ("historie", "erstatning", $str);
echo eregi_replace ("Historie", "erstatning", $str);
?>
giver
Apache/1.3.20 (Unix) (Red-Hat/Linux) Resin/1.2.2 PHP/4.0.6
En Historie kan være det rene erstatning for nogle, øl for andre.
En Historie kan være det rene erstatning for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
/A
| |
Henrik Olsen (14-11-2001)
| Kommentar Fra : Henrik Olsen |
Dato : 14-11-01 12:23 |
|
"Anders Johannsen" <anders@ignition.dk> wrote in message
news:3bf1370c$0$238$edfadb0f@dspool01.news.tele.dk...
....
<?php
> echo $SERVER_SOFTWARE . "\n\n";
>
> $str = "En Historie kan være det rene Øregas for nogle, øl for
andre.<br>";
> echo eregi_replace ("øregas", "erstatning", $str);
> echo eregi_replace ("Øregas", "erstatning", $str);
> echo eregi_replace ("historie", "erstatning", $str);
> echo eregi_replace ("Historie", "erstatning", $str);
>
> ?>
>
> giver
>
> Apache/1.3.20 (Unix) (Red-Hat/Linux) Resin/1.2.2 PHP/4.0.6
>
> En Historie kan være det rene erstatning for nogle, øl for andre.
> En Historie kan være det rene erstatning for nogle, øl for andre.
> En erstatning kan være det rene Øregas for nogle, øl for andre.
> En erstatning kan være det rene Øregas for nogle, øl for andre.
Min giver (med echo $SERVER_SOFTWARE)
Apache/1.3.20 (Unix) PHP/3.0.18 PHP/4.0.6
En Historie kan være det rene Øregas for nogle, øl for andre.
En Historie kan være det rene erstatning for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
Altså erstattes 1'eren ikke korrekt med Apache/1.3.20 (Unix) PHP/3.0.18
PHP/4.0.6. Nogle forslag?
| |
Anders Johannsen (14-11-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 14-11-01 12:41 |
|
> Altså erstattes 1'eren ikke korrekt med Apache/1.3.20 (Unix) PHP/3.0.18
> PHP/4.0.6. Nogle forslag?
Bruger du så 3.0.18 eller 4.0.6?
/A
| |
Henrik Olsen (14-11-2001)
| Kommentar Fra : Henrik Olsen |
Dato : 14-11-01 15:14 |
|
"Anders Johannsen" <anders@ignition.dk> wrote in message
news:3bf25838$0$269$edfadb0f@dspool01.news.tele.dk...
....
> Bruger du så 3.0.18 eller 4.0.6?
Ja, det slog mig også. Men jeg prøvede at omdøbe testfilen til .php4 for at
være sikker på fortolkning af 4.06'eren, og det var samme problem. Vil se på
locales-opsætningen i PHP nu.
| |
Kim Emax - ayianapa.~ (15-11-2001)
| Kommentar Fra : Kim Emax - ayianapa.~ |
Dato : 15-11-01 23:05 |
|
"Henrik Olsen" <ho_maps@hotmail.com> skrev
> Ja, det slog mig også. Men jeg prøvede at omdøbe testfilen til .php4 for
at
> være sikker på fortolkning af 4.06'eren, og det var samme problem. Vil se
på
> locales-opsætningen i PHP nu.
spændende.... vender du lige tilbage med løsningen? (og grunden til fejlen
--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop
| |
Henrik Olsen (20-11-2001)
| Kommentar Fra : Henrik Olsen |
Dato : 20-11-01 10:00 |
|
"Kim Emax - ayianapa.dk" <newsgroup@sletdette-ayianapa.dk> wrote in message
news:VZWI7.3054$Bs1.589855@news000.worldonline.dk...
....
> spændende.... vender du lige tilbage med løsningen? (og grunden til fejlen
>
Nej, vender desværre ikke tilbage med løsningen, eller forklaringen. Vil
blot fortælle at jeg har prøvet at indsætte en setlocale("LC_ALL","danish"),
og at det ikke hjalp.
| |
Troels Arvin (20-11-2001)
| Kommentar Fra : Troels Arvin |
Dato : 20-11-01 16:12 |
|
On Tue, 20 Nov 2001 10:00:25 +0100, "Henrik Olsen" <ho_maps@hotmail.com>
wrote:
> setlocale("LC_ALL","danish"), og at det ikke hjalp.
Det skal være
$previous_LC_ALL=setlocale("LC_ALL","da_DK");
(Det kan være rart at gemme, hvad den tidl. locale var, således at man
kan reetablere den længere henne i koden, hvis det bliver nødvendigt.)
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Henrik Olsen (22-11-2001)
| Kommentar Fra : Henrik Olsen |
Dato : 22-11-01 13:09 |
|
"Troels Arvin" <troels@arvin.dk> wrote in message
news:9tdru1$a0r$1@sunsite.dk...
> On Tue, 20 Nov 2001 10:00:25 +0100, "Henrik Olsen" <ho_maps@hotmail.com>
> wrote:
....
> $previous_LC_ALL=setlocale("LC_ALL","da_DK");
Virker desværre stadigt ikke. Måske en decideret bug i PHP's
eregi_replace(?)
| |
Niels Andersen (14-11-2001)
| Kommentar Fra : Niels Andersen |
Dato : 14-11-01 13:47 |
|
"Henrik Olsen" <ho_maps@hotmail.com> wrote in message
news:9sr70v$1bcm$1@news.cybercity.dk...
> Nedenstående eksempel illusterer problemet.
> $str = "En Historie kan være det rene Øregas for nogle, øl for
andre.<br>";
> echo eregi_replace ("øregas", "erstatning", $str);
> En Historie kan være det rene Øregas for nogle, øl for andre.
Det må være et "locale"-problem. Jeg har dog ikke sat mig tilstrækkeligt
ind i at sætte locales til at kunne hjælpe dig yderligere. :)
--
Mvh.
Niels Andersen
| |
Troels Arvin (23-11-2001)
| Kommentar Fra : Troels Arvin |
Dato : 23-11-01 11:56 |
|
On Tue, 13 Nov 2001 14:24:05 +0100, "Henrik Olsen" <ho_maps@hotmail.com>
wrote:
> Erstatningen er korrekt i eksempel 2,3 og 4, men ej i 1'eren. Kan nogle
> hjælpe med dette?
>
> PHP 4.06
Jeg har lige prøvet at reproducere problemet. Med min PHP 4.0.6 på min
Laptop's Red Hat 7.1/7.2 (det er en bastard-installation) er der ingen
problemer. Jeg har ikke rodet med locales eller lign. (og p.t. står den
til fx. LANG="en_US").
Ligesom Anders Johannsen kan jeg altså ikke reproducere problemet.
Hvilket operativsystem benytter du?
Har du prøvet, om det fungerer bedre med Perl Compatible Regular
Expressions (PHPs PCRE udvidelse):
<?php
$str = 'En Historie kan være det rene Øregas for nogle, øl for andre.<br>';
echo preg_replace('|øregas|i', 'erstatning', $str);
echo preg_replace('|Øregas|i', 'erstatning', $str);
echo preg_replace ('|historie|i', 'erstatning', $str);
echo preg_replace ('|Historie|i', 'erstatning', $str);
echo "<br>SERVER_SOFTWARE: $SERVER_SOFTWARE";
?>
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Henrik Olsen (27-11-2001)
| Kommentar Fra : Henrik Olsen |
Dato : 27-11-01 09:44 |
|
"Troels Arvin" <troels@arvin.dk> wrote in message
news:9tla38$inq$1@sunsite.dk...
> On Tue, 13 Nov 2001 14:24:05 +0100, "Henrik Olsen" <ho_maps@hotmail.com>
> wrote:
....
> Hvilket operativsystem benytter du?
SunOS xx.xxx.dk 5.6 Generic_105181-23 sun4u sparc (fra phpinfo()).
> Har du prøvet, om det fungerer bedre med Perl Compatible Regular
> Expressions (PHPs PCRE udvidelse):
>
> <?php
>
> $str = 'En Historie kan være det rene Øregas for nogle, øl for
andre.<br>';
>
> echo preg_replace('|øregas|i', 'erstatning', $str);
> echo preg_replace('|Øregas|i', 'erstatning', $str);
> echo preg_replace ('|historie|i', 'erstatning', $str);
> echo preg_replace ('|Historie|i', 'erstatning', $str);
>
> echo "<br>SERVER_SOFTWARE: $SERVER_SOFTWARE";
giver
preg_replace:
En Historie kan være det rene Øregas for nogle, øl for andre.
En Historie kan være det rene erstatning for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
En erstatning kan være det rene Øregas for nogle, øl for andre.
SERVER_SOFTWARE: Apache/1.3.20 (Unix) PHP/3.0.18 PHP/4.0.6
Det virker som man kan se stadigt ikke i eksempel 1. Meget frustrerende...
| |
|
|