1

サンプルコードがあります:

$content = 'I have a image <img border="0" alt="581.jpg - 58.03 KB" src="581.jpg">';

そしてphp

preg_match('/<img.+src=[\'"](?P<src>.+)[\'"].*>/i', $content, $image);
echo $image[0];

結果: 581.jpg" border="0" alt="581.jpg -、修正方法は?

4

1 に答える 1

1

このための正規表現を書くことは...控えめに言っても問題があります。これを使用することをお勧めします:

$dom = new DOMDocument;
$dom->loadHTML($content);
foreach ($dom->getElementsByTagName('img') as $node) {
    echo $node->getAttribute('src') . PHP_EOL;
}

説明:

必要なものに正規表現を使用しない理由は、HTML のマークアップがさまざまであるためです。属性の位置はsrc異なる場合があり、二重引用符の代わりに単一引用符を使用する場合があります (一部の HTML 属性は引用符を必要としません。たとえば、この構文は正しいです: <img class=logo />)、大文字である可能性があり、おそらく私が考えられない他の問題今の。

追加情報:

于 2013-05-30T12:48:05.370 に答える