str_split возвращает два символа

Я написал функцию для безопасной ссылки, которая возвращает строку. Функция называется 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] возвращает два символа вместо одного символа. Но почему?

Спасибо!

1 ответ

Как насчет этой функции:

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

Это то, что вы ожидаете?

Другие вопросы по тегам