我使用HTML中的表单元素将用户的输入作为输入:
<form action="parse.php" method="post">
Web address :
<input type="text" name="addr">
<input type=submit value="Go">
</form>
问题是用户可以使用以下任何格式输入网址:
google.com
www.google.com
http://www.google.com
无论用户输入什么内容,我都希望网址格式为http://www.google.com。
除了检查所有可能性之外,在php中实现此功能的最佳方法是什么?
答案 0 :(得分:0)
您必须检查所有可能性或使用正则表达式来测试其有效性。
或者,您可以使用客户端Javascript验证输入。
最后,您可以检查协议的URL输入,如果不存在,则默认为“http://”,并将其添加到URL字符串中。
答案 1 :(得分:0)
这些方面的某些内容应该稍微调整一下:
$address = htmlspecialchars($_POST['addr']);
if (substr($address, -3, 3) != 'com') {
$address = $address.".com";
}
if (substr($address, 0, 7) != 'http://') {
$address = "http://".$address;
}
echo $address;
首先,从表单中获取输入并进行santizied。然后,substr检查输入的最后3个字符以查看是否存在'com'。如果不是,它会将'.com'追加到最后。对于http://
也是如此希望这有帮助!