URL에 http://가 없는 경우 추가하는 방법

추가 방법http://URL에 아직 프로토콜이 포함되지 않은 경우(예: 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" 

다음 항목도 참조하십시오.




프로토콜(“//”)이 있는지 확인하고 없으면 “http://”를 추가하십시오.

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

주의: 이것은 간단하고 간단한 해결책일 수 있지만 Jack의 답변은parse_url매우 심플하고 견고합니다.당신은 그것을 사용하는 것이 좋을지도 모릅니다.




에 대한 최선의 대답은 다음과 같습니다.

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

프로토콜은 유연하므로 ftp, https 등에서 동일한 기능을 사용할 수 있습니다.




문자열 검색:://. 없는 경우는, 프리펜드 합니다.http://현악기에…다른 모든 것은 그대로 문자열을 사용합니다.

불필요한 입력 문자열이 없는 한, 이 조작은 유효합니다.