2

php正規表現についてはわかりません。htmlからすべての画像タグを抽出したいの<img src="www.google.com/exampleimag.jpg">ですが、preg_match_allを使用してこれを行うにはどうすればよいですか。

貴重な時間をありがとうSOコミュニティ

私のシナリオはこのようなものです。htmldom全体ではなく、imgタグ付きの変数だけがあります。 $text="this is a new text <img="sfdsfdimg/pfdg.fgh" > there is another iamh <img src="sfdsfdfsd.png"> hjkdhfsdfsfsdfsd kjdshfsd dummy text

4

2 に答える 2

4

HTMLの解析に正規表現を使用しないでください。代わりに、DOMDocumentまさにこの理由で存在するようなものを使用してください。

$html = 'Sample text. Image: <img src="foo.jpg" />. <img src="bar.png" />';
$doc = new DOMDocument();
$doc->loadHTML( $html );

$images = $doc->getElementsByTagName("img");

for ( $i = 0; $i < $images->length; $i++ ) {
  // Outputs: foo.jpg bar.png
  echo $images->item( $i )->attributes->getNamedItem( 'src' )->nodeValue;
}

必要に応じて、画像のHTML自体を取得することもできます。

// <img src="foo.jpg" />
echo $doc->saveHTML ( $images->item(0) );
于 2012-05-01T06:13:08.487 に答える
1

正規表現を使用してHTMLを解析することはできません。DOMクラスを使用する方がはるかに優れています。これらにより、有効なHTMLツリーから画像を簡単に抽出できます。

$doc = new DOMDocument ();
$doc -> loadHTML ($html);
$images = $doc -> getElementsByTagName ('img'); // This will generate a collection of DOMElement objects that contain the image tags
于 2012-05-01T06:13:30.660 に答える