2011-11-21 9 views
8

私はこのコードを少し問題にしています。スクリプトは接続しますが、それは私にルートにあるフォルダを与えません...私は何かが不足していますか?PHP ftp_nlistが機能していない、ブール値falseを返す

$ftp_server = "ftp.something.com"; 
    $ftp_user = "user"; 
    $ftp_pass = "pass"; 

    // set up a connection or die 
    $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 

    // try to login 
    if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) 
    { 
     echo "Connected as [email protected]$ftp_server\n"; 
    } 
    else 
    { 
     echo "Couldn't connect as [email protected]$ftp_server\n"; 
    } 

    $contents = ftp_nlist($conn_id, "."); 
    var_dump($contents); 

    ftp_close($conn_id); 

    die; 

それはファイルが表示されませんなぜそれは

Connected as [email protected]$ftp_server; 

boolean false 

を出力?

私は

file_exists("ftp//user:[email protected]") 

で非常に速く、これを解決する可能性が...しかし、簡単な部分は、イムが探しているものではありません、私は

+0

エラー報告がオンになっていますか? –

+0

error_reporting(E_ERROR | E_WARNING | E_PARSE); – Master345

+0

がerror_reporting(E_ALL)に変更されました。まだ何もありません – Master345

答えて

35

ftp_nlist()戻っfalseエラーが発生した何かを学ぶことではないでしょう。私はあなたがパッシブ転送を使用する必要があります推測している:

// after ftp_login(...) 
ftp_pasv($conn_id, true); 

Generellを、私はFilezillaのようなftpまたはGUIクライアントのようなCLIツールを使用して、このトラブルシューティングをお勧めします。ログ/出力はとても役に立ちます。

HTHは

+0

何も学ぶことがないので、log.logには何らかのエラーがあるはずです。 – Master345

+0

私はドキュメントに何も表示されず、私はそれを試していない。私はFTPサーバを持っていません。 :)それは動作しますか? – Till

+0

パッシブモードを設定すると私の問題が解決しました。このようなことは文書化しなければなりません! – MilanG

0

また、私はちょうどあなたが権限とあなたが期待する実際の結果が真であることを確認しているところ(たまには少し健全性チェックを健全である)誰と確認を示唆しています。

echo shell_exec('whoami')." is who i am </br>"; 

とあなたは、ディレクトリのこのユーザとリストの内容として、コマンドラインからこれらの事を行うことができれば、あなたはあなたの方法にもあるべき

echo "Current directory is now: " . ftp_pwd($conn_id) . "</br>"; 

その後、ユーザーとして接続した後。

+0

私はこの長い時間前に単純なfile_get_contents(URI USER PASS)を使って解決しましたが、あなたの考えは良いです、ありがとう! – Master345

関連する問題