为了账号安全,请及时绑定邮箱和手机立即绑定

使用eval()按多个条件对wordpress进行多数组排序

使用eval()按多个条件对wordpress进行多数组排序

PHP
qq_遁去的一_1 2021-05-07 10:11:27
我正在从mysql查询中获取多维数组。有点我正在使用以下功能。但是我在里面使用了php eval()函数。排序:function array_sorter() {    $sortstring = '';    $sortarray  = func_get_arg( 0 );    $count      = ( func_num_args() - 1 ) / 2;    foreach ( $sortarray as $key => $row ) :        for ( $i = 1; $i <= $count; $i++ ) {            $str ="\$key" . $i . " = \"" . func_get_arg( $i * 2 - 1 ) . "\";";            $str = $str . "\$array" . $i . "[\$key] = \$row[\$key" . $i . "];";            $str = $str . "\$\$key" . $i . " = \$array" . $i . ";";            @eval( $str );        }    endforeach;    for ( $i = 1; $i <= $count; $i++ ) {        $key1          = func_get_arg( $i * 2 - 1 );        $sortstring = $sortstring . "\$" . $key1 . ", " . func_get_arg( $i * 2 ) . ", ";    }    $sortstring = "array_multisort( " . $sortstring . "\$sortarray );";    eval( $sortstring );    return $sortarray;}用法:$this->tabelle = array_sorter( $table, 'Rank', 0 );大批:Array(    [Club] => Club 1    [Number] => 4    [Win] => 4    [Draw] => 0    [Lost] => 0    [Pos_Points] => 8    [Neg_Points] => 0    [Pos_Goals] => 244    [Neg_Goals] => 194    [Diff_Points] => 8    [Diff_Goals] => 50    [Rank] => 1)Array(    [Club] => Club 2    [Number] => 3    [Win] => 2    [Draw] => 1    [Lost] => 0    [Pos_Points] => 5    [Neg_Points] => 1    [Pos_Goals] => 173    [Neg_Goals] => 163    [Diff_Points] => 4    [Diff_Goals] => 10    [Rank] => 2)我是说该函数运行良好,但是我不知道使用eval()函数的安全性。有没有一种方法可以使它正常工作,而无需使用eval()来降低安全风险并使用最佳实践php编码标准(PHP 7)。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信