2012-03-20 82 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并且有多个逃生(在这种情况下$是你的问题),你可以把数组中的特殊字符并从中进行过滤。