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

时间:2014-12-01 20:47:25

标签: php preg-match

我正在使用此代码查找名为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

2 个答案:

答案 0 :(得分:0)

更简单......

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

答案 1 :(得分:-1)

你可以简单地这样做来隐藏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
}
?>

欢迎你!