2014-12-11 5 views
1

Vine URL에 HTTP 또는 HTTPS를 허용하려면 어떻게 변경해야합니까? 이 같은 ... 당신의 if 문을 조금 변경 : "//은 https"Vine URL의 유효성을 검사하고 PHP를 사용하여 HTTP 또는 HTTPS를 허용하는 방법

$vineURL = 'https://vine.co/v/'; 
$pos = stripos($url_input_value, $vineURL); 

if ($pos === 0) { 
    echo "The url '$url' is a vine URL"; 
} 
else { 
    echo "The url '$url' is not a vine URL"; 
} 
+0

가'preg_match'을 고려하십시오. – ceejayoz

답변

3

당신이 할 수처럼 parse_url 함수를 사용하면 URL을 구성 요소로 분리하여 각 구성 요소를 개별적으로 쉽게 일치시킬 수 있습니다.

,210
var_dump(parse_url("https://vine.co/v/")); 
// array(3) { 
// ["scheme"]=> 
// string(4) "http" 
// ["host"]=> 
// string(7) "vine.co" 
// ["path"]=> 
// string(3) "/v/" 
// } 

scheme, hostpath가 일치하는 경우는 다음 바로 확인할 수 있습니다

function checkVineURL($url) { 
    $urlpart = parse_url($url); 
    if($urlpart["scheme"] === "http" || $urlpart["scheme"] === "https") { 
     if($urlpart["host"] === "vine.co" || $urlpart["host"] === "www.vine.co") { 
      if(strpos($urlpart["path"], "/v/") === 0) { 
       return true; 
      } 
     } 
    } 
    return false; 
} 
checkVineURL("https://vine.co/v/");  // true 
checkVineURL("http://vine.co/v/");  // true 
checkVineURL("https://www.vine.co/v/"); // true 
checkVineURL("http://www.vine.co/v/"); // true 
checkVineURL("ftp://vine.co/v/");  // false 
checkVineURL("http://vine1.co/v/");  // false 
checkVineURL("http://vine.co/v1/");  // false 
+0

광산이 작동하지만 더 나은 솔루션을 선호합니다. – saqibahmad

+0

이것은 www.vine.co를 유효하지 않은 것으로 표시하는 것을 제외하고는 훌륭하게 작동합니다. www가 있거나없는 도메인을 허용하려면 어떻게해야합니까? – Cofey

+0

저는 실제로 정규 표현식 솔루션이 *** *** 일 것이라고 생각했습니다. 나는 내 대답을 개정했습니다. –

1

는 그냥 꺼내

$vineURL = 'vine.co/v/'; 
if(stripos($user_input_value, $vineURL) !== false) { 
    echo "This is a vine URL"; 
} else { 
    echo "This is not a vine URL"; 
} 
+0

작동하지만 사용자가 http : // 또는 https : //를 입력하지 않으면 URL이 작동하지 않습니다. 검증에 어떻게 포함될 수 있습니까? – Cofey

+0

당신은 그것을 서로 강요하거나 어느 것이 먼저 있는지 확인할 수 있습니다. –

0

사용자 정규식이

if (preg_match("/^http(s)?:\/\/(www\.)?vine\.co\/v\//", $url)) { 
    echo "This is a vine URL"; 
} else { 
    echo "This is not a vine URL"; 
}