PHP If语句禁止数组中的某些单词

时间:2014-07-03 14:28:05

标签: php arrays post if-statement

在一些帮助之后,我有一个不允许的单词数组,我不能在这里显示,因为它们是淫秽的。

我想要做的是检查if $_POST['urlprefix'] !=其中一个数组元素,我想知道最简单的方法是什么。显然,下面只会停止数组的一个元素。

感谢您提供的任何帮助

if($_POST['urlprefix'] != $arr[1]) {
  print("You've Passed");
} else {
  print("You Are Not Allowed To Use That URL Prefix");
}

4 个答案:

答案 0 :(得分:1)

in_array()的示例是实现这一目标的快捷方式。您也可以使用preg_grep来使用case-insensitive in_array function

但是,如果 ship 是一个坏词,您是否要允许发送 py ?以下代码也将禁止包含单词的任何前缀。

$disallow = false;
foreach($arr as $bad_word) {
    if(stripos($_POST['urlprefix'], $bad_word) !== false) {
         $disallow = true;
         break;
    }
}

if($disallow) {
    die('Bad words in URL!');
}

答案 1 :(得分:0)

您可以使用in_array函数:

if (!in_array($_POST['urlprefix'], $arr))
{
    print("You've Passed");
}
else
{
    print("You Are Not Allowed To Use That URL Prefix");
}

http://www.php.net/manual/fr/function.in-array.php

答案 2 :(得分:0)

你可以用这种方式。 in_array比此方法。详细了解array_flip

$words = array('damn','shit');
$flip = array_flip($words);
if(!isset($flip[$_POST['urlprefix']])){
    //valid url
}

答案 3 :(得分:0)

您可以使用php in_array功能。它检查数组中是否存在值

if(!in_array($_POST['urlprefix'], $arr)) {
      print("You've Passed");
    } else {
      print("You Are Not Allowed To Use That URL Prefix");
    }