使用PHP准备URL
在许多情况下,您将使用PHP创建一个程序,该程序将URL作为输入并使用地址来执行某些操作。这可能是站点分析或图像调整大小,但是无论使用什么,都需要确保URL可以使用或至少具有相同的格式。
用户倾向于忽略URL字符串的是开头的http://位。您可以验证URL来强制用户执行此操作,但最终会惹恼一些人。到目前为止,确保URL开头具有http://位的最佳方法是将其添加到幕后。最好的方法是从字符串的开头删除http://,即使它不存在,然后重新添加。
$url = str_replace('http://', '',$url); $url = 'http://'.$url;
这样,您绝对可以确保http://在那里,无论用户是否输入了它,而且您都不必使用任何复杂的substr()/strpos()组合来确定URL的外观。当然,这不能解决https协议,但是您可以通过将字符串视为数组来进行测试。
if ($url[4].$url[5].$url[6] == 's:/') { //https }
一旦准备好URL,就无法保证该URL实际上是可行资源的地址。为此,您可以使用PHP5函数get_headers()检查资源是否返回有效的资源代码。该get_headers()函数将返回一个数组,其中包含从URL返回的标头。数组中的第一项始终是响应代码,因此,如果URL有效,您将获得HTTP/1.1200OK响应,因此您只需检查一下即可。
值得一提的是,get_headers()通话可能会延迟一小段时间,并且它并不能真正理解重定向到其他来源的位置,因此可能无法一直使用。但是,如果它不起作用,那么您的脚本也将不起作用!