我正在进行json验证,需要验证以http://或https://
开头的网址 if(preg_match("/^[http://][a-zA-Z -]+$/", $_POST["url"]) === 0)
if(preg_match("/^[https://][a-zA-Z -]+$/", $_POST["url"]) === 0)
我在synatx中是错的,还应该如何在同一语句中将两者(http和https)结合起来?
谢谢!
答案 0 :(得分:1)
$isHttps = (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) ? true : false;
答案 1 :(得分:1)
您可以使用parse_url
<?php
$url = parse_url($_POST["url"]);
if($url['scheme'] == 'https'){
// is https;
}else if($url['scheme'] == 'http'){
// is http;
}
// try to do this, so you can know what is the $url contains
echo '<pre>';print_r($url);echo '</pre>';
?>
OR
<?php
if (substr($_POST["url"], 0, 7) == "http://")
$res = "http";
if (substr($_POST["url"], 0, 8) == "https://")
$res = "https";
?>
答案 2 :(得分:0)
如果您想检查字符串以 http:// 或 https:// 开头,而不必担心整个网址的有效性,请执行以下操作:< / p>
<?php
if (preg_match('`^https?://.+`i', $_POST['url'])) {
// $_POST['url'] starts with http:// or https://
}