PHP foreach在一段时间后停止工作

PHP foreach在一段时间后停止工作,php,foreach,phpmailer,Php,Foreach,Phpmailer,这个PHP foreach循环应该循环遍历刚刚从表单上传到目录的所有图像,然后将它们全部附加到电子邮件并在电子邮件中显示。当我几个月前第一次做它时,它工作了,但现在由于某种原因它不再工作了。。它只会附加一张图片 $files = array(); while ($files[] = readdir($dir2)); closedir($dir2); foreach ($files as $file) { //MANIPULATE FILENAME HERE, YOU HAVE $fi

这个PHP foreach循环应该循环遍历刚刚从表单上传到目录的所有图像,然后将它们全部附加到电子邮件并在电子邮件中显示。当我几个月前第一次做它时,它工作了,但现在由于某种原因它不再工作了。。它只会附加一张图片

$files = array();
while ($files[] = readdir($dir2));
closedir($dir2);

foreach ($files as $file) {

    //MANIPULATE FILENAME HERE, YOU HAVE $file...

    if ($file != "." && $file != ".." && $file != 'resources' ){
        $withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file);
        $url = '../mobile_patrol_reports/'.$id.'/'.$file;
        $mail->AddEmbeddedImage($url, $withoutExt);
        $mail->Body .= '<img src="cid:'.$withoutExt.'">';
        break;
    }

}
$files=array();
而($files[]=readdir($dir2));
closedir($dir2);
foreach($files作为$file){
//在这里操纵文件名,您有$file。。。
如果($file!=“&&&$file!=”。“&&&$file!='resources'){
$withoutExt=preg\u replace('/\\.[^.\\s]{3,4}$/',''.$file);
$url='../mobile_patrol_reports/'.$id./'.$file;
$mail->AddEmbeddedImage($url,$withoutExt);
$mail->Body.='';
打破
}
}

也许这与添加SSL证书有关,而我可能遗漏了什么?

这与
中断有关foreach
循环中拥有的code>。
中的条件第一次出现时,如果
为真,
中断
将导致中止执行
foreach


中断将终止执行查看
pathinfo()
也不要加载整个正则表达式引擎来完成一些不需要正则表达式就可以完成的事情。您是否添加了另一个目录以及未检查的
资源
?如果未包含中断,则添加第一个图像两次如果未包含中断,则添加第一个图像两次查找逻辑中的错误。显然,添加
break
不是这里的答案。