Die besten Antworten, die ich für dieses Problem finden konnte, sind mit XSLT, aber ich bin mir nicht sicher, wie diese Antworten auf mein Problem angewendet werden.Vermeiden Sie Prozent-Encoding href Attribute bei der Verwendung von PHP DOMDocument
Grundsätzlich erledigt DOMDocument die URLs (in href
Attribute), die übergeben werden, aber ich benutze es tatsächlich, um eine Twig/Django Stylevorlage zu erstellen, und ich würde es lieber in Ruhe lassen . Hier ist ein konkretes Beispiel, illustriert das „Problem“:
<?php
$doc = new DOMDocument();
$doc->loadHTML('<html><body>Test<br><a href="{{variable}}"></a></body></html>');
echo $doc->saveHTML();
Welche gibt die folgenden:
<html><body>Test<br><a href="%7B%7Bvariable%7D%7D"></a></body></html>
Ist es möglich, NICHT Prozent codieren die href
Attribut?
Wenn es nicht möglich ist direkt kann vorschlagen, dass Sie eine präzise und zuverlässige Abhilfe? Ich mache andere Verarbeitung, und die Verwendung von DOMDocument wird bleiben müssen. Also vielleicht ein Pre/Post-Processing-Trick?
DOM ist für ein vorhandenes Dokument zu manipulieren, sondern auch für Gebäude Ein neues Dokument von Grund auf, es ist besser, nur Zeichenfolgenoperationen zu verwenden, besonders wenn Sie eine "Vorlage erstellen, die wie HTML aussieht". –
Ich manipuliere tatsächlich ein vorhandenes Dokument. Dies ist der kürzest mögliche Beispielcode, der das Problem klar veranschaulicht. –
Im Wesentlichen wäre die in diesem Beispiel verwendete Zeichenfolge über 'file_get_contents()', * zum Beispiel * geladen worden. –