陈子文
2014-07-23 12:19:33
E-mail :
不知道大家是否有这样一个需求,当用户输入一个url的时候自动判断输入的url是否带有 “http” 如果用户输入的是完整的地址,也就是带http的,则不用理会,如果用户没有输入http,则自动为用户输入的url添加一个 “http”,这样的需求最典型的是在用户评论的时候输入主页地址的时候,有的用户很习惯的不输入http。
小编在D7的模板中就需要这样一个需求,因为一个url带http太长了,影响美观,所以就没有带http,但是不带http的时候用户点击超链接也是不带http的,这时候只会在本站跳转,不会做http跳转,所以小编针对这个问题写了一个小函数放入了module.php中,方便调用,有需求的朋友可以参考一下:
//判断url地址是否带有http,如果不带则自动添加 function if_http($http_url){ $url= $http_url; $preg='|^http://|'; if(!preg_match($preg,$url)) { $url='http://'.$url; } $tz_url=$url; return $tz_url; }
以上函数有一个参数,$http_url,也就是需要判断的url,首先把参数http_url赋值给变量url,然后接下来是一个正则匹配,匹配是否带有http,然后是一个if条件语句,如果不带http则给url添加一个http,如果带http则不理会,最后返回输出值。
另外,因为调用这个函数的时候本身没有任何输出,只是返回了结果,而不会打印出来,所以调用的时候必须echo出来才行
echo if_http('vps.chenziwen.cn');//正确,最后打印出地址
if_http('vps.chenziwen.cn');//错误,函数的结果不带然和输出,必须echo出来