簡體   English   中英

全球正則表達式模式-PHP

[英]Glob regex patterns - PHP

我的文件夾中包含多張圖片,但我對標題如下的圖片感興趣: "Images_123456_nature_XL.jpg, Images_458599_3d_L.jpg, Images_065455_animals_XL.jpg" 因此,嘗試使用如下的glob函數:

$images = glob($value."/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+).{jpg,png,gif}", GLOB_BRACE);

但這似乎不起作用,對此有任何幫助! 非常感激。

glob()不采用正則表達式,而是采用簡單的模式,僅將* joker替換為任何東西,並且? 一個字符。

您可以嘗試以下操作:

$files = array_filter(glob('*.{jpg,png,gif}', GLOB_BRACE), function($file) {
  return preg_match('/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+)\.(jpg|png|gif)$/', basename($file));
});

就內存而言,這並不是真正有效的方法(因為glob()會在過濾之前返回所有文件),但這至少是可行的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM