Php $\u获取值或eregi错误?
我不确定我的问题出在哪里。我使用参数(GET)调用了一个脚本,如: 这是我的密码: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";
$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";
}