1

我正在使用简单的 HTML DOM 解析器,通过这个我可以从下面的对象片段中获取所有输入标签

foreach ($InputObj->find('input') as $e) {

    $inputTag =  $e->outertext;

   // now I want to check if input element have size attribute then remove it with preg_replace
   $inputTagsSizeStrip = preg_replace('~\<input[^\s]*size=\'|\"[^\'|\"]~is', "" , $inputTag);
}

但没有成功....

任何帮助都会得到帮助...

4

2 回答 2

4

这里没有理由使用正则表达式。您已经拥有 DOM,只需进行必要的操作:

foreach ($InputObj->find('input') as $e) {
  if ($e->hasAttribute('size')) {
    $e->removeAttribute('size');
  }
}
于 2012-09-14T12:02:44.843 回答
1

你已经在输入标签中,所以不需要去输入标签来搜索尺寸使用这个 preg 它会找到尺寸并删除它

 foreach ($InputObj->find('input') as $e) {  
       $inputTagsSizeStrip = preg_replace('~(size=(\"|\')[^\'|\"]*(\"|\'))~is', $changeSrc , $inputTagsSizeStrip);
 }

它肯定会奏效

于 2012-09-14T12:13:39.697 回答