Les codes php et perl qui suivent ne donnent pas le même résultat, le 1er test php est erroné !
./bug.php
#.+?End#us : KO
#End#us : Ok
./bug.pl
.+?End : Ok
End : Ok
Est-ce que j'ai loupé qqc ou est-ce un bug php ?
PS : c'est mon 1er message sur ce forum et je n'ai pas trouvé comment attaché le fihier de taille 1Mo ... que je n'arrive pas à réduire plus, 'toutes' autres modifications entrainant la disparition du problème. Cependant j'ai posté le même message avec le fichier sur le forum debian.
Pour info mon système : Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
#!/usr/bin/php
<?php
$contenu=file_get_contents('bug.txt');
function test($filtre) {
global $contenu;
echo $filtre," : ";
if ( preg_match($filtre,$contenu) ) echo "Ok\n"; else echo "KO\n";
}
test("#.+?End#us");
test("#End#us");
?>
Code : Tout sélectionner
#!/usr/bin/perl
use strict;
our $contenu='';
sub test {
my $filtre=shift;
print $filtre." : ";
if ( $contenu =~ /$filtre/us ) { print "Ok\n"; } else { print "KO\n"; }
}
open(FIC, 'bug.txt');
while (<FIC>) {
$contenu.=$_;
}
test(".+?End");
test("End");