IT박스

URL에 http : //가 없으면 어떻게 추가합니까?

itboxs 2020. 8. 6. 08:06
반응형

URL에 http : //가 없으면 어떻게 추가합니까?


어떻게 추가 할 수 있습니다 http://이미 프로토콜 (예 : 포함되지 않는 경우 URL에 http://, https://또는 ftp://)?

예:

addhttp("google.com"); // http://google.com
addhttp("www.google.com"); // http://www.google.com
addhttp("google.com"); // http://google.com
addhttp("ftp://google.com"); // ftp://google.com
addhttp("https://google.com"); // https://google.com
addhttp("http://google.com"); // http://google.com
addhttp("rubbish"); // http://rubbish

@nickf 코드의 수정 된 버전 :

function addhttp($url) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}

인식 ftp://, ftps://, http://https://사례를 구분 방법이다.


글을 쓰는 시점에서 답을 위해 내장 함수를 사용하지 않았습니다.

function addScheme($url, $scheme = 'http://')
{
  return parse_url($url, PHP_URL_SCHEME) === null ?
    $scheme . $url : $url;
}

echo addScheme('google.com'); // "http://google.com"
echo addScheme('https://google.com'); // "https://google.com"

또한보십시오: parse_url()


프로토콜 ( ": //"로 표시)이 있는지 확인하고없는 경우 "http : //"를 추가하십시오.

if (false === strpos($url, '://')) {
    $url = 'http://' . $url;
}

참고 : 이것은 간단하고 간단한 솔루션 일 수 있지만 사용하는 Jack의 대답 parse_url은 거의 간단하고 훨씬 강력합니다. 아마도 그 것을 사용해야합니다.


://없는 경우 문자열 앞에 문자열을 스캔하십시오. 문자열 앞에 http://.., 다른 모든 문자열은 그대로 사용하십시오.

쓰레기 입력 문자열이 없으면 작동합니다.


이에 대한 최상의 답변은 다음과 같습니다.

function addhttp($url) 
{
  return $url = empty(parse_url($url)['scheme']) ? 'http://' . ltrim($url, '/') : $url;
}

닉프 솔루션 수정 :

function addhttp($url) {
    if (!preg_match("@^https?://@i", $url) && !preg_match("@^ftps?://@i", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}

<?php

if (!preg_match("/^(http|ftp):/", $_POST['url'])) {
   $_POST['url'] = 'http://'.$_POST['url'];
}
$url = $_POST['url'];

?>

이 코드는 URL에 없으면 http : //를 추가합니다.


이 시도. 수밀 *하지는 않지만 충분할 수 있습니다.

function addhttp($url) {
    if (!preg_match("@^[hf]tt?ps?://@", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}

*즉, "fttps : //"와 같은 접두사는 유효한 것으로 간주됩니다.

참고 URL : https://stackoverflow.com/questions/2762061/how-to-add-http-if-it-doesnt-exists-in-the-url

반응형