【发布时间】:2015-04-12 00:56:29
【问题描述】:
我的一些网址有一个小问题。假设that $result['title'] = Citroën
在我的网址中,我希望这个词变成“雪铁龙”。下面的函数做的一切都是正确的,除了它删除了“ë”,所以我的网址变成了“citron”。
<?php echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $result['title'])));?>
我想我可以通过使用iconv...来解决这个问题,但它不起作用。 “Citroën”仍被“citron”取代。
<?php echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $result['title']))));?>
那么,我在这里错过了什么?
【问题讨论】:
-
您是否考虑使用 urlencode() 代替。
echo urlencode('Citroën'); //Citro%C3%ABn -
使用 urlencode 给我“citroc3ab”。
-
我找到了答案。我需要设置一个目标语言环境。
php setlocale(LC_ALL, 'en_GB'); -
将 ë 更改为 e 就像将 h 更改为 f 那么为什么不正确为此目的进行编码,对于网址,其
urlencode()
标签: php string url url-rewriting iconv