php foreach跳过图像的空路径
我正在尝试使用php回显图像,我的图像存储在数组中,所以我不能跳过空值,我的php代码是php foreach跳过图像的空路径,php,Php,我正在尝试使用php回显图像,我的图像存储在数组中,所以我不能跳过空值,我的php代码是 $images = 'imgs/001.jpg,imgs/001.gif,imgs/002.png,imgs/003.jpg,imgs/004.jpg, imgs/005.jpg,imgs/006.png,imgs/007.png,'; $expl = explode (',', $images); foreach ($expl as $path){ if (!empt
$images = 'imgs/001.jpg,imgs/001.gif,imgs/002.png,imgs/003.jpg,imgs/004.jpg,
imgs/005.jpg,imgs/006.png,imgs/007.png,';
$expl = explode (',', $images);
foreach ($expl as $path){
if (!empty($path) || getimagesize($path)!== false){
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
echo '<img src="'.$base64.'" width="300" height="300">' . '<br>';
var_dump (getimagesize($path));
}
}
我试过:if(!empty($path)| getimagesize($path)!==false)
但似乎不起作用,我得到了同样的错误我可以建议这样做
$expl = preg_split('@,@', $images, null, PREG_SPLIT_NO_EMPTY);
这将自动删除所有空条目我建议您这样做
$expl = preg_split('@,@', $images, null, PREG_SPLIT_NO_EMPTY);
这将自动删除所有空条目问题在这里
if (!empty($path) || getimagesize($path)!== false) {
当$path
为空时,php检查第二个条件getimagesize($path)
,这会给您一个警告,因为您检查了getimagesize(“”)
因此,正确的规则是:
if (!empty($path) && getimagesize($path) !== false) {
问题就在这里
if (!empty($path) || getimagesize($path)!== false) {
当$path
为空时,php检查第二个条件getimagesize($path)
,这会给您一个警告,因为您检查了getimagesize(“”)
因此,正确的规则是:
if (!empty($path) && getimagesize($path) !== false) {
@u_mulder是对的,但你也应该使用
trim($images,,')
删除不必要的,
逗号
$expl = explode (',', trim($images,','));
阅读和@u_mulder是正确的,但你也应该使用
trim($images,,')
删除不必要的,
逗号
$expl = explode (',', trim($images,','));
阅读和除了修复逻辑错误,您还可以简化您的条件
if ($path && getimagesize($path) !== false) { ...
empty
是过分的,因为它包含了一个isset
检查,考虑到$path
总是由foreach循环设置,这是不必要的。如果$path
是一个空字符串,它将计算为false。除了修复逻辑错误外,还可以简化条件
if ($path && getimagesize($path) !== false) { ...
empty
是过分的,因为它包含了一个isset
检查,考虑到$path
总是由foreach循环设置,这是不必要的。如果$path
是一个空字符串,它将计算为false。最后一个数组元素为空添加以下内容:$images=rtrim($images,,');,然后分解。替换或到和在您的if|
->&
中可能重复的!空($path)
应按预期工作。最后一个数组元素为空添加:$images=rtrim($images,,');,然后分解。替换或到和在您的if|
->&
中可能重复的!空($path)
应该可以按预期工作。这是一个很好的解决方案,但是如果你可以在没有正则表达式的情况下做一些事情,你应该-这是一个很好的解决方案,但是如果你可以在没有正则表达式的情况下做一些事情,你应该-