で始まるすべての画像を一致させるにはどうすればよいpics.domain.com
ですか?
私が試したこと
preg_match_all('/<img .*src=(pics.domain.com*)["|\']([^"|\']+)/i', $row['story'], $matches);
各タグを使用DOMDocument
して単純に反復します。<img>
次にparse_url()
、各イメージ パスのホストを見つけるために使用します。
$doc = new DOMDocument;
libxml_use_internal_errors(true);
$doc->loadHTML($row['story']);
libxml_clear_errors();
foreach ($doc->getElementsByTagName('img') as $img) {
if (parse_url($img->getAttribute('src'), PHP_URL_HOST) === 'pics.domain.com') {
echo "Yay, image found\n";
}
}
過去に正規表現を使用したことがありますが、<img>
タグの外でも機能します。
'@[\'"](https?://)?([^\.][^\'"]*?)(/)?([^\'"/]*?)\.(jpg|jpeg|png|gif|bmp)[\'"]@'
より具体的なバージョン:
'@[\'"](https?://)?pics\.domain\.com[^\'"]*?\.(jpg|jpeg|png|gif|bmp)[\'"]@'
英語で:
[引用の開始](http または https またはどちらでもない)pics.domain.com(引用ではないもの)(画像の拡張子)[引用の終了]