6
votes

Manipulation de chaîne PHP: Ajoutez la classe HTML à une chaîne

J'ai cette chaîne:

$str = '<div class="defaultClass">...</div>';


1 commentaires

L'ellipsis (...) en fait ces trois périodes ou pourrait-il être une série de caractères? Quoi d'autre dans la chaîne peut être différent de votre exemple? Vraiment, la réponse simple à votre question est de taper "myClass" à côté de la classe de défaut, mais je suppose que vous devez effectuer cette opération sur plusieurs chaînes différentes (et imprévisibles). : P


4 Réponses :


7
votes

L'attribut "Classe" n'est qu'une liste des classes séparées de l'espace. xxx

ou vous pouviez pirater ensemble comme ceci: xxx < p> ou avec des expressions régulières: xxx

d'autres solutions incluent à l'aide de XML pour l'ajouter au nœud DOM, qui est probablement moins sujet aux erreurs, mais plus avancée et lourdes.


1 commentaires

Je suppose que je suppose qu'il demande comment le faire programmatiquement :-)



-1
votes
$str = '<div class="defaultClass ' . $myclass . '">...</div>';
This assumes myClass is variable

0 commentaires

1
votes

Je jetterais un regard sur un système appelé SimpleDom!

Heres un petit exemple! xxx

Quelques exemples supplémentaires: http://simplehtmldom.sourceforge.net/manual.htm

Certains téléchargements;): http://simplehtmldom.sourceforge.net/


1 commentaires

J'ai utilisé cette bibliothèque pendant un certain temps mais j'ai dû changer parce que cela est devenu si lent. La PHP intégrée One est folle rapide, mais que vous ne pouvez accéder à des choses que via XPath (mais il existe des bibliothèques pour convertir les chemins CSS en XPaths)



8
votes

avec natif DOM :

$dom = new DOMDocument;
$dom->loadHTML('<div class="defaultClass">...</div>');
$divs = $dom->getElementsByTagName('div');
foreach($divs as $div) {
    $div->setAttribute('class', 
        $div->getAttribute('class') . ' some-other-class');
}

echo $dom->saveHTML();


0 commentaires