2010-05-28 4 views
0

Possible en double:
PHP Regular express to remove <h1> tags (and their content)preg remplacent les balises h2 avec des espaces

J'ai du code HTML qui ressemble à ceci:

<h2> 
Fund Management</h2> 
<p> 
The majority of property investments are now made via our Funds.</p> 

Essayer d'utiliser une expression régulière dépouiller les étiquettes h2 mais ne fonctionne pas à cause de l'espace entre l'ouverture et la fermeture des étiquettes h2.

preg_replace('/<h2>(.+?)<\/h2>/', '', $content); 

Des idées sur comment faire ce travail?

De même, je voudrais idéalement le remplacer par les balises h1-h6 alors peut-être qu'il a besoin de [1-6] ou quelque chose?

Répondre

4

Le seul problème de votre regex était le manque de modificateurs (le si thingy) mais si vous vous voulez étendre à correspondre de <h1> à <h6> balises, vous pouvez accomplir cela en utilisant un back-référence de la première étiquette:

preg_replace("/<h([1-6]{1})>.*?<\/h\\1>/si", '', $content); 

De cette façon, vous vous assurez que votre première étiquette correspond à la seconde.

Vous pouvez en apprendre davantage sur les modificateurs ici:

reference.pcre.pattern.modifiers.php

Questions connexes