PHP - Cordes - pour Supprimer une balise HTML avec une classe spécifique, y compris son contenu
J'ai une chaîne comme celle-ci:
<div class="container">
<h3 class="hdr"> Text </h3>
<div class="main">
text
<h3> text... </h3>
....
</div>
</div>
comment puis-je supprimer le tag H3 avec le .hdr de classe en utilisant le moins de code possible ?
L'auteur a raison. Il veut envoyer la sortie sans que l'élément html. Javascript modifie, mais il ne doit pas être présent.
eh bien j'ai besoin de modifier la sortie générée de WordPress fonction. js n'est pas une bonne façon de le faire...
double possible de php regexp: supprimer tous les attributs d'une balise html - peut facilement être adapté pour supprimer le nœud entier au lieu de simplement l'attribut. Voir mon DOM solution.
L'Op demander une solution côté serveur. Nous savons que Jquery est toujours la réponse... meta.stackexchange.com/questions/45176/...
javascript peut être désactivé sur l'ordinateur des utilisateurs. pourquoi devrait utilisateur de voir que l'élément quand il n'est pas destiné à être là?
eh bien j'ai besoin de modifier la sortie générée de WordPress fonction. js n'est pas une bonne façon de le faire...
double possible de php regexp: supprimer tous les attributs d'une balise html - peut facilement être adapté pour supprimer le nœud entier au lieu de simplement l'attribut. Voir mon DOM solution.
L'Op demander une solution côté serveur. Nous savons que Jquery est toujours la réponse... meta.stackexchange.com/questions/45176/...
javascript peut être désactivé sur l'ordinateur des utilisateurs. pourquoi devrait utilisateur de voir que l'élément quand il n'est pas destiné à être là?
OriginalL'auteur Alex | 2010-06-30
Vous devez vous connecter pour publier un commentaire.
En utilisant comme peu code que possible? Plus court code n'est pas nécessairement la meilleure. Toutefois, si votre code HTML
h3
tag toujours ressemble à ça, cela devrait suffire:En général, en utilisant les regex pour l'analyse HTML n'est pas une très bonne idée.
parce que le HTML n'est pas régulière. Utiliser DOM, si vous souhaitez travailler avec du code HTML. Il y a un exemple dans les liens en double.
dans ce cas, en plus de tout ce qui est à l'intérieur de la div.principal est normal 🙂 tx
peut-être que vous devriez savoir "/<h3 class="hdr">(.*?)<\/h3>/i" "i" juste pour ignorer la casse
Important: ne fonctionne que si l'ouverture et la balise de fermeture sont sur la même ligne! Mais les sauts de ligne entre les deux sont considérés par l'aide de:
$html = preg_replace('#<h3 class="hdr">(.*?)</h3>#si', '', $html);
s = inclure les caractères de saut de ligne, i = insensible à la casseOriginalL'auteur Daniel Egeberg
Quelque chose comme ceci est ce que vous cherchez...
Utilisation "est" à la fin de la regex car il va l'amener à être sensible à la casse qui est plus souple.
OriginalL'auteur Webnet
essayer un preg_match, puis un preg_replace sur le modèle suivant:
C'est salissant, et il devrait fonctionner correctement que si le tag h3 n'ont pas le javascript en ligne qui peuvent contenir des séquences que cette expression régulière réagir. Il est loin d'être parfait, mais dans les cas simples où h3 tag est utilisé, il doit travailler.
N'ai pas essayé si, peut-être besoin d'ajustements.
Une autre façon serait de copier cette fonction, utilisez votre copie, sans le h3, si c'est possible.
OriginalL'auteur AlexanderMP
Code ci-dessus ne fonctionne que si le div nantis sont tous les deux sur la même ligne. que faire si ils ne sont pas?
Cela fonctionne même si il y a un saut de ligne entre les deux, mais ne parvient pas si de la pas si utilisé symbole | est entre quelqu'un connais un meilleur moyen?
OriginalL'auteur Jasmeen
RegEx, ou des expressions régulières est le code pour ce que vous voulez supprimer, et PHP de la fonction preg_replace() va permettre de supprimer tous les div ou divs correspondance, ou de les remplacer par quelque chose d'autre. Dans les exemples ci-dessous, $incoming_data est l'endroit où vous mettez tout votre contenu avant de retirer des éléments, et $résultat est le produit final. Fondamentalement, nous dire le code pour trouver toutes les balises div class=”maclasse” et remplacer par ” ” (rien).
Comment faire pour supprimer un div et de son contenu, par classe en PHP
Il suffit de changer “myclass” quelle que soit la classe de votre div.
Comment faire pour supprimer un div et de son contenu par ID en PHP
Il suffit de changer “myid” quelle que soit l'ID de votre div.
$result = preg_replace('#(.*?)#', '', $incoming_data);
Si votre div a plusieurs classes?
Il suffit de changer “myid” quelle que soit l'ID de votre div a comme cela.
Comment faire pour supprimer tous les titres en PHP
C'est la façon de supprimer tous les en-têtes.
Source: http://www.lets-develop.com/html5-html-css-css3-php-wordpress-jquery-javascript-photoshop-illustrator-flash-tutorial/php-programming/remove-div-by-class-php-remove-div-contents/
OriginalL'auteur Jai