|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-10-14 16:17 UTC] wberg at doce dot ufl dot edu
Description: ------------ I run PHP 4.3.4 locally on Win XP Pro / ISS 5. The code supplied works flawlessly. On the Linux server, however, which currently runs PHP 4.3.9, it seems to ignore or mess up the \b word boundaries. The same thing happened when the server ran PHP 4.3.3RC1. Upgrading to 4.3.9 didn't help. You can see the code in action, where it produces the wrong results, on the Linux server at: http://www.kuruvinda.com/test.php You can get full PHP info() on this server at: http://www.kuruvinda.com/c.php Reproduce code: --------------- <?php $Pattern = "\b[a?????]rm[e????]\b"; $Blazon = "D'argent, au lion d'azur, arm? et lampass? de gueules, (le lion est quelquefois charg? d'une fleur-de-lis d'or, ou d'un ?cusson d'or ? l'aigle ?ploy?e de sable)."; print "Pattern: $Pattern<p>Blazon: $Blazon<p>"; # Should return "Found" if (preg_match("/".$Pattern."/i",$Blazon)) { print "Found"; } else { print "Not Found"; } $Blazon = "D'argent, au lion d'azur, arm?e et lampass? de gueules, (le lion est quelquefois charg? d'une fleur-de-lis d'or, ou d'un ?cusson d'or ? l'aigle ?ploy?e de sable)."; print "<p>Pattern: $Pattern<p>Blazon 2: $Blazon<p>"; # Should return "Not Found" if (preg_match("/".$Pattern."/i",$Blazon)) { print "Found"; } else { print "Not Found"; } ?> Expected result: ---------------- The match should find "arm?" as a whole word only in $Blazon and not in $Blazon2. Actual result: -------------- The match does not find "arm?" as a whole word in $Blazon, but does find it in $Blazon2, although it isn't a whole word there. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 13:00:01 2025 UTC |
I can't. The server is not mine and the administrator only upgrades major releases that are verified stable. However, in the meantime I got it to run properly on the Linux server by adding the following line to the top of my code: setlocale(LC_CTYPE, 'fr_FR'); Since the accents involved are all contained in the French language, this did the job. The question remains, of course, why the Windows version doesn't need this.