我已經設置了一個preg_replace來爲圖像文件名添加一個.gz文件擴展名。但是我需要關聯地更改文件擴展名(以便bmp - > bmp.gz,png - > png.gz等)。我可以用什麼來代替$ old_extension變量來做到這一點?php通過關聯替換文件擴展名
$new_file_ext =
preg_replace('"\.(bmp|gif|png|jpg|jpeg)$"', '.' . $old_extension . '.gz', $filename);
我已經設置了一個preg_replace來爲圖像文件名添加一個.gz文件擴展名。但是我需要關聯地更改文件擴展名(以便bmp - > bmp.gz,png - > png.gz等)。我可以用什麼來代替$ old_extension變量來做到這一點?php通過關聯替換文件擴展名
$new_file_ext =
preg_replace('"\.(bmp|gif|png|jpg|jpeg)$"', '.' . $old_extension . '.gz', $filename);
您需要背refrence本組索引1.捕獲組具有捕獲人其通過本的那些基團內的圖案匹配的字符的性質內的字符。所以這裏捕獲組內的模式是bmp|gif|png|jpg|jpeg
。在替換部分,我們可以通過指定它的索引號,如\1
(它指的是第一個捕獲組)來引用那些存在於組中的字符。
preg_replace('~\.(bmp|gif|png|jpg|jpeg)$~', '.\1.gz', $filename);
謝謝!這正是我需要的。也欣賞regex101.com上的演示。以前沒見過。 – chowwy 2015-03-25 00:59:27