【问题标题】:preg_replace everything but alpha numeric and accentspreg_replace 除了字母数字和重音之外的所有内容
【发布时间】:2013-10-24 19:08:05
【问题描述】:

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

【问题讨论】:

    标签: php preg-replace diacritics


    【解决方案1】:

    使用支持多字节的 mb_ereg_replace、preg_replace

    【讨论】:

    • 因为重音
    猜你喜欢
    • 2016-04-02
    • 2012-08-01
    • 1970-01-01
    • 2012-10-24
    • 2011-11-12
    • 1970-01-01
    • 2011-11-08
    • 2012-11-15
    • 2011-02-16
    相关资源
    最近更新 更多