【发布时间】:2014-11-02 03:21:40
【问题描述】:
我试图去掉字符串中的一些字符。字符串将通过表单提交(方法:POST)。 我需要一个小写的字符串。字符 ä、ö、ü 和 ß 应变为 ae、oe、ue 和 ss。应删除所有其他特殊字符和空格。
字符串
Lorem_ipsum_Ö-ß &änyOther char
应该变成
lorem-ipsum-oe-ss-aenyother-char
这是我的代码:
$slug = strtolower($_POST['title']);
$slug = trim($slug, '-');
$slug = preg_replace('/ä/g', 'ae', $slug);
$slug = preg_replace('/ö/g', 'oe', $slug);
$slug = preg_replace('/ü/g', 'üe', $slug);
$slug = preg_replace('/ß/g', 'ss', $slug);
$slug = preg_replace('/[^\w ]/g', '', $slug);
$slug = preg_replace('/ +/g', '-', $slug);
首先,我的尝试没有如我所愿。
其次:我怎样才能使这段代码更小?我想有可能只用一个正则表达式就可以得到这个......
【问题讨论】:
-
请解释“不起作用”
-
我没有得到结果。
-
没有
/g修饰符为preg_match,删除它,会正常工作。 -
哦。很简单 :-) 谢谢。
-
Ö不会使用 strtolower() 转换为小写