我试图限制foreach循环中的项目数。我检查字符串是否包含URL,如果是,则检查JPG扩展名。由于给出了多个结果,我想将它们限制在1:
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $mystring, $match);
foreach ($match[0] as $link){
$strpos = strpos($link, '.jpg');
if ($strpos !== false){
$i_img = 0;
foreach ($link as $imageurl){
if ($i_img == 1) break;
echo '</br>'.$imageurl;
$i_img++;
} // end foreach
} // end if strpos
} // end foreach
我收到错误&#34;警告:为foreach()&#34提供的参数无效;
答案 0 :(得分:2)
我认为不需要第二个foreach循环。
以下内容应该是第一个找到的.jpg
<?php
//Test string
$mystring = 'https://image.jpg, https://second.jpg';
preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $mystring, $match);
foreach ($match[0] as $link){
$strpos = strpos($link, '.jpg');
if ($strpos !== false){
//do something meaningful here.
echo $link; //https://image.jpg
break;
}
}
希望有所帮助!
答案 1 :(得分:0)
foreach($match[0] as $link)
发出错误。我认为问题是foreach需要一个数组,但$match[0]
只是一个值。