Recherche
Peut être aimerez-vous...
Sections du site
Sites Neamar
Lisez ces articles !
| La syntaxe heredoc en PHP |
|
| Programmation et tuning - Programmation Web |
| Écrit par Neamar |
| Dimanche, 18 Octobre 2009 20:13 |
|
Et voilà que vous avez un long texte récupéré dans des circonstances assez louches à mettre dans une variable PHP pour le traiter (qui sait ? preg_replace_callback, diff, levenshtein, ... les raisons sont multiples et ne nous concernent pas forcément). Le problème, c'est que votre texte est bourré de ' et ". La solution s'appelle la syntaxe Heredoc ; elle va vous permettre de récupérer le texte sans soucis. Il faut tout d'abord choisir un identifieur, qui permettra de signaler au parseur le début et la fin de votre texte. N'importe quelle chaîne fera l'affaire, le plus souvent on choisit EOF. <?php $MonTresLongTexte=<<<EOF Mon très long texte vient ici... Et ici aussi... Et ainsi de suite... EOF; Pour indiquer la fin, il va falloir marquer à nouveau le littéral choisi (EOF ici) et lui ajouter un point virgule (comme toute instruction PHP). Petit exemple pour comprendre : <?php $MonTresLongTexte=<<<EOF Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ac turpis libero, ac laoreet magna Curabitur posuere posuere vestibulum. Curabitur arcu lacus, vulputate quis lobortis ut, consectetur id velit. Fusce rhoncus metus vestibulum nulla blandit id iaculis augue cursus. Praesent ultrices suscipit odio, ut tincidunt diam blandit vitae. Sed accumsan dolor cursus justo congue quis dictum elit hendrerit. Cras quis tellus ipsum. Quisque vehicula erat tristique mi molestie lobortis. Donec lacinia auctor semper. Aliquam aliquet arcu nec dolor feugiat blandit. In hac habitasse platea dictumst. Aenean est est, vulputate non iaculis vitae, rhoncus in nisi. Vivamus faucibus odio et orci placerat mollis. In vitae felis massa. Nulla nec nisl vel est bibendum aliquam in quis nisl. Morbi et augue sem. Praesent eget dui arcu, eget facilisis magna. Aliquam nisi risus, euismod imperdiet sodales nec, gravida non neque. Aliquam ac tortor quis urna volutpat imperdiet sit amet et tortor. Les ' et " sont correctement échappés sans avoir à se fatiguer, cool non ? Les $maVariable sont remplacés par la variable (comme dans une chaine entre guillemets ""), voir la suite pour éviter ce comportement. EOF; Notons aussi l'existence de la syntaxe nowdoc, qui est à heredoc ce que ' est à " : une chaine complètement imparsée. <?php $MonTresLongTexte=<<<'EOF' Les ' et " sont correctement échappés sans avoir à se fatiguer, cool non ? Les $maVariable ne seront PAS remplacés. EOF; Il reste un dernier souci : le support pour nowdoc est assez récent (PHP 5.3.0) et il se peut que votre serveur ne l'inclue pas encore (il suffit de voir sur cette page, même GesHi qui est censé colorer le code a des soucis). Alors, à vos màj ! |
| Mise à jour le Dimanche, 18 Octobre 2009 21:11 |
