Fonction explode... à deux reprises [PHP] - PHP - Programmation
Marsh Posté le 16-06-2006 à 16:10:30
Code :
|
Marsh Posté le 16-06-2006 à 16:16:51
nargy a écrit :
|
Merci bien, ça fonctionne
Je n'aurais pas été contre une petite explication avec, mais je vais pas charrier, je m'en vais feuilleter le manuel PHP ...
Marsh Posté le 16-06-2006 à 16:25:14
nargy a écrit : sans oublier htmlentities() au cas où les titres ou les liens contiendraient des accents |
Perdu !
htmlentities sert surtout à escaper les caractères genre <, >, & et " pour ne pas tout faire foirer. Après y'a les entités latin1, mais on s'en fout si on maîtrise l'encoding de la page. Dans ce cas, htmlspecialchars suffirait...
Marsh Posté le 16-06-2006 à 16:31:47
FlorentG> merci des précisions, je sais encore utiliser htmlentities(). Pour info, n'utilise jamais htmlspecialchars() si tu veux pas te retrouver avec un bug qui viendrait d'on se sait pas où un jour ou tu change la config de ton serveur.
Marsh Posté le 16-06-2006 à 16:34:23
Pour en revenir à ton code, le problème vient de cette ligne:
Code :
|
Car la variable $i est incrémentée à chaque itération :
Code :
|
Donc, faire attention quand on utilise la même variable pour plusieurs choses.
Marsh Posté le 16-06-2006 à 16:37:24
nargy a écrit : FlorentG> merci des précisions, je sais encore utiliser htmlentities(). Pour info, n'utilise jamais htmlspecialchars() si tu veux pas te retrouver avec un bug qui viendrait d'on se sait pas où un jour ou tu change la config de ton serveur. |
HEINNNNNNNNNNNNNNNNNNNN ????
htmlentities réalise EXACTEMENT la même chose que htmlspecialchars, il encode juste en plus les entités latin1 (définies par la spec html4.01). Comme dit, si tu maîtrise ton encoding, pas besoin d'entités pour les caractères accentués. Et tout ça n'a rien à voir avec la config du serveur
Marsh Posté le 16-06-2006 à 16:40:46
Bon, c'est fini là???? oui, le serveur utilise un encoding par défaut, oui, tu utilise un include() avec la définition de ton charset, et que si tu change pour avoir un site multilingue.......
Marsh Posté le 16-06-2006 à 16:42:16
C'est pour ça que je fait tout en UTF-8 Et si jamais une page incluse est dans un autre charset, elle est converti à la volée en utf-8
Pour l'encoding par défaut, j'envoi aussi mes propres headers HTTP, donc plus de problème
Marsh Posté le 16-06-2006 à 16:52:47
Juste manière de faire l'enc*** de mouches...
Code :
|
Le for() est plus rapide et moins consommmateur de mémoire que le foreach...
Marsh Posté le 16-06-2006 à 17:01:26
On pourrait aussi utiliser une regexp Ca tient en une ligne
<?php |
Marsh Posté le 16-06-2006 à 17:08:02
Merci à tous pour vos précisions
Code :
|
Je ne sais pas trop quoi penser en lisant ça. Ce n'est certes pas faux (enfin j'te fais confiance ), mais n'est-ce pas négligeable avec nos machines/serveurs actuel(le)s ?
Marsh Posté le 16-06-2006 à 17:34:33
Ben tout dépend, c'est sur que sur un petit tableau le gain n'est pas vital ; c'est juste manière d'optimiser ce qui peut l'être facilement.
Marsh Posté le 16-06-2006 à 16:06:53
Bonjour,
Voilà, j'ai besoin de parser deux fois une chaîne de caractères, qui est du type :
Lien1|Titre1*Lien2|Titre2*Lien3|Titre3 ... etc.
Le but étant au final d'avoir quelque chose du style :
<a href='Lien1'>Titre1</a>
<a href='Lien2'>Titre2</a>
<a href='Lien3'>Titre3</a>
etc...
Quelque chose du style ne fonctionne pas :
Mais je ne comprends pas pourquoi pas... Là ça me renvoie : lien1 Titre2 .
Merci d'avance à l'éventuelle âme charitable qui saura m'aider