URL에 http : //를 추가하는 방법은 무엇입니까?
PHPURL에 http : //를 추가하는 방법은 무엇입니까?
http : //, https : // 또는 ftp : //와 같이 프로토콜을 포함하지 않은 경우 URL에 http : //를 추가하려면 어떻게해야합니까?
예:
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
해결법
-
==============================
1.@nickf 코드의 수정 된 버전 :
@nickf 코드의 수정 된 버전 :
function addhttp($url) { if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { $url = "http://" . $url; } return $url; }
대 / 소문자를 구분하지 않고 ftp : //, ftps : //, http : // 및 https : //를 인식합니다.
-
==============================
2.이 글을 쓰는 시점에서, 응답을위한 내장 함수는이 중 아무 것도 사용하지 않았다 :
이 글을 쓰는 시점에서, 응답을위한 내장 함수는이 중 아무 것도 사용하지 않았다 :
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 ()
-
==============================
3.단순히 프로토콜 ( ": //"로 표시)이 있는지 확인하고 그렇지 않은 경우 "http : //"를 추가하십시오.
단순히 프로토콜 ( ": //"로 표시)이 있는지 확인하고 그렇지 않은 경우 "http : //"를 추가하십시오.
if (false === strpos($url, '://')) { $url = 'http://' . $url; }
참고 : 이것은 간단하고 솔직한 해결책 일 수 있지만, parse_url을 사용하는 Jack의 대답은 거의 간단하고 훨씬 강력합니다. 당신은 아마 그것을 사용해야합니다.
-
==============================
4.문자열을 검색합니다 : //, 문자열이 없다면 http : //를 문자열 앞에 추가합니다. 다른 모든 문자열은 그대로 사용합니다.
문자열을 검색합니다 : //, 문자열이 없다면 http : //를 문자열 앞에 추가합니다. 다른 모든 문자열은 그대로 사용합니다.
쓰레기 입력 문자열이 없으면이 작업을 수행 할 수 있습니다.
-
==============================
5.이에 대한 최선의 대답은 다음과 같습니다.
이에 대한 최선의 대답은 다음과 같습니다.
function addhttp($url) { return $url = empty(parse_url($url)['scheme']) ? 'http://' . ltrim($url, '/') : $url; }
-
==============================
6.nickf 솔루션 수정 :
nickf 솔루션 수정 :
function addhttp($url) { if (!preg_match("@^https?://@i", $url) && !preg_match("@^ftps?://@i", $url)) { $url = "http://" . $url; } return $url; }
-
==============================
7.
<?php if (!preg_match("/^(http|ftp):/", $_POST['url'])) { $_POST['url'] = 'http://'.$_POST['url']; } $url = $_POST['url']; ?>
이 코드는 URL에 http : //를 추가합니다.
-
==============================
8.이 시도. 방수 *는 아니지만 충분할 수 있습니다.
이 시도. 방수 *는 아니지만 충분할 수 있습니다.
function addhttp($url) { if (!preg_match("@^[hf]tt?ps?://@", $url)) { $url = "http://" . $url; } return $url; }
* : 즉, "fttps : //"와 같은 접두어는 유효한 것으로 간주됩니다.
from https://stackoverflow.com/questions/2762061/how-to-add-http-if-it-doesnt-exists-in-the-url by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
암호화없이 PHP 코드를 보호하는 최상의 솔루션 (0) | 2018.09.16 |
---|---|
php 여러 공백을 하나의 공백으로 바꾸기 (0) | 2018.09.16 |
슬러그를 만드는 PHP 함수 (URL 문자열) (0) | 2018.09.16 |
PHP MySQL의 Google 차트 JSON - 전체 예제 (0) | 2018.09.16 |
PHP에서 쓰레드 안전하거나 쓰레드 안전하지 않은 것은 무엇입니까? (0) | 2018.09.16 |