Pour aller plus loin avec cette chouette méthode, comme je peux avoir le contenu de l'élément ?
Genre j'ai cette magnifique chose imbriquée :
<span class="spoil"><span class="spoil_info" onClick="hideAndShow('spoil08b25f1eae526c28a35f678123f9e041');">Spoiler</span><span class="spoil_spoiler" id="spoil08b25f1eae526c28a35f678123f9e041">hé non <E>:p</E> <span class="spoil"><span class="spoil_info" onClick="hideAndShow('spoilaea7839949497b2365abdab12f5626c0');">Spoiler</span><span class="spoil_spoiler" id="spoilaea7839949497b2365abdab12f5626c0">cherche encore...<span class="spoil"><span class="spoil_info" onClick="hideAndShow('spoil9f23324344969b872e4e89e3786e0868');">Spoiler</span><span class="spoil_spoiler" id="spoil9f23324344969b872e4e89e3786e0868">toujours pas...<span class="spoil"><span class="spoil_info" onClick="hideAndShow('spoildd3d0c5aa0770e2dd642b6fe2ca9b908');">Spoiler</span><span class="spoil_spoiler" id="spoildd3d0c5aa0770e2dd642b6fe2ca9b908">bien caché : <r><YOUTUBE id="1Bn50keR6UY"><s>[media]</s><URL url="https://www.youtube.com/watch?v=1Bn50keR6UY">https://www.youtube.com/watch?v=1Bn50keR6UY</URL><e>[/media]</e></YOUTUBE></r></span></span></span></span></span></span></span></span>
Je veux me débarrasser de tout ce qui est entre la balise span initiale et la finale
Je peux faire un :
1 2 3 4 5 6 7 8 9
| $dom = new DOMDocument('1.0');
$dom->loadHTML($text);
$anchors = $dom -> getElementsByTagName('span');
foreach ($anchors as $element) {
$class = $element -> getAttribute('class');
if($class=='spoil'){
// je remplace cet élément par rien dans $text
}
} |
mais je n'ai pas trop d'idée pour faire mon traitement : " je remplace cet élément par rien dans $text"
Je le sens bien comme ça :
1 2 3 4 5 6 7 8 9 10 11
|
$dom = new DOMDocument('1.0');
$dom->loadHTML($text);
$anchors = $dom -> getElementsByTagName('span');
foreach ($anchors as $element) {
$class = $element -> getAttribute('class');
if($class=='spoil'){
$element->nodeValue = "";
}
}
$text = $dom->saveHTML(); |
ça fonctionne pas mal sauf que je veux pas rajouter toute la structure d'une page HTML autour de mon $text (ni changer les caractères spéciaux...) faut que je creuse encore...
[Edit] en ajoutant les options LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD à mon loadHTML, c'est un peu mieux mais il me modifie toutes mes balises en majuscules, syntaxe créée pour le forum 2 qui écrit ses balises de comme ça : <CAUDE><s>[caude]</s>Caude test<e>[/caude]</e></CAUDE>, et il remplace tous mes caractères accentués par leur équivalent HTML, je préférerais éviter.
Si quelqu'un a une idée
Partager