我知道這個問題已被問過幾次肯定,但我有我的正則表達式的問題......所以這裏是我想要在PHP中做的(簡單)事情:替換PHP字符串中的選定字符
我想做一個函數來替換字符串中不需要的字符。接受的字符應該是: a-z A-Z 0-9 _ - +(){}#äöüÄÖÜ空格
我希望所有其他字符變成「_」。下面是一些示例代碼,但我不知道是什麼填補了?????:
<?php
// sample strings
$string1 = 'abd92 s_öse';
$string2 = 'ab! sd$ls_o';
// Replace unwanted chars in string by _
$string1 = preg_replace(?????, '_', $string1);
$string2 = preg_replace(?????, '_', $string2);
?>
輸出應該是: $字符串1:abd92s_öse(下同) $字符串2:ab_ sd_ls_o
我能夠使它適用於az,0-9,但它可以很好地允許這些額外的字符,尤其是äöü。感謝您的輸入!
我不確定,因爲我會通過瀏覽器的URL傳遞這些字符串。允許更多特殊字符可能會導致問題,你不覺得嗎? – andreas
@andreas - 在這種情況下,如果它們是查詢字符串的一部分,請考慮將它們傳遞給** ['urlencode'](http://php.net/manual/en/function.urlencode.php)**。如果他們不這樣做,無論如何''äöüÄÖÜ''都會給你帶來問題。通常情況下,'и'和其他非ASCII字母在任何可以使用''äöüÄÖÜ''的地方都很好,因爲那些字母也不是ASCII。 –
因此,基本上,如果您可以使用'äöüÄÖÜ',那麼''и','φ','''或其他來自非拉丁字母的其他字母不應該有問題。 –