在php中使用parse_url,我们如何检查输入是一个url还是只是一个字符串

Jen*_*sta 1 php parse-url

这是我的代码

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="text"/>
<input type="submit" name="submit" value="submit"/>
</form>
<?php
if(isset($_POST['submit'])){
$url = $_POST['text'];
$parse = parse_url($url);
echo $parse['host'];
}
?>
Run Code Online (Sandbox Code Playgroud)

我使用parse_url以获取主机的名称,当有人输入URL,如果我现在试着输入一些垃圾输入到输出,它给出了一个错误:"未定义指数:主机",我想知道我们如何检查是否其在回显parse_url函数的输出之前,有效的url或只是一个字符串

nic*_*ckb 6

您可以检查是否定义了主机:

echo isset($parse['host']) ? $parse['host'] : 'Invalid input';
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建一个正则表达式来检查您传递给parse_url的字符串是否格式正确.这有点难,但可以做到.请参阅:使用PHPPHP URL验证+检测使用Regex解析URL