我正在寻找将http://添加到提交的网址的最佳方式。我有一个网站,允许用户在注册时提交他们的网站网址,问题是一些用户输入“example.com”,一些用户输入“www.example.com”和一些类型“http(s)://示例。 com“将http://添加到提交的网址的开头
我想完成的是确保最终结果是”http(s)://example.com“,无论他们提交什么。
有没有办法做到这一点,仍然考虑其他事情,如co.uk或https?
我正在寻找将http://添加到提交的网址的最佳方式。我有一个网站,允许用户在注册时提交他们的网站网址,问题是一些用户输入“example.com”,一些用户输入“www.example.com”和一些类型“http(s)://示例。 com“将http://添加到提交的网址的开头
我想完成的是确保最终结果是”http(s)://example.com“,无论他们提交什么。
有没有办法做到这一点,仍然考虑其他事情,如co.uk或https?
你并不真正需要的正则表达式。 REGEX通常很贵。这里是一个自制的函数,实现自己的目标:
function fix_url($url) {
return (substr($url, 0, 7) == 'http://' || substr($url, 0, 8) == 'https://')
? $url
: 'http://'.$url;
}
样品:
$url = 'example.com';
$url1 = 'httpexample.com';
$url2 = 'http://example.com';
$url3 = 'https://example.com';
echo fix_url($url);
echo '<br>';
echo fix_url($url1);
echo '<br>';
echo fix_url($url2);
echo '<br>';
echo fix_url($url3);
echo '<br>';
输出:
http://example.com
http://httpexample.com
http://example.com
https://example.com
如果您有任何疑问,请考虑下面添加注释。
参考文献:
要说明http(s)://,这是非常直接的,因为有两个选项只能检查。即检查链接是以“http://”还是“https://”开头,如果不是,则添加“http://”。
您的问题的其他部分是对“.co.uk”进行说明,您可以收集字典中的所有可用后缀,这是一个非常糟糕的主意,或者您可以简单地检查是否存在“。 “留下“。”之后出现的内容。给用户的责任。
我希望我回答了你的问题:)
是的,我肯定宁愿在“。”之后留下任何东西。直到用户,我想,如果他们希望人们找到他们的网站,他们应该确保它的正确性。 至于寻找HTTP(S),我应该这样做与正则表达式?我已经看到了很多正则表达式,而且我还没有足够的技巧来知道哪一个会起作用,似乎有成千上万的正则表达式,都是不同的。 这部分是重要的,因为它决定了我如何链接到他们的网站,当有人进入例子。它只是创建一个像http://www.MySite.com/example.com这样的链接,这当然是不好的。 – James 2011-04-13 18:54:11
不需要正则表达式,这是昂贵的,你的情况是一个非常简单的字符串匹配。关于“MySite.com/example.com”,您现在可以验证网站是否错误,但可以通过简单的检查来检查多个网点,分号等。可以帮助您找到错误输入的网站并通知用户。除此之外,我不相信你可以验证所有输入网址的正确性:) – iBrAaAa 2011-04-14 10:49:38
搜索“HTTP”,并在提交的URL的“https”,如果搜索返回null附加的“http”开头。 With Javascript: var mystring =“example.com”; var normal = -1; var secured = -1; normal = mystring.search(/ http/i); secured = mystring.search(/ https/i); 等
不是JavaScript相关的问题 – Shoe 2011-04-13 19:12:33
简单的方法来解决您的网址:)
function addHttp($url)
{
if (!preg_match("~^(?:f|ht)tps?://~i", $url))
{
$url = "http://" . $url;
}
return $url;
}
什么编程语言? – 2011-04-13 17:53:14
对不起,我应该包括,我正在寻找一些适用于php的东西。 – James 2011-04-13 18:49:54