Bonjour,
Je cherche à match une nouvelle ligne suivie d'un texte. Mais absolument aucun moyen de match la nouvelle ligne. Je ne pourrai évidemment pas vous énumérer tout ce que j'ai pu tenter mais voilà le contexte :
Je fais tourner PHP 7.1.9 sur un serveur Apache 2.4.27, le tout dans Wamp 3.1.0 (64 bits) sur mon Windows 10.
C'est un fichier php (UTF-8, testé en format Windows et en format Unix) qui crée un autre fichier php (par conséquent UTF-8, testé en format Windows et en format Unix), je vous passe les détails mais en gros les variables suivantes sont ajoutées au fichier.php avec fwrite :
Code :
fwrite($handle, "<?php\n #Config.php#\n\n //installation param\ndefine(\"install\", \"1\" );\n\n //errors param\ndefine(\"max_error_lvl_show\", 1);\n?>" ); //lors de la création du fichier fwrite($handle, "\n //". $comment. "\n". $contents); //le $handle insère au bon endroit le texte fwrite($handle, "define(\"". $name. "\", \"". $value. "\" );\n". $contents); //le $handle insère au bon endroit le texte ...etc.
|
Je récupère donc quelque chose comme :
Code :
<?php #Config.php# //installation param //errors param define("max_error_lvl_show", 1); //language params define("lang_default", "fr" ); //test ?>
|
Maintenant, pour insérer au bon endroit d'autres textes, je dois placer mon curseur juste avant :
J'utilise donc une regex :
Code :
$comment = "language params"; $pattern = '/\n \/\/'.$comment.'/';
|
Mais ça ne match pas, le plus étonnant c'est que :
Code :
$pattern = '/. \/\/'.$comment.'/s';
|
Ne fonctionne pas non plus, bon j'ai essayé des dizaines de combinaisons, mais rien ne fonctionne. Au passage, les essais précédents fonctionnent sur le site regex101. Si je n'essaye pas d'attraper le saut de ligne, je choppe bien mon texte, donc c'est vraiment le saut de ligne qui chie.
Donc si quelqu'un a une idée, merci.
Message édité par MaybeEijOrNot le 22-04-2018 à 01:48:44
---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.