检查URL是否有协议,如果没有,则添加

时间:2013-01-15 17:53:54

标签: php

我有一个表单可以从用户那里获取一些网址。

例如:网址,facebook地址,推特地址等。然后我需要检查用户是否可以输入协议作为地址的一部分。如果协议不是提交的URL我需要添加协议。

在这种情况下,它是http://。有时用户可能会错误地输入协议。

例如 htttp:/, http//, htp://等。

有了这个问题,我需要知道有没有办法完全删除用户输入的协议,并添加带有该URL的新协议以插入数据库。

我写了一些代码来检测提交的URL有一个协议..它的工作很少我期待但不是100%。

$url = 'www.example.com';
$checkProtocol = strpos($url, '://');

if (false === $checkProtocol ) {
    $url = 'http://' . $url;    
    echo 'This is new URL : ' . $url;
} else {
    echo 'Invalid';
}

假设$ url有htp://www.example.com它成为无效的网址..没有分配协议。

希望有人帮助我。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果你想处理所有情况,你可能只想假设网页缺少http://或者网页格式不正确,只需在清理完字符串后添加它:

$url = 'htp://www.example.com';
$fixed_url = 'http://' . preg_replace('#^.*://#', '', $url);