繁体   English   中英

preg_match查找具有特定名称的图像

[英]preg_match to find images with specific names

我正在使用此代码查找名称为begin thumb_的所有图像

for ($i=0; $i<count($files); $i++) { 
  $pattern = '/thumb_[\w\-]+\.(jpg|png|gif|jpeg)/';
  $result = preg_match($pattern, $files[$i], $matches);
  echo $matches[0]."<br>";
}

我得到这个:

Notice: Undefined offset: 0 in C:\xampp\htdocs\imgs.php on line 31

Notice: Undefined offset: 0 in C:\xampp\htdocs\imgs.php on line 31

Notice: Undefined offset: 0 in C:\xampp\htdocs\imgs.php on line 31

thumb_Koala.jpg
thumb_Lighthouse.jpg

更简单地...

<?php
foreach (preg_grep('/^thumb_[\w\-]+\.(jpg|png|gif|jpeg)$/', scandir('uploads')) as $path) {
    printf('<img src="uploads/%s" style="margin: 10px"><br>', $path);
}

您可以简单地执行此操作以隐藏php上的任何错误

error_reporting(0);

但是从其他方面来讲,您必须问自己为什么会出现此错误? 可以肯定的是,因为未设置数组$ matches,所以当您尝试访问键0时,出现未定义的错误,您可以对数组$ match进行简单检查。 也请把括号放在这个0键里面

喜欢

$matches['0'];

为了防止默认密钥分配。 此外,而不是echo ,你可以使用print_r

感觉您不会发布任何代码,所以这是我的最终帮助,可以更好地使用此代码

<?php
$files = glob('images/*.{jpg,png,gif,jpeg}', GLOB_BRACE);
foreach($files as $file) { 
?>
<img src='<?php echo $file; ?>' /><br />
<?php
}
?>

别客气 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM