0

找了一阵子,但是由于我不明白可以输入的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 ,尤其是第一个代码块左侧写的那些

4

1 回答 1

1

使用支持多字节的 mb_ereg_replace、preg_replace

于 2013-10-24T19:10:55.073 回答