我已经搜索了很长一段时间,现在我找不到为什么我的代码不工作它是如何出现的。我不知道如果我有一个块或任何东西,但这里有云:PHP foreach给出错误的结果
$start = 1;
$sstart = strval($start);
$scan = scandir('upload');
$result = null;
while($result==null)
{
foreach($scan as $value)
{
if(strpos($value,$start) == false)
{
$result = $start;
break 2;
}
else
{
$start = $start + 1;
break;
}
}
}
从本质上讲,我想扫描我的目录'upload'
与在$start
持有数量的任何文件。如果未找到该值,则$result
取值$start
,并且while()
循环结束。否则,我增加$start
并继续检查目录中的每个文件。
现在我有一个非常类似的功能,像这样运行在另一个完美工作的页面上。然而,这似乎总是停在1.
我的上传文件夹中有一个名为showreel1.wmv
的文件,它肯定会扫描此文件。 (已回显scandir数组)但是,它似乎从未切换到else
块,但继续设置$result
,好像它从未找到值“1”。
我也尝试在strpos()
函数中使用$sstart
并且它没有任何作用,这当然会将$start
的值更改为一个字符串。
你们可以帮我解释一下吗?如果草堆与你正在寻找
这条线将返回一个假阳性针开始
你想要的最终结果是什么? – Galen 2013-03-21 14:52:45
if(strpos($ value,$ start)=== false) – 2013-03-21 14:55:41