Ile başlayan görüntüleri bulmak için PHP Düzenli ifade _

2 Cevap php

Ben wordpress yüklenenler dizininde bulduğu tüm resim dosyalarını yükler bir işlevi var. Someimage.jpg değil "iken, bir alt çizgi karakteri," _someimage.jpg "ile başlayan herhangi bir görüntü atlanır atlar ki ben biraz değiştirmek istiyorum ...

Burada mevcut fonksiyonudur ....

 $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 Cevap

Geçerli regex değiştirmek veya (ki ben tavsiye ederim) strstr kullanarak bir boolean ifade ekleyebilirsiniz.

Geçerli regex değiştirme:

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

Veya dize çizgi algılamak için basit bir ifade olurdu:

strstr($file, '_')

edit: ve aslında kullanabilirsiniz substr:

substr($file, 0, 1) != '_'
if (!is_dir($file) && preg_match("/\.(bmp|jpeg|gif|png|jpg|)$/i", $file)) 

dönüşebilirler:

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