【问题标题】:str_split returning two charsstr_split 返回两个字符
【发布时间】:2012-06-21 13:06:29
【问题描述】:

我为安全链接编写了一个函数,它返回一个字符串。该函数称为 safe_link(string),但我在替换字符时遇到了问题。我不知道为什么 str_replace() 不起作用,这就是我编写自己的函数的原因。我需要保存一个有效的 URL,我需要从表单中给出的字符串中删除 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] 返回两个字符而不是一个字符。但为什么呢?

谢谢!

【问题讨论】:

  • 它应该做什么?什么是“安全链接功能”?
  • $url 是一个数组,str_replace 是字符串
  • 我不知道你想做什么。看看parse_url
  • 我会选择@AleksG 发布的内容;)

标签: php char


【解决方案1】:

这个函数怎么样:

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

这是你所期望的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2017-05-30
    • 1970-01-01
    • 2012-10-15
    • 2019-08-18
    • 2019-10-06
    • 1970-01-01
    相关资源
    最近更新 更多