输入url验证php

我对这段代码有问题:


    $parse = parse_url($url); //$url is POST from input field

    $urls = $parse['host'];


    $domain = array('mydomain.com', 'mydomain.net');


    if (!in_array($urls, $domain)) {


       echo 'invalid URL';

    }

检查 url,如果不在数组中,如果是,则给出错误继续...。我看到所有类似的线程,但没有人解决我的问题。


PS 问题是:只给出无效的 URL(以防 url 正确和 URL 错误)


ex url:mydomain.com/u/123-test需要是有效的 url


GCT1015
浏览 184回答 1
1回答

喵喔喔

它不起作用的主要原因是您的网址不包含方案 http(s)部分。使用http(s)://, 当您尝试parse_url()它返回路径值而不是主机值<?php$url = 'http://yourdomain.com/u/123-test';&nbsp; //$url is POST from input field$url = parse_url($url, PHP_URL_HOST);$domain = array('yourdomain.com', 'yourdomain.net');if (!in_array($url, $domain)) {&nbsp; &nbsp; &nbsp;echo 'invalid URL';&nbsp; &nbsp; }else{&nbsp; &nbsp; &nbsp;echo 'valid URL';}?>&nbsp;&nbsp;PHP Parse URL -当协议前缀不存在时,域作为路径返回演示:&nbsp;https&nbsp;:&nbsp;//3v4l.org/nUCfH
打开App,查看更多内容
随时随地看视频慕课网APP