基本上,我使用gethostbyname()
來獲取指定URL的IP地址,使用parse_url()
來確定特定的域。然而,這並不工作,如果http://
不在URL(除非我失去了一個選項)如何檢查'http://'是否在變量中,如果不是,請添加它?
所以,我怎麼能檢查是否http://
是在URL,如果沒有,適當增加嗎?
或者如果有更好的選擇,我想聽聽它。謝謝。
基本上,我使用gethostbyname()
來獲取指定URL的IP地址,使用parse_url()
來確定特定的域。然而,這並不工作,如果http://
不在URL(除非我失去了一個選項)如何檢查'http://'是否在變量中,如果不是,請添加它?
所以,我怎麼能檢查是否http://
是在URL,如果沒有,適當增加嗎?
或者如果有更好的選擇,我想聽聽它。謝謝。
<?php
$url = [some url here];
if(substr($url, 0, 7) != 'http://') {
$url = 'http://' . $url;
}
?>
工作就像一個魅力,謝謝。 – Rob 2010-06-20 23:33:26
if (strpos("http://", $url) === "true"){ action };
此比較不起作用。 strpos在成功時返回一個整數,如果找不到字符串則返回boolean「false」。它永遠不會返回布爾值「true」,當然不會返回字符串「true」。 if(strpos(「http://」,$ url)!== false)'會測試它是否在整個字符串中找到,或者查看它是否在字符串的開頭,if(strpos(「 http://「,$ url)=== 0)' – JAL 2010-06-20 23:57:28
嗯,嚴格來說,你需要考慮HTTPS,以及,甚至ftp和郵寄地址根據你在做什麼。 你可能首先要檢查一個':',沒有一個你肯定沒有協議,可以跳過其餘的協議,你可能有一個協議,或者一個端口規範。
<?php
$url = [some url here];
if(substr($url, 0, 7) != 'http://') {
if(substr($url, 0, 8) != 'https://') {
$url = 'http://' . $url;
}
}
?>
等
簡單的解決方案:
if(!preg_match('/http[s]?:\/\//', $url, $matches)) $url = 'http://'.$url;
的杜佩http://stackoverflow.com/questions/2762061/how-to-add-http-if-its-not-exists -in-the-url? – 2010-06-20 23:56:02