str_split返回两个字符

时间:2012-06-21 13:06:29

标签: php char

我为安全链接编写了一个返回字符串的函数。该函数名为safe_link( string ),但我遇到了char替换问题。我不知道为什么str_replace()不起作用,这就是我编写自己的函数的原因。我需要保存有效的网址,我需要从表单中提供的字符串中删除 http:// www。

function safe_link($arg){
    $url = str_split($arg);
    $string = array();
    $max = 0;

    if($url[0] == "h" && $url[7] == "w") # http://www.
        $max = 11;
    elseif($url[0] == "h") # http://
        $max = 7;
    elseif($url[0] == "w") # www.
        $max = 4;

    str_replace("/", "", $url);

    for($i = $max, $n = 0; $i < sizeof($url); $i++, $n++){
        $string[$n] = $url[$i];
    }

    return implode("", $string);
}

该功能正在运行,但是如果一个人在URL的末尾写了“/”(斜杠)怎么办?我需要从该字符串中删除,但我不知道该怎么做。 str_replace()不起作用。我试图调试,我看到数组$url[sizeof($url) - 1]返回两个字符而不是一个字符。但为什么呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

这个功能怎么样:

function safe_link($url) {
    $url = str_replace('http://', '', $url);
    $url = str_replace('www.', '', $url);
    $url = str_replace('/', '', $url);
    return trim($url);
}

这是你期望的吗?