par
sirakawa » 16 févr. 2014, 21:34
Que signifienexactement pour vtoi ton expression régulière:
preg_match("/(^#en_tete1).*(#en_tete2$)/sm", $ligne))
formulé en clair en remplaçant les ? par leur traduction
je cherche si la ligne commence par "?",
se continue avec "?"
se termine avec "?"
Une ligne peut-elle avoirb cette structure?
Voici un test qui me semble limpide:
<?PHP
$existe=false;
define('fichier', 'test.txt');
@$fv = fopen(fichier, 'r') or die('Ouverture en lecture de "' . fichier . '" impossible !');
//à quoi sert existe s'il ne change jamais?
while (!feof($fv) && !$existe)
{
$ligne = fgets($fv, 1024);
$res = preg_match("/(^#en_tete1).*(#en_tete2$)/sm", $ligne, $matches);
print "<br>$res $ligne";
var_dump($matches);
}
fclose($fv);
?>
En fait, il suffit de tester si le premier caractère de la ligne est un # et de sauvegarder dans une variable jusqu'à ce qu'on en trouve un autre où on sauvegarde dans une autre variable