我正在编写一个短脚本,当 http:// 与 URL 一起传递时遇到了问题。
问题:如果用户没有在其中提供带有 http:// 的链接,则脚本无法处理它并返回无效的 url 错误,而不是应该发生的事情,因为 preg_match 应该解析 http、https 和没有其中任何一个的链接。
这是负责检查http的代码片段
$url = $_REQUEST['url'];
if(!preg_match("/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i", $url)) {
$html = "<h1 id='upc' style='padding:8px 8px;text-align:center;'>Error: invalid URL</h1>";
} else {
$url = $_REQUEST['url'];
修复它并允许解析 http 和 https 以及解析没有 http 或 https 的链接的最佳方法是什么