我想在下面的腳本中添加一個正則表達式過濾器(在array_push之前),以便當它遇到具有相同前綴「_filename」的文件並且其中一個匹配具有'-150x150。 「在文件名的末尾,它會推送該圖像,並使用相同的前綴跳過其他圖像。正則表達式匹配
但是,如果該集合中沒有圖像具有'-150x150'。在文件名,它選擇與根前綴的圖像(_filename.ext)
例如,如果下面的文件駐留在$目錄文件夾:
_file.png
_file-150x150.png
_file-200x300.png
_someImage.png
_myfile.jpg
_myfile-200x200.jpg
我想它推_file -150x150.png,someImage.png和myfile.jpg放入數組中,跳過其他部分。
$dir = 'wp-content/uploads/';
if(!is_dir($dir)){return;}
$url = get_bloginfo('url').'/wp-content/uploads/';
$imgs = array();
if ($dh = opendir($dir))
{
$myfilter="";
while (($file = readdir($dh)) !== false)
{
if (!is_dir($file)&& $file != "." && $file != ".." && preg_match("/^[".$myfilter."_].*\.(bmp|jpeg|gif|png|jpg)$/i", $file))
{
array_push($imgs, $file);
}
}
closedir($dh);
} else {
die('cannot open ' . $dir);
}
if($imgs)
{
sort($imgs);
echo '<div>';
foreach ($imgs as $idx=>$img)
{
$class = ($idx == count($imgs) - 1 ? ' class="last"' : '');
echo $prelink.' src="' . $url . $img . '" alt="' .$img . '"' . $class . ' />'.$postlink;
}
echo '</div>';
}
對我來說似乎沒有太多的模式。 – Shef
是的,它不是很明顯,但第一種模式是匹配「 - 」之前的文件名。第二種模式是「 - 」之後的模式 –