PHP验证(两个条件)

时间:2017-09-06 08:41:16

标签: php drupal

我正在进行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)结合起来?

谢谢!

3 个答案:

答案 0 :(得分:1)

使用$_SERVER['HTTPS']

 $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://
}