サンプルコードがあります:
$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 -、修正方法は?
サンプルコードがあります:
$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 -、修正方法は?
このための正規表現を書くことは...控えめに言っても問題があります。これを使用することをお勧めします:
$dom = new DOMDocument;
$dom->loadHTML($content);
foreach ($dom->getElementsByTagName('img') as $node) {
echo $node->getAttribute('src') . PHP_EOL;
}
説明:
必要なものに正規表現を使用しない理由は、HTML のマークアップがさまざまであるためです。属性の位置はsrc異なる場合があり、二重引用符の代わりに単一引用符を使用する場合があります (一部の HTML 属性は引用符を必要としません。たとえば、この構文は正しいです: <img class=logo />)、大文字である可能性があり、おそらく私が考えられない他の問題今の。
追加情報: