Ändern Sie html-Attribut mit php

Ich habe einen html-string enthält genau ein element. Beispiel:

   <a href="http://www.test.com" rel="nofollow external">test</a>

In php habe ich um zu testen, ob rel enthält externe und wenn ja, dann ändern href und speichern Sie die Zeichenfolge.

Habe ich mich für die DOM-Knoten und Objekte. Aber Sie scheinen zu viel zu sein für nur Ein element, so muss ich Durchlaufen, um html-Knoten, und ich bin nicht sicher, wie Sie Sie zu testen, ob rel vorhanden und enthält externe.

$html = new DOMDocument();
$html->loadHtml($txt);
$a = $html->getElementsByTagName('a');
$attr = $a->item(0)->attributes();
...

An dieser Stelle, ich werde NodeMapList zu sein scheint, dass overhead. Gibt es eine einfacher Möglichkeit für diese oder sollte ich es mit DOM?

  • Beim Umgang mit DOM haben Sie zwei Möglichkeiten: 1) verwenden Sie das native DOM-parser 2) regulären Ausdruck Verwenden (das ist Aufwand)
  • Zu gehen zu halten. Verwenden DOMDocument() für manipulation
  • Niemand sollte die raw-DOM-Methoden für die manipulation. Betrachten phpQuery oder QueryPath etc. reduzieren langweilig boilerplate.
InformationsquelleAutor Linda | 2013-04-21
Schreibe einen Kommentar