замена PHP функции each

Discussion in 'PHP' started by GAiN, 25 Dec 2023.

  1. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Здравствуйте. Пользуюсь удобным скриптом для контроля целостности файлов на хостинге.
    С переходом на версию PHP 8 скрипт перестал работать.
    Помогите пожалуйста с заменой данной функцией в этих частях кода:

    PHP:
            while (list($ln$line) = each($md5_from_file))
            {
                list(
    $md$ff) = explode("\t"trim($line));
                if (
    $md != $md5[$ff])
                {
                    
    $i++;
                    
    $_ff str_replace(ABSPATH'/'$ff);
                    
    $_ff str_replace('//''/'$ff);
                    
    //if (file_exists($_SERVER['DOCUMENT_ROOT'].$ff))
                    
    if($md5[$ff])
                    {
                        
    $mailBody .= "$i$_ff - изменен" "\r\n";
                        
    $error .= "<br />$i$_ff - <font color='red'>изменен</font>";
                    }else
                    {
                        
    //var_dump($ff,$md,$md5[$ff],$md5);die();
                        
    $mailBody .= "$i$_ff - удален" "\r\n";
                        
    $error .= "<br />$i$_ff - <font color='red'>удален</font>";
                        
    //echo '<font color="#FF0000">Файл <b><u>'.$_ff.'</u></b> отсутствует!<br></font>';
                    
    }
                    unset(
    $md5[$ff]);
              
                }else 
    //SN
                    
    unset($md5[$ff]);
            }

    PHP:
            while (list($ff$md) = each($md5))
            {
                
    $i++;
                
    $ff str_replace(ABSPATH'/'$ff);
                
    $ff str_replace('//''/'$ff);
                
    $error .= "<br />$i$ff - новый";
                
    $mailBody .= "$i$ff - новый" "\r\n";
            }
    PHP:
            while (list($key$dir) = each($aDir))
            {
                
    find_md5(ABSPATH .'/'$dir1);
            }
     
  2. Uex Urgent

    Uex Urgent Злостный Смайлик

    Joined:
    6 Feb 2009
    Messages:
    236
    Likes Received:
    463
    Reputations:
    452
    Привет, GaIN.

    замени на foreach
    1.
    PHP:
    while (list($ln$line) = each($md5_from_file))
    на
    PHP:
    foreach($md5_from_file as $ln=> $line)
    2.
    PHP:
    while (list($ff$md) = each($md5))
    на
    PHP:
    foreach($md5 as $ff=> $md)
    3.
    PHP:
    while (list($key$dir) = each($aDir))
    на
    PHP:
    foreach($aDir as $key=> $dir)
     
    _________________________
    #2 Uex Urgent, 25 Dec 2023
    Last edited: 25 Dec 2023
    #colorblind and GAiN like this.
Loading...
Similar Threads - замена функции each
  1. GAiN
    Replies:
    4
    Views:
    6,803