Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 爆炸后foreach停止_Php_Foreach_Explode - Fatal编程技术网

Php 爆炸后foreach停止

Php 爆炸后foreach停止,php,foreach,explode,Php,Foreach,Explode,我很奇怪为什么foreach在爆炸后停止,它只返回第一个结果: $disabled_functions = ini_get('disable_functions'); print_r($disabled_functions); $disFunctionsNoSpace = str_replace(' ', '', $disabled_functions); // put them in an array $disFunctions = explode(',', $disFunctionsN

我很奇怪为什么foreach在爆炸后停止,它只返回第一个结果:

$disabled_functions = ini_get('disable_functions');

print_r($disabled_functions);

$disFunctionsNoSpace = str_replace(' ', '', $disabled_functions);

// put them in an array
$disFunctions = explode(',', $disFunctionsNoSpace);

print_r($disFunctions);

/*
var_dump($disFunctions);
OUTPUT
array (size=33)
0 => string 'curl_multi_exec' (length=15)
1 => string ' parse_ini_file' (length=15)
2 => string ' symlink' (length=8)
3 => string ' shell_exec' (length=11)
4 => string ' proc_close' (length=11)
Etc
*/

$this->disFunctions = $disFunctions;

//print_r($this->disFunctions);

// get file content of the uploaded file (renamed NOT the temporary)
$cFile = file_get_contents($this->fileDestination, FILE_USE_INCLUDE_PATH);

//var_dump($cFile);

foreach($this->disFunctions as $kkeys => $vvals)
{
    echo $kkeys.' is '.$vvals.'<br />';

    if(preg_match('#'.$vvals.'#i', $cFile))
    {
        echo 'exists<br />';

        return true;
        //echo count($this->aErrors).'<br />';
        //return false;
    } 
    else 
    {
        echo $vvals.'NOT FOUND<br />';
        return false;
    }
} // end foreach
$disabled_functions=ini_get('disabled_functions');
打印(禁用的打印功能);
$disFunctionsNoSpace=str_replace(“”,,$disabled_函数);
//把它们排成一列
$disFunctions=explode(“,”,$disFunctionsNoSpace);
打印($disFunctions);
/*
var_dump($disFunctions);
输出
阵列(大小=33)
0=>字符串“curl\u multi\u exec”(长度=15)
1=>字符串“解析ini文件”(长度=15)
2=>字符串“符号链接”(长度=8)
3=>字符串“shell_exec”(长度=11)
4=>字符串'proc_close'(长度=11)
等
*/
$this->disFunctions=$disFunctions;
//打印($this->disFunctions);
//获取上载文件的文件内容(重命名为非临时文件)
$cFile=file\u get\u contents($this->fileDestination,file\u USE\u INCLUDE\u PATH);
//var_dump($cFile);
foreach($this->disFunctions为$kkeys=>$vvals)
{
echo$kkeys.“是”$vvals.“
”; if(preg#u匹配(“#”.$vvals.#i',$cFile)) { echo“存在
”; 返回true; //回声计数($this->aErrors)。“
”; //返回false; } 其他的 { echo$vvals.“未找到
”; 返回false; } }//结束foreach
结果是:0为curl\u multi\u exec
未找到curl\u multi\u exec

我正在寻找所有的钥匙和VAL的清单


感谢您的支持

问题是您的循环中有一个
返回

foreach
循环中,有一个
if
/
else
块。无论
if
是否满足要求,您
都会返回一个值(
true
用于
if
false
用于
else

返回将终止循环的执行。它还会停止您所在的任何函数(或方法),如果您不在函数中,则停止当前脚本

  • 如果从函数中调用,
    return
    语句将立即结束当前函数的执行
    ,并将其参数作为函数调用的值返回<代码>返回
还结束语句或脚本文件的执行

  • 如果从全局作用域调用,则结束当前脚本文件的执行。如果当前脚本文件为或,则将控制权传递回调用文件。此外,如果当前脚本文件为,则指定给
    return
    的值将作为调用值返回。如果从主脚本文件中调用
    return
    ,则脚本执行结束。如果当前脚本文件由
    php.ini
    中的或配置选项命名,则该脚本文件的执行将结束


  • 基于(以及您正在使用
    $this
    )的事实,您的循环位于一个方法中。因此,
    return
    会立即停止循环,停止方法,并根据具体情况返回
    true
    false
    。它从未到达
    $this->disFunctions

    中的第二项。为什么在if和else语句中分别有return true和return false?因为
    return true
    return false
    退出函数。离开函数后,也会结束循环。OHHH,很抱歉我忘记删除它们,这是一个functionReplace
    $disFunctionsNoSpace=str\u replace(“”,,$disabled\u functions)带有
    $disFunctionsNoSpace=str_replace(“,”,$disabled_函数),然后检查并通知我。