Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何填写从表单收到的url_Php_Html - Fatal编程技术网

Php 如何填写从表单收到的url

Php 如何填写从表单收到的url,php,html,Php,Html,我使用HTML中的表单元素从用户处获取网址作为输入: <form action="parse.php" method="post"> Web address : <input type="text" name="addr"> <input type=submit value="Go"> </form> 无论用户输入什么,我都希望url的形式是 除了检查所有可能性之外,在php中实现这一点的最佳方法是

我使用HTML中的表单元素从用户处获取网址作为输入:

<form action="parse.php" method="post">
        Web address :
        <input type="text" name="addr">
        <input type=submit value="Go">
</form>
无论用户输入什么,我都希望url的形式是


除了检查所有可能性之外,在php中实现这一点的最佳方法是什么?

您必须检查所有可能性或使用正则表达式来测试其有效性

或者,您可以使用客户端Javascript验证输入


最后,如果没有默认设置为“http://”,您可以检查协议的URL输入,并将其前置到URL字符串中。

以下内容需要稍加调整:

$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也一样://


希望这有帮助

这对任何gTLD、.org、.net等都不起作用。。。并且还会在以“https://”开头的URL的开头加上“http://”
$address = htmlspecialchars($_POST['addr']);

if (substr($address, -3, 3) != 'com') {
    $address = $address.".com";
}
if (substr($address, 0, 7) != 'http://') {
    $address = "http://".$address;
}

echo $address;