Optimiser le traitement des chaines de caractères en PHP
… quelques règles pour accélérer sensiblement les vitesses d’affichage des textes logs en PHP
De fait, de par leur usage intensif des chaînes, voici quelques conseils qui pourraient profiter aux scripts lourds ou utilisant lourdement les chaines de caractères, afin d’améliorer leur performance.
1) Utiliser les apostrophes (‘) plutôt que les guillemets (« ) :
C’est l’une des règles de l’art de la gestion des chaînes, mais elle mérite d’être rappelée :
il est plus rapide pour le serveur de traiter $nom=’Toto’ que $nom= »Toto », simple parce que l’usage des guillemets lui indique qu’il doit convertir en sa valeur toute variable contenue par la chaîne.
En revanche, l’encadrement d’une chaîne par deux apostrophes indique au serveur qu’elle est « brute », sans variable à traiter.
Ajoutons que lorsque la chaîne en question contient des balises HTML avec attributs, les guillemets de ces derniers deviennent plus faciles à gérer :
$lien = '<a href="webtolosa.php">THE site !</a>';
est plus gérable que :
$lien = "<a href=\"webtolosa.php\">THE site !</a>";
2) Utiliser des virgules avec echo :
pour ceux préférant sortir les variables des chaînes plutôt que de les laisser traiter par l’encadrement de guillemets, il est préférable d’utilise les virgules de echo plutôt que de concaténer texte et variable.
Concatenation : echo 'Je m'appelle ' .$prenom. ' ' .$nom. '.';
Virgules : echo 'Je m'appelle ', $prenom, ' ', $nom, '.';
La raison est simple : la concaténation crée en mémoire une nouvelle chaîne, tandis que la virgule, une spécificité peu connue de echo, affichera simplement les valeurs les unes derrières les autres, évitant cette duplication en mémoire…
Ce sont des règles que j’applique régulièrement !
oui ^^
str_replace("’","\’",$chaine) fonctionne parfaitement
thx
je ne connais pas le contexte de ton script, mais tu as apparemment 3 solutions :
– soit tu insères dans ton fichier (ou ta base) de départ des slashes avant les apostrophes (avec la fonction addslashes($ta-chaine) )
– soit tu ajoutes un slashes à la chaine extraite devant les apostrophes (avec la même fonction)
– soit tu replaces toutes les apostrophes par \’ sur les chaines d’arrivée (avec la fonction str_replace( »’, ‘\ », $ta-chaine) )
mouai … pour les virgules je savai pas on en aprend tt les jours …
je cherchais comment pouvait on géré le fait qu’une chaine de caractere contienne un apostrophe … je m’explique :
un formulaire, je récupere les résultat et les réécrits dans une autre page (que je génere avec fileopen(… .php, ‘w’);
mai si on entre par exemple "une porte d’autobus"
comme réponse au formulaire, la chaine contien un apostrophe et dans mon fichier générer, jai un apostrophe qui fou tout par-terre … :C
ce que je cherche c’est un spcript de traitement de chaine de caractère qui remplace les ‘ par des \’
:/ ?
C’est intéressant cet article. Surtout le coup des ‘ à la place des ", et j’avoue que je ne connaissais pas le coup des virgules dans le echo.
Je me coucherai donc moins bête ce soir grâce à toi ! lol
Salut.
Pas mal cet article.
Je ne savait pas qu’on pouvait utiliser les ‘,’ à la place des ‘.’