2012-03-20 81 views
1

我想使用的preg_replace函數在一個HTML頁面解析這個表:PHP的preg_replace函數錯誤

Tuition. $13,140 $13,167 $13,167  
Books  $996  $1,176  $1,176 

,因爲表的標籤我得到「未知的修飾詞‘t’」的錯誤,我改變'/ /'與'~ ~'。

還是有問題,功能沒有改變文字。我認爲'$'美元的問題在文本中籤了字,我怎麼能跳過它?我試圖做,但我做不到。

這裏是我的代碼:

$price = $html->find('div[id=divctl00_cphCollegeNavBody_ucInstitutionMain_ctl00] table[class=tabular]'); 

     $price1=$price[0]; 
     $show=$price1; 

     $ch="~".$show->children(1)->children(0)->children(1)."~"; 
     $show=preg_replace($ch,' ',$show, 1); 

感謝

+2

使用'preg_quote'會跳過這個模式,所以'preg_replace'工作,但我不確定你實際上想要對錶做什麼? – pjumble 2012-03-20 21:03:20

+0

是preg_quote也跳過'< >'字符,它打破了我的表格,我想保留HTML標記,我只想跳過美元符號。 我正在嘗試將數據從一個網站傳輸到另一個網站。 – 2012-03-20 21:04:16

+0

向我們展示'$ ch'中的內容 – zerkms 2012-03-20 21:04:22

回答

2

試試這個:$show=preg_replace(str_replace('$','\$',$ch),' ',$show, 1); 如果您不能使用preg_quote並且有多個逃生(在這種情況下$是你的問題),你可以把數組中的特殊字符並從中進行過濾。