我是PHP的初学者,我试图根据参数分离输入。以下是我的代码,但似乎我的$arg
变量从未设置过。有人可以指出我的错误吗?
$sender = $_GET['sender'];
$receiver = $_GET['receiver'];
$message = $_GET['message'];
$temp = explode( '.', $message);
$tempcnt = count($temp);
echo $temp[$tempcnt - 1];
if($tempcnt > 2)
{
if($temp[$tempcnt-1] === 'mp4')
{$arg = 3;}
elseif($temp[$tempcnt-1]==='jpg')
{$arg = 2;}
else
{$arg = 1;}
}
echo "Value of arg is" . $arg;
我甚至在==
中使用===
和strcmp
以及if
进行了尝试,但问题仍然存在。
答案 0 :(得分:0)
试试这个:
<?php
$temp strrchr("foo.jpg",".");
if($temp==".mp4")
$arg = 3;
elseif($temp==".jpg")
$arg = 2;
else $arg = 1;
?>
答案 1 :(得分:0)
另请参阅其他答案,但未提及的一种可能性是==
和===
以及strcmp
都比较敏感。因此,他们找不到像.MP4
这样的扩展程序。
在这种情况下,解决方案是使用strcasecmp
。
但是,首先要处理的问题是输出更多的诊断信息,以便您自己查看出现了什么问题。在此示例中,echo $tempcnt;
在分配后,或else echo "did nothing"
在外if {..}
块之后。
这样你就能够遵循程序流程。
答案 2 :(得分:0)
问题是因为我没有意识到我已经比较了args&gt; 2.使它&gt; = 2并完成中提琴!! 感谢@barmar指出这一点!