2012-06-21 2 views
0

문자열을 반환하는 안전한 링크를위한 함수를 작성했습니다. 이 함수는 safe_link (문자열)라고 불리지 만 char 교체에 문제가 있습니다. str_replace()가 작동하지 않는 이유를 모르겠다. 이것이 내 자신의 함수를 작성한 이유이다. 유효한 URL을 저장해야하는데 http : //, www를 삭제해야합니다.은 형식으로 주어진 문자열에서옵니다.두 개의 문자를 반환하는 str_split

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] 한 문자 대신 두 문자를 반환하는 보았다. 하지만 왜?

감사합니다.

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

이 당신은 무엇을 기대 할 수 있습니다 :이 기능에 대한

+0

무엇을해야합니까? "안전한 링크 기능"이란 무엇입니까? –

+0

$ url은 배열이고, str_replace는 문자열입니다. – Bono

+2

나는 무엇을 하려는지 전혀 모른다. ['parse_url'] (http://php.net/manual/en/function.parse-url.php) –

답변

관련 문제