2013-03-18 77 views
0

我試圖做這樣的somwthing(其中$ DOC是一個DOMDocument)PHP的setAttribute更換及與&

$link_found = $doc->getElementsByTagName('a'); 

foreach ($link_found as $idx => $link) { 
    $link->setAttribute('href', "/test.php?t=1&q=2") ; 
} 

所有的工作,但在href現在我

"/test.php?t=1&q=2" 

我需要的文字&,在&

沒有編碼,我需要

"/test.php?t=1&q=2" 

像一個普通的查詢字符串

+1

這會是無效的HTML。您無法使用DOM功能生成無效的HTML。這是一個功能,而不是一個錯誤。 – 2013-03-18 16:56:10

+0

?這是一個正常的查詢字符串... 像谷歌: http://www.google.it/#hl=it&sclient=psy-ab&q=example – realtebo 2013-03-18 16:56:51

+0

也許嘗試使用html_entity_decode? http://www.php.net/manual/en/function.html-entity-decode.php – 2013-03-18 17:00:35

回答

2

標準要求,如果它不引入實體&進行轉義,即使它是一個屬性。

(那一定是最i_的話,我在一個句子中使用過... ...)

+1

正確。你輸入'&',但它表示'&'。這個URL絕不會被破壞。 – 2013-03-18 17:03:48

+0

該死的......我還沒有嘗試鏈接......我認爲這不是工作,但它的工作......感謝阿爾瓦羅G. Vicario !!!! – realtebo 2013-03-18 17:25:22

0
$string = html_entity_decode($string); // you're welcome 
+0

我正在考慮是否僅僅爲了提供一種方式來故意生成無效HTML這一事實而低估了這個答案,然後意識到它只是不能工作。在DOM函數的上下文中究竟如何解碼實體? – 2013-03-18 17:22:07

+0

我不會@ÁlvaroG.Vicariomaby我的回答被誤解了。這是沒有任何意義的,而且在文檔功能上似乎是不可能的。我很高興認爲提問者希望能夠處理稍後提取的字符串。用於可視化目的或諸如此類... – 2013-03-19 14:08:23