一直在寻找,但由于我不明白可以输入的preg-replace参数,我无法通过查看类似的问题来解决我的问题。 (因此我想问你能解释一下你答案中的每个标志吗?)
我想过滤一个字符串并替换所有非字母数字或带空格的重音。 (在此之后我使用preg_split来制作它们的列表)。
在这里,我称为重音符号,仅显示小写,但也想保留大写变体。(可能已经忘记了一些)。我真的需要左边的标志。权利不是强制性的:
é è ë ï ê ç ü ö ä ú ó á ã õ ñ å û â ô
我需要这个,因为我必须搜索我的数据库(准备好的语句)。
目前我使用:
$terms=preg_split('/\s+/', preg_replace('/[^a-zA-Z0-9À-ÿ]+/', ' ', $_GET['ter']));
但是下面的例子显示它没有留下符号:
url example: mydomain.com/index.php?ter=léopold
$terms=preg_split('/\s+/', preg_replace('/[^a-zA-Z0-9À-ÿ]+/', ' ', $_GET['ter']));
foreach ($erms as $term){echo " term: ".$term;}
Outputs:
term: l� term: opold
What i want it to be:
term: léopold
所以我需要创建一个不会损害重音符号的preg_replace,尤其是第一个代码块左侧写的重音符号
答案 0 :(得分:1)
使用带有多字节支持的mb_ereg_replace,preg_replace