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);
}
Это то, что вы ожидаете?