這個PHP腳本,
$dom = new DOMDocument();
$dom->substituteEntities =FALSE;
$dom->loadHTML('<a href="$a?">$a</a>');
// print_r ($dom->getElementsByTagName("a")->item(0)->getAttribute("href"));
//上面的語句顯示美元?正確
echo $dom->saveHTML();
但它返回< A HREF = 「%24A」 > $一個</A >到瀏覽器時,saveHTML方法被調用。 href屬性中的$變成了%24,而a標籤內容中的$保持不變。
我期望的輸出是< A HREF = 「$ A」 > $一個</A > 有沒有辦法從替代方法做這一邊?
順便說一句,
echo $dom->saveXML();
我得到了我想要與saveXML(); ! 但加上一個意想不到的< - XML ...... 感謝
那麼,['''在URL中無效](http://stackoverflow.com/questions/7109143/what-characters-are-valid-in-a-url)。你想保持無效的href的任何特殊原因? – Wrikken
感謝您的回覆,這是由於Web服務的需求。他們使用$ XXX作爲變量來爲其注入腳本。 – user3204729
嗯,是的,所以'不 - 非常 - 但 - 幾乎'它是..真的很棘手。如果HTML片段不包含會使其偏離「XML」標準的內容,替代接受的答案是保存一個節點而不是while文檔,以防止xml序言被保存爲像$ dom-> saveXML ($ dom-> documentElement);',但它有它自己的quircks和缺點。目前的人會有一個缺點,如果你需要urlencoded,你必須對它進行雙重編碼。所以,請選擇適合自己的最佳選擇;) – Wrikken