PHP:URL 友好字符串

标签 php string url

Possible Duplicate:
How to handle diacritics (accents) when rewriting 'pretty URLs'

我想用“普通”字符(a-z 和 0-9 之间的字符)替换特殊字符,例如 Å ä Ö Ü é。空格当然应该用破折号替换,但这并不是真正的问题。

换句话说,我想把它变成:

en räksmörgås

进入此:

en-raksmorgas

最好的方法是什么?

提前谢谢您。

最佳答案

您可以使用iconv用于字符串替换...

$string = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);

基本上,它会 transliterate删除它可以使用的字符,并删除那些它不能使用的字符(不在 ASCII 字符集中)...

然后,只需将空格替换为 str_replace:

$string = str_replace(' ', '-', $string);

或者,如果您想变得更奇特,您可以使用简单的正则表达式将所有连续的空白字符替换为单个破折号:

$string = preg_replace('/\\s+/', '-', $string);

编辑 正如 @Robert Ros 指出的,您需要在使用 iconv 之前设置区域设置(取决于系统的默认设置)。只需在 iconv 行之前执行此行即可:

setlocale(LC_CTYPE, 'en_US.UTF8');

关于PHP:URL 友好字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587625/

相关文章:

c - printf ("%s\n",str);给出段错误但 printf ("%s",str);不要,其中 "str"是一个字符串指针

android - 将字符串添加到 URL 时如何删除字符串中的空格?

string - 使用 Haskell 将字符串拆分为列表

c# - 从 url 中获取参数

php - 在 PHP 中显示已处理的脚本计算步骤

php - 从 twig 中的 storyblok 加载故事时无法打开流 php 错误

ios - 从 iPhone 应用程序打开 Facebook 页面时出现错误 "This App is not available for your phone"

xml - 检测 URL 中字符串的 XSL 值

php - 与 PHP 和 MySQL 建立一对多关系的分页

javascript - 从 HTML 上传(不是读取).xlsx 文件并将其(以任何方式)发送到 PHP 文件