移除圖片,如何比對圖片??? unlink

假設圖片的名稱是

12-912-egjaeigaewogkewaogkeawokgaowegh.PNG

當我要帶值給 unlink時
我要怎麼略過其他值?
假設

unlink('12-912-egjaeigaewogkewaogkeawokgaowegh.PNG');

這樣可以把圖片刪除
但是假設我只知道 912 這個數字
那這邊我能怎麼只對到 xx-這個地方?-xxxxxxxx

unlink('不限-912-不限.不限');

只要是完成的912就刪除
但是像9122是不刪除的
要完全一樣才行!

阅读 2.2k
2 个回答

可以用正则去匹配,很简单。

$str = '12-egjaeigaewogkewaogkeawokgaowegh.PNG';
$regexp = '/^(\d+)-(\w+)\.(jpg|png|jpeg)$/i';
preg_match($regexp, $str, $match);
print_r($match);

结果:

Array
(
    [0] => 12-egjaeigaewogkewaogkeawokgaowegh.PNG
    [1] => 12
    [2] => egjaeigaewogkewaogkeawokgaowegh
    [3] => PNG
)

Update 1 2018-07-05 16:18:21
对于匹配删除特定的格式一样可以正则匹配去删除,只需修改下正则就可以了,比如文件名是
12-912-egjaeigaewogkewaogkeawokgaowegh.PNG
把上面的正则改为

'/^(\d+)-912-(\w+)\.(jpg|png|jpeg)$/i'

即可,然后用判断$match是否为空,如果为空说明不匹配,就不删除。

foreach(glob('*-912-*.*') as $file)
{
    unlink($file);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题