2010-08-17 7 views
0

Si quelqu'un publie un message multiligne contenant du texte et des liens, je veux pouvoir trouver et enchaîner les liens avec les balises <p>, mais je ne peux le faire qu'avec un lien à la fois (le code source vient de phpBB2 - liens cliquables fonction), ce qui provoque chaque lien comme ceci:Liens multilignes avec preg_replace | PHP

<p>http://www.bbc.co.uk/</p> 
<p>http://www.bbc.co.uk/</p> 
<p>http://www.bbc.co.uk/</p> 

Là où je veux arriver à être comme ceci:

<p>http://www.bbc.co.uk/ 
http://www.bbc.co.uk/ 
http://www.bbc.co.uk/</p> 

Vive.

Répondre

2

Flux à fonction DOM loadHTML et getElementsByTagName('p'), faire référence à ->item(i) sur la base ->length, obtenir le nodeValue et juste faire un nouveau paragraphe avec document.createElement, réglez le nodeValue à votre chaîne de nodeValue s que vous avez récupéré de la boucle après les concaténer avec \n<br> ou quelque chose.

Vous ne devriez pas utiliser regex pour cela.

+0

Pourquoi? Pourquoi ne devrais-je pas utiliser regex pour cela? – MacMac

+0

Tant de raisons. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 Essentiellement, HTML n'est pas un langage régulier, donc regex ne le fait pas avoir le pouvoir de l'analyser complètement et correctement. Il y a des cas où regex peut vous aider à utiliser le HTML, mais c'est rarement le bon outil pour le travail. –