[英]php regex replace caracters from filename until extension
我想從文件名中替換除'A-Z','a-z','0-9', '_', '-', '(', ')'
以外'A-Z','a-z','0-9', '_', '-', '(', ')'
所有字符,直到擴展名。
目前我有:
$filename = '23$%^&.234234.%^.234$%$#)(.^$.png';
$fileName = preg_replace('/[^A-Za-z0-9_\-\(\) ]/', '-', $filename);
我得到
$filename : 23------234234----234----)(----png
問題是“。” 從擴展名中刪除。 文件名可以具有不同的擴展名。
我應該如何更改字符,而不是擴展名。
您可以嘗試使用pathinfo
函數將擴展名與文件名分開,並僅在基本文件名中替換不需要的字符。 一切完成之后,只需合並這些部分:
$filename = '23$%^&.234234.%^.234$%$#)(.^$.png';
$pathinfo = pathinfo($filename);
$filename = implode('.', array(
preg_replace('/[^A-Za-z0-9_\-\(\) ]/', '-', $pathinfo['filename']),
$pathinfo['extension']
));
var_dump($filename);
輸出:
string '23-----234234----234----)(---.png' (length=33)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.