php-скрипт теперь получает ошибки в php 5.3?

Я получаю следующий ответ в ssh при попытке запустить этот php-скрипт... он отлично работал под php 5.2, а теперь, когда установлен 5.3, у меня возникают проблемы. Я не вижу, что не так.

Ошибки:

строка 1: ?php: Нет такого файла или каталога

строка 2: синтаксическая ошибка рядом с неожиданным токеном '0'

строка 2: `set_time_limit(0);'

Вот сценарий.

<?php
set_time_limit(0) ;

$arr = explode("/",$_SERVER['SCRIPT_FILENAME']);
$ct = count($arr);
unset($arr[$ct-1]);
$path=implode("/",$arr);
$path=$path."/";

if(is_file($path."state.txt"))
 {  
    $lines = file($path."state.txt");

    if($lines)
        {
        foreach($lines as $line) 
          {
            if($line)
              {
                 $state = trim($line);
                 if(!is_dir($path.$state)) 
                  {
                    @mkdir($path.$state,0777);
                    if(is_file($path."copieble/state/index.php"))
                       { 
                          $from = $path."copieble/state/index.php";
                          $to = $path.$state."/index.php";
                          @copy($from,$to);
                       }
                  }
              }
          }
        } 
}

 @chdir($path);
           $handle=opendir('.');
               while (($file = readdir($handle))!==false) 
                   {
                     @chdir($path);
                     if (($file != ".") && ($file != ".."))
                         { 
                           if(is_dir($file) && $file != "copieble" && $file !="_vti_cnf")
                               {
                               if(is_file($path.$file.".txt"))
                                 { 
                                 $lines = file($path.$file.".txt");
                                       if($lines)
                                            {
                                            foreach($lines as $line) 
                                              {
                                                if($line)
                                                  {
                                                     $city = trim($line);
                                                     @chdir($path.$file);
                                                     if(!is_dir($city)) 
                                                        {

                                                            @mkdir($city,0777);
                                                        if(is_file($path."copieble/city/index.php"))
                                                           { 
                                                             $from = $path."copieble/city/index.php";
                                                             $to = $path.$file."/".$city."/index.php";
                                                             @copy($from,$to);

                                                           } 
                                                    }

                                                  }
                                              }
                                            } 
                                 }

                              }

                        }
                  }
                 closedir($handle); 
include("reflect_changes.php");
?>

person user756659    schedule 01.10.2011    source источник


Ответы (1)


Я предполагаю, что вы используете это так:

./my_script.php

Попробуйте запустить так:

php my_script.php

Причина первой ошибки заключается в том, что когда вы пытаетесь запустить его как исполняемый файл, оболочка сначала проверяет наличие хэшбанг. Если это так, он запускает его с этим интерпретатором. Если нет (как в вашем случае), он пытается запустить его как исполняемый файл. Это тоже не удается, поэтому он прибегает к попытке выполнить его как сценарий оболочки.

<?php в сценарии оболочки попытается начать чтение из файла с именем ?php и передать его в следующую команду, но нет файла с именем ?php для чтения. Таким образом, это ошибки.

person icktoofay    schedule 01.10.2011
comment
лол совсем забыл об использовании этого php сначала в оболочке... но теперь я получаю сообщение "не удалось открыть входной файл"... - person user756659; 01.10.2011
comment
понял - спасибо, что указали на глупую ошибку ... должно быть, нужно больше спать, чем я думаю! - person user756659; 01.10.2011