Php $\u获取值或eregi错误?

Php $\u获取值或eregi错误?,php,get,eregi,Php,Get,Eregi,我不确定我的问题出在哪里。我使用参数(GET)调用了一个脚本,如: 这是我的密码: $keyword_allowed = array("STOP", ""); $found_keyword = "N"; $keyword_cf = ""; for($i=0; $i < 2; $i++) { if (eregi($keyword_allowed[$i], $_GET["isms_restemsg"])) { $found_keyword = "Y";

我不确定我的问题出在哪里。我使用参数(GET)调用了一个脚本,如:

这是我的密码:

$keyword_allowed = array("STOP", "");

$found_keyword = "N";
$keyword_cf = "";
for($i=0; $i < 2; $i++)
{
    if (eregi($keyword_allowed[$i], $_GET["isms_restemsg"]))
    {
        $found_keyword = "Y";
        $keyword_cf = $keyword_allowed[$i];
    }
}
在这种情况下,eregi指令发生了什么

我问这个问题是因为$found\u keyword=“N”应该是“Y”还是有错误


如果是,您能帮助我吗?

您不应该使用
eregi()
,因为它很简单

看起来你根本不需要正则表达式

请尝试使用
stristr()
甚至简单的比较语法:

if ($keyword_allowed[$i] == $_GET["isms_restemsg"])
(如果您自己编写,您可能还可以控制GET值。)


在这种情况下,您可以通过回显一些调试输出来帮助自己:

print_r($_GET);
for($i=0; $i < 2; $i++)
{
    echo eregi($keyword_allowed[$i], $_GET["isms_restemsg"]));
}
print\r($\u-GET);
对于($i=0;$i<2;$i++)
{
echo-eregi($keyword_-allowed[$i],$u-GET[“isms_-restemsg]”);
}

eregi从php 5开始折旧

改用

或者更好


当URL是这样的时候

http://www.xxx.com?isms_restemsg=&value=1
您的
$\u GET[“isms\u restemsg”]
为空

因此
if(eregi($keyword_allowed[$i],$u GET[“isms_restemsg”))

第二个参数在
eregi
函数中作为null传递


eregi
已被弃用停止使用它替换为
preg\u match

我还不太确定,但可能还有其他方法可以实现您正在尝试的目标

首先,可以使用更具体的正则表达式来消除循环。这将检查两个选项,STOP和空字符串(这可能是您的
eregi
测试失败的原因)

或者,因为您只需要检查两个值:

if (in_array(strtoupper($_GET["isms_restemsg"]), array("STOP", "")) {
   $found_keyword = "Y";
}

解决方案:如果($keyword_allowed[$i]==$\u GET[“isms_restemsg”])感谢感谢,就像Martins之前所说的,在这种情况下,我不需要eregi(不推荐)或stristr。我不检查数组中的一部分,而是检查整个部分。但我保留它是为了将来。
 if (stristr($keyword_allowed[$i], $_GET["isms_restemsg"]))
$keyword_allowed = array("STOP", "");
$found_keyword = "N";

if(($keyword_c = array_search($_GET["isms_restemsg"], $keyword_allowed)) !== false) {
    $found_keyword = "Y";
}
http://www.xxx.com?isms_restemsg=&value=1
if (preg_match('/^(STOP | )$/ix', $_GET["isms_restemsg"], $r))
{
    $found_keyword = "Y";
    $keyword_cf = $r[0];
}
else {
    $found_keyword = "Y";
}
if (in_array(strtoupper($_GET["isms_restemsg"]), array("STOP", "")) {
   $found_keyword = "Y";
}