在PHP中将名称转换为URL友好的字符串?

时间:2012-12-13 05:14:52

标签: php

  

可能重复:
  URL Friendly Username in PHP?

我有这样的事情:

'mrt1' => 'Zhongxiao Dunhua Sun'

将被包含在这样的锚链接中:

<a href="'. $mrt1 .'">'. $mrt1 .'</a>

我希望输出是这样的:

<a href="zhongxiao-dunhua-sun">Zhongxiao Dunhua Sun</a>

如何做到这一点,以便我可以将该名称转换为URL-frienly字符串(所以我可以将它放在href属性中)?

4 个答案:

答案 0 :(得分:8)

$s = 'Zhongxiao Dunhua Sun';
$r = preg_replace('/\W+/', '-', strtolower($s));
echo("$r\n");

答案 1 :(得分:2)

str_replace()将空格更改为-,将strtolower()更改为小写。

$mrt1 = 'Zhongxiao Dunhua Sun';
$mrt1 = str_replace(' ','-',strtolower($mrt1));

答案 2 :(得分:2)

PHP具有使字符串符合URL标准的功能:

urlencode($mrt1);

答案 3 :(得分:2)

你也可以尝试这个功能..

function create_seo_link($text) {
    $letters = array(
        '–', '—', '"', '"', '"', '\'', '\'', '\'',
        '«', '»', '&', '÷', '>',    '<', '$', '/'
    );

    $text = str_replace($letters, " ", $text);
    $text = str_replace("&", "and", $text);
    $text = str_replace("?", "", $text);
    $text = strtolower(str_replace(" ", "-", $text));

    return ($text);
}