PHP CURL FTP kullanarak

2 Cevap php

Ben Curl en FTP nasıl kullanılacağını anlamaya, özellikle, nasıl benim PHP kodu FTP komutları sorunu olamaz:

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'ftp://ftp.microsoft.com/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch,CURLOPT_POSTQUOTE,array('CWD bussys/','LIST')); /* ?!! */

    echo '<hr><pre>'.htmlspecialchars(curl_exec($ch)).'</pre><hr>';
?>

Benim Yukarıdaki örnekte ben Bussys dizin listesini almak istiyorum, ama bunun yerine ana (FTP kök) dizininde bir listesini almak.

Bu arada, ben şu kombinasyonları denedim:

  • LIST bussys/
  • CWD bussys, LIST -a

2 Cevap

Ben de çalışma dizinini değiştirmek için bir yol aradı, ancak bir şey bulamadı.

Ne sonuçta benim için çalıştı CURLOPT_URL klasöre dahil oldu. Ayrıca, yalnız klasör ben eklemek vardı, yetmedi bir çizgi ileri sondaki /.

Yani beni sonra aşağıdaki url yapısını belirleyen, sizin için çalışacak ve CURLOPT_FTPLISTONLY size içeriğini almalısınız için çalıştı ne varsa bussys/.

curl_setopt($ch, CURLOPT_URL, 'ftp://ftp.microsoft.com/bussys/'); curl_setopt($ch, CURLOPT_FTPLISTONLY, TRUE);

Ve ben iç içe dizin içeriğini almak için CURLOPT_POSTQUOTE CWD seçeneği gerek yoktu.

Eğer kıvrılma ile çalışmak istiyorsanız, CURLOPT_CUSTOMREQUEST seçeneklerini kullanabilirsiniz.

Örnek kod aşağıda görebilirsiniz.

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "ftp://192.168.0.129");
curl_setopt($curl, CURLOPT_USERPWD, "sru:sru");
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'CWD /a'); // change directory
curl_exec($curl);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'MLSD'); // get directory list
$ftp_result=curl_exec($curl);
echo $ftp_result;

Bu döner

type=dir;modify=20130319024302; test

Test, bir alt dizin.

Seni çok ftp_connect kullanmak zorunda düşünüyorum.