Question à propos de la fonction "preg_replace"

Question à propos de la fonction "preg_replace" - PHP - Programmation

Marsh Posté le 07-03-2005 à 19:05:45    

Bonjour à tous
 
Voilà, je viens d'avoir une idée pour mon site pour améliorer l'interface admin d'ajout de news
 
Lorsque je souhaites ajouter un lien interne vers l'une des fiches de mon site (tel qu'un nom de personnage)
je dois taper à la main <a href="l'url interne">Nom du personnage>/a>
 
Ayant un forum IPB, j'ai un peu surfé et modifié ses sources pour ajouter un mod et j'ai vu que ipb utilisait beaucoup la fonction "preg_replace" pour générer le code html correspondant à ses code ibf
 
J'ai donc eu l'idée de faire un peu la meme chose avec mon interface admin en traitant le texte avant l'écriture dans la base de donnée.
 
Par exemple, je taperait [lien]Nom du personnage[/lien] et avant de faire l'opération d'écriture, je ferais plusieurs preg_replace pour remplacer les [lien]Nom du personnage[/lien] par <a href="l'url interne">Nom du personnage>/a>
 
Ceci impliquant que je prévois à l'avance chaque cas pour faire le lien entre le nom des personnages et les urls correspondantes
 
qqchose comme çà dupliqué X fois en fonction du nombre de personnages
 
$txt = preg_replace( "#\[lien\](.+?)\[/lien\]#is", "<a href="l'url interne">\\1</a>", $txt );
 
 
Mais comme il va y avoir çà des dixaines de fois à la suite pour détecter les chaines à remplacer, n'est-ce pas une mauvaise idée car çà va peut-etre consommer beaucoup de ressource du serveur ?
 
Merci

Reply

Marsh Posté le 07-03-2005 à 19:05:45   

Reply

Marsh Posté le 07-03-2005 à 19:21:10    

si tu veux pas charger le serveur à chaque affichage, tu le fait au moment de l'ajout dans de la news dans la base, et comme ça après t'a juste à affichr "bourrin" ce qu'il y a dans la base sans le "re"traiter ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 07-03-2005 à 19:33:21    

ah oui oui, j'ai pas préciser ce détail
je souhaite faire ce traitement lors de l'ajout de la news avec l'interface admin juste avant d'effectuer l'écriture dans la base sql
pour transformer automatiquement en code html les liens interne que j'aurais prédéfini
 
à l'affichage, aucun souci puisque dans la bdd, il y aura du code html tout à fait normal comme si j'avais taper moi meme le code html lors de l'ajout de la news  
 
mais est-ce que çà va pas trop charger le serveur quand je vais ajouter une news ? parceque il me faudra faire beaucoup beaucoup de "preg_replace" à la suite


Message édité par kioo le 07-03-2005 à 19:45:23
Reply

Marsh Posté le 07-03-2005 à 20:35:20    

ça dépend de ce que tu apelle "beaucoup", et bon si c'est fait qu'à l'ajout c'est pas grave que ce soit "un peu long", les visiteurs ne seront pas pénalisé, c'est juste l'admin qui va poster la news ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 07-03-2005 à 20:49:51    

beaucoup = vraiment beaucoup :)
 
parceque là je vous ai parlé des personnages, mais je pensait faire pareil ensuite pour les nom d'episodes, il en éxiste envirion 200
donc 200 ligne "preg_replace" pour chercher si dans la news, il n'y a pas par hasard une référence à l'un des episodes...  
j'ai pas trop envie de faire ramer le serveur meme si c'est que une fois
 
Y a-t-il une autre solution plus simple pour faire ce que je veux ?
il n'y aurait pas une fonction comme preg_replace mais qui permettrait de tout faire en une seule "lecture" du texte.
au lieu d'une longue liste de preg_replace ?


Message édité par kioo le 07-03-2005 à 20:50:02
Reply

Marsh Posté le 07-03-2005 à 20:54:04    

www.php.net/preg-replace
 
si, tu peux passer des tableaux comme parametres...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed