запустить скрипт php вручную и вернуться в командную строку? - PullRequest
0 голосов
/ 09 июня 2010

Я запускаю скрипт php через командную строку, и он работает просто отлично, за исключением того, что когда он закончится, он не вернется к командной строке? Просто сидит там, так что я никогда, когда это будет сделано ...

Это скрипт:

             $conn_id = ftp_connect(REMOTE)
             or die("Couldn't connect to ".REMOTE);

            $login_result = ftp_login($conn_id, 'OMITTED','OMITTED');
            if ((!$conn_id) || (!$login_result))
               die("FTP Connection Failed");
               $dir = 'download';
               if ($dir != ".") {

                    if (ftp_chdir($conn_id, $dir) == false) {
                       echo ("Change Dir Failed: $dir<BR>\r\n");
                       return;
                    }
                    if (!(is_dir($dir)))
                       mkdir($dir);
                       chdir ($dir);
                    }

                    $contents = ftp_nlist($conn_id, ".");
                    foreach ($contents as $file) {
                            if ($file == '.' || $file == '..')
                            continue;

                            if (@ftp_chdir($conn_id, $file)) {
                               ftp_chdir ($conn_id, "..");
                               ftp_sync ($file);
                            }
                    else
                            ftp_get($conn_id, $file, $file, FTP_BINARY);
                    }

                    ftp_chdir ($conn_id, "..");
                    chdir ("..");
                    ftp_close($conn_id);

Ответы [ 2 ]

0 голосов
/ 09 июня 2010

Если он не возвращается обратно в командную строку, значит, он находится в каком-то бесконечном цикле.

0 голосов
/ 09 июня 2010

Вам не хватает некоторых }, и, как правило, некоторое форматирование кода затрудняет чтение.Попробуйте это:

<?php
$conn_id = ftp_connect(REMOTE) or die("Couldn't connect to ".REMOTE);

$login_result = ftp_login($conn_id, 'OMITTED','OMITTED');
if ((!$conn_id) || (!$login_result))
    die("FTP Connection Failed");

$dir = 'download';
if ($dir != ".") {

    if (ftp_chdir($conn_id, $dir) == false) {
        echo ("Change Dir Failed: $dir<BR>\r\n");
        return;
    }
    if (!(is_dir($dir))) {
        mkdir($dir);
        chdir ($dir);
    }

    $contents = ftp_nlist($conn_id, ".");
    foreach ($contents as $file) {
        if ($file == '.' || $file == '..')
            continue;

        if (@ftp_chdir($conn_id, $file)) {
            ftp_chdir ($conn_id, "..");
            ftp_sync ($file);
        } else {                  
            ftp_get($conn_id, $file, $file, FTP_BINARY);
        }
    }

    ftp_chdir ($conn_id, "..");
    chdir ("..");
    ftp_close($conn_id);
}

Я также настоятельно рекомендую принять некоторую форму стандартов кодирования. Стандарты кодирования PEAR - хорошее место для начала

...