2012-11-26 26 views
2

我從web服務獲取xml文件。PHP解析帶有無效字符的XML

不幸的是,該文件包含字符代碼2(\ u0002),該代碼打破瞭解析器。

所以我試圖刪除所有的字符代碼2的,但是當我試圖做一個簡單的字符串替換時,我得到了更奇怪的結果。

爲了測試這一點,我創建了一個名爲test.php的有以下內容的PHP文件:

<? 
$aaa="Hi"+chr(2)+"There"+chr(2)+"Rick"; 
$aaa = str_replace($aaa,chr(2),""); 
echo $aaa; 
?> 

我在命令行中運行以下命令:

PHP test.php的

當我運行這個我得到一個空白的字符串。

我在做什麼錯?

回答

3

是你的結果會是黑色的,因爲PHP使用.concatenation,而不是+

你應該改變

$aaa="Hi"+chr(2)+"There"+chr(2)+"Rick"; 

$aaa="Hi".chr(2)."There".chr(2)."Rick"; 

而且還從PHP DOC

mixed str_replace (mixed $search , mixed $replace , mixed $subject [, int &$count ]) 

你也應該改變

$aaa = str_replace($aaa,chr(2),""); 

$aaa = str_replace(chr(2),"",$aaa);