2010-06-09 61 views
0

我正在通過命令行運行一個php腳本,它工作得很好,除非它完成後,它不會返回到命令行?只是坐在那裏,所以我從來沒有當它這樣做...手動運行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

嘗試添加'exit();'到腳本的末尾?只是一個猜測... – 2010-06-09 13:43:15

回答

0

你錯過了一些},一般一些代碼格式使得它難以閱讀。試試這個:

<?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 Coding Standards是一個很好的開始

+0

你可能會或可能不需要在開始時使用'<?php',這取決於你如何運行腳本 – catsby 2010-06-09 14:07:46

0

如果它沒有返回到命令行然後它在某種無限循環然後。