2011-09-13 41 views
0

我正在使用php。我想創建XML的查詢結果。PHP在執行xml解析時出錯?

我的查詢結果我得到了一些網址。當我想要創建這些URL的xml文件時,由於空格和url中的一些特殊字符而出現問題。

如果我嘗試一個URL沒有任何空間的網址比沒有發生問題相同的事情。

這是我的PHP程序: -

$rs = mysql_query("SELECT urlofsong FROM music ORDER BY date DESC LIMIT 0,10") or die ("invalid query"); 

//count the no. of columns in the table 
$fcount = mysql_num_fields($rs); 

//you can choose any name for the starting tag 
//echo "$pass"; 
echo ("<result>"); 
while($row = mysql_fetch_array($rs)) 
{ 
echo ("<tablerow>"); 
for($i=0; $i< $fcount; $i++) 
{ 
$tag = mysql_field_name($rs, $i); 
echo ("<$tag>". $row[$i]. "</$tag>"); 
} 
echo ("</tablerow>"); 
} 
echo ("</result>"); 

這些類型的URL創建問題的條目: - 「http://192.168.1.214/MusicApplication/Songs/RUFF BEAT - Baby_Justin Bieber_DJs陽光&普尼特( VT).mp3「

注意: - 請參閱文件名。

請問我該怎麼做才能解決這類問題。

+0

*(相關)* [一個簡單的程序來CRUD節點和xml文件的節點值](http://stackoverflow.com/questions/4906073/a-simple-program-to-crud-node-and-node -xml文件的值) – Gordon

+0

PHP有一大堆內置庫來創建XML。不需要手動處理XML語法的所有細節。例如,您可以使用[XMLWriter](http://php.net/XMLWriter)。 –

回答

1

您應該通過用%20替換空格來避開文件名。或者在文件名上使用urlencode()。

此外,請使用htmlspecialchars轉義行內容,否則最終會導致無效的XML。

+0

然後請告訴程序轉換這個空間%20等使用代碼來幫助我。 –

0

這是我的問題的解決方案... echo(「」.htmlentities($ row [$ i])。「」);

表示我們應該從htmlentities()傳遞數據。通過使用這個函數,我們可以將特殊字符轉換爲html字符。

謝謝大家。