1

Simple HTML DOM Parserを使用しています。これにより、以下のオブジェクトスニペットからすべての入力タグを取得できます。

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 に答える