2016-08-01 100 views
-2

我有與包含XML文件無效字符,如:讀取XML文件<字符PHP

<model>A3 (2003-2013, 3.2V6 17"<)/</model> 

問題是這樣的性格「<」我怎樣才能讀取文件呢?

+0

該文件從哪裏來?你能修復源代碼中的XML嗎? XML是一種非常嚴格的格式,XML解析器通常對無效的XML非常無情。 – Chris

+0

這就是問題,我不能改變XML文件... – andys

+2

好吧,嚴格來說,如果它包含無效的XML它不是一個XML文件。 – Chris

回答

0

希望這有助於...

<?php 


$chars = '<model>A3 (2003-2013, 3.2V6 17"<)/</model>'; 

echo "<pre>". htmlentities($chars)."</pre>"; 

$tmp = ''; 


for ($i = 0; $i < strlen($chars); $i++) 
{ 
    if(!($chars[$i] == '<' && $chars[$i+1] == ')')) 
    { 
     $tmp = $tmp . $chars[$i]; 
    } 
} 

echo '<pre>'; 
echo htmlentities($tmp); 
echo '</pre>'; 

嘗試應用這種邏輯按行讀取文件一行。每一行都會用這個函數「清理掉」,然後附加到一個數組中。然後用這個數組你可以重寫你的xml。