如何检查变量中是否包含“http://”,如果不是,请添加它?

时间:2010-06-20 23:26:50

标签: php

基本上,我使用gethostbyname()来获取指定网址的IP地址,使用parse_url()来确定特定的域。但是,如果http://不在URL中(除非我缺少选项),这不起作用

那么如何检查网址中是否有http://,如果没有,请正确添加?

或者如果有更好的选择,我想听听。感谢。

4 个答案:

答案 0 :(得分:7)

<?php
  $url = [some url here];
  if(substr($url, 0, 7) != 'http://') {
     $url = 'http://' . $url;
  }

?>

答案 1 :(得分:1)

嗯,严格地说,你也需要考虑https,甚至ftp和mailto,这取决于你在做什么。 你可能想先检查':',没有你肯定没有协议,可以跳过其余的,你可能有一个协议,或者可能是一个端口规范。

  <?php 
  $url = [some url here]; 
  if(substr($url, 0, 7) != 'http://') { 
      if(substr($url, 0, 8) != 'https://') { 
         $url = 'http://' . $url; 
      } 
  } 

?>

答案 2 :(得分:1)

简单的解决方案:

if(!preg_match('/http[s]?:\/\//', $url, $matches)) $url = 'http://'.$url;

答案 3 :(得分:-4)

if (strpos("http://", $url) === "true"){ action };