замена 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);
            }
     
    1. 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:
        7,377