PHP Регулярное выражение для поиска изображений, начинающихся с _ - PullRequest
3 голосов
/ 24 января 2010

У меня есть функция, которая загружает все файлы изображений, которые он находит в каталоге загрузки WordPress. Я хотел бы немного изменить его, чтобы оно пропускало любое изображение, начинающееся с символа подчеркивания, пропускается "_someimage.jpg", а "someimage.jpg - это не ...

Вот существующая функция ....

 $dir = 'wp-content/uploads/';
 $url = get_bloginfo('url').'/wp-content/uploads/';
 $imgs = array();
  if ($dh = opendir($dir)) 
  {
  while (($file = readdir($dh)) !== false) 
   {
   if (!is_dir($file) && preg_match("/\.(bmp|jpeg|gif|png|jpg|)$/i", $file)) 
   {
   array_push($imgs, $file);
   }
  }
  closedir($dh);
  } else {
   die('cannot open ' . $dir);
  }

Ответы [ 2 ]

1 голос
/ 24 января 2010

Вы можете изменить текущее регулярное выражение или добавить логическое выражение, используя strstr (что я бы рекомендовал).

Изменение вашего текущего регулярного выражения:

"/^[^_].*\.(bmp|jpeg|gif|png|jpg)$/i"

Или простое выражение для определения подчеркивания в строке:

strstr($file, '_')

edit: и на самом деле вы можете использовать substr :

substr($file, 0, 1) != '_'
0 голосов
/ 24 января 2010
if (!is_dir($file) && preg_match("/\.(bmp|jpeg|gif|png|jpg|)$/i", $file)) 

может быть преобразовано в:

if (!is_dir($file) && preg_match("/^[^_].*\.(bmp|jpeg|gif|png|jpg|)$/i", $file)) 
...