我想,以取代所有非字母和數字字符即/&%#$
等帶有下劃線(_)
與「」空白(所以沒有下劃線)替換所有
'
(單引號)。PHP的preg_replace特殊字符
所以「世上本沒有任何」(忽略雙引號)將成爲「There_wouldnt_be_any」。
我在reg表達式中無用,因此我的帖子。
乾杯
我想,以取代所有非字母和數字字符即/&%#$
等帶有下劃線(_)
與「」空白(所以沒有下劃線)替換所有
'
(單引號)。PHP的preg_replace特殊字符
所以「世上本沒有任何」(忽略雙引號)將成爲「There_wouldnt_be_any」。
我在reg表達式中無用,因此我的帖子。
乾杯
$newstr = preg_replace('/[^a-zA-Z0-9\']/', '_', "There wouldn't be any");
$newstr = str_replace("'", '', $newstr);
我把他們兩個單獨的行,使代碼更清晰。
注意:如果您需要Unicode支持,請參閱下面的Filip答案。它將匹配除了A-z
之外的所有以字母形式註冊的字符。
如果你寫 「非字母和數字」 排除超過[A-Za-z0-9]
(即。考慮像åäö
這樣的字母是要致信),並希望能夠準確處理UTF-8字符串\p{L}
和\p{N}
將是有幫助的。
\p{N}
將匹配任何 「數」\p{L}
將匹配任何 「字母字符,」,其中包括
文檔PHP: Unicode Character Properties
$data = "Thäre!wouldn't%bé#äny";
$new_data = str_replace ("'", "", $data);
$new_data = preg_replace ('/[^\p{L}\p{N}]/u', '_', $new_data);
var_dump (
$new_data
);
輸出
string(23) "Thäre_wouldnt_bé_äny"
在我的情況ßällistic被上傳後換成ßällistic。 – erdomester
@erdomester是否支持UTF-8編譯了PCRE(正則表達式引擎)的版本? –
我不知道我理解你。該文件使用UTF-8編碼,不含BOM。我正在使用FileZilla – erdomester