http で始まるすべての写真のアドレスを取得する必要があるので、この規則を書きました
$regstr = 'http://.*(.jpg|.png|.gif)'
preg_match_all($regstr) に一致する関数を使用します, $strtest2 , $match); 文字列 strtest2 については画像のアドレスを正常に取得できますが、問題がどこにあるかを見つけるのを手伝ってください
$strtest1 = 'e734049d5317c: 1: 0: | http://img01.taabaocdn.com/bao/uploaded/i1/T1dNrmFEJaXXXXXXXX_!!0-item_pic.jpg;78e4591d5b18775a71912801623c0d26:1:1:| /1643666761/TB2aMrfaFXXXXbGXpXXXXXXXXXX_!! 1643666761.jpg;';
$strtest2 = '3e4ad0111b02f4adb0872d9f43c2b36c';
<?php$strtest1 = 'e7342287f1485896249c474049d5317c:1:0:|http://img01.taobaocdn.com/bao/uploaded/i1/T1dNrmFEJaXXXXXXXX_!!0-item_pic.jpg;78e4591d5b18775a71912801623c0d26:1:1:|http://img01.taobaocdn.com/bao/uploaded/i1/1643666761/TB2aMrfaFXXXXbGXpXXXXXXXXXX_!!1643666761.jpg;';$strtest2 = '<a href="http://www.williamlong.info/cat/?tags=Programming" :|rel="tag"><img src="17c:1:0:|http://img01.taobaocdn.com/bao/uploaded/i1/T1dNrmFEJaXXXXXXXX_!!0-item_pic.jpg" alt="研发" class="thumb" /></a>';$regstr = '/http:\/\/img.*(?:\.jpg|\.png|\.gif)/U';preg_match_all($regstr, $strtest1, $match);var_dump($match);preg_match_all($regstr, $strtest2, $match);var_dump($match);?>