2011-09-22 33 views
0

我有類DOMDocument的問題。我使用這個php類來編輯一個html模板。我在這個模板此meta標籤:DOMDocument在PHP中轉義結束字符

<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/> 

但編輯之後,雖然我沒有編輯這個標籤,它避開結束字符「/」,這是行不通的。 這是腳本:

$textValue = $company.'<br />'.$firstName.' '.$lastName.'<br />'.$adress; 

$values = array($company, $firstName.' '.$lastName, $adress); 

$document = new DOMDocument; 

$document->loadHTMLFile($dir.'temp/OEBPS/signature.html'); 

$dom = $document->getElementById('body'); 
for ($i = 0; $i < count($values); $i++) { 
$dom->appendChild($document->createElement('p', $values[$i])); 
} 


$document->saveHTMLFile($dir.'temp/OEBPS/signature.html'); 
echo 'signature added <br />'; 
+1

我無法重現您的問題;你能更具體地瞭解什麼是行不通的嗎? –

+0

問題是,當我通過loadHTMLFile方法加載HTML模板,並通過saveHTMLFile方法保存時,所以雖然我沒有編輯元標記,但是這個標記仍然沒有結束char /。我用它編輯ePub格式,當這個結尾字符在這裏丟失時,它不工作。 對不起我的英文:)。 –

回答

1

請看到這個問題提供了答案:Why doesn't PHP DOM include slash on self closing tags?

總之,DOMDocument->saveHTMLFile()其內部結構,輸出爲普通的舊HTML而不是XHTML。如果你絕對需要XHTML,你可以使用DOMDocument->saveXMLFile()這將使用自閉標籤。這種方法的唯一問題是一些HTML標記不能使用自閉標記,如<script><style>,因此您必須在其內容中放置空格,以便它們不使用自閉標記。

我會建議只是忽略問題,除非它是強制性的,你修復它。自閉標籤是XHTML的遺留物,並且是unused in HTML5