SQLの窓 イラストAC フリー素材

2017年09月09日

PHP : curl で FTP サーバのファイル一覧( 結果は JSON )

これは ルートの一覧なので、対話式で階層を順番に読み出す必要があります。
<?php
error_reporting( E_ALL & ~E_NOTICE );
session_cache_limiter('nocache');
session_start();
header( "Content-Type: application/json; charset=utf-8" );

$server = "ftpサーバ";
$path = "";
$userpwd = "ユーザ:パスワード";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"ftp://{$server}{$path}");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);
curl_setopt($curl, CURLOPT_USERPWD, $userpwd);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$error = 0;

$result = curl_exec($curl);
if ( !$result ) {
	$data = array();
	$error = 1;
	exit();
}
else {
	$data = explode("\r\n", rtrim( $result ) );
	foreach( $data as $value  ) {
		$col = preg_split( "/\s+/", $value );
		$namecol["flg"] = $col[0];
		$namecol["size"] = $col[4];
		$namecol["date"] = "{$col[5]} {$col[6]} {$col[7]}";
		$namecol["name"] = $col[8];
		$file[] = $namecol;
	}
}
// ***************************
// JSON データ作成
// ***************************
$json = new stdClass;

$json->row = $file;	// 行データ
$json->status = $error;		// エラー

print json_encode( $json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE );


?>



テスト結果
{
    "row": [
        {
            "flg": "drwx---r-x",
            "size": "512",
            "date": "Sep 4 16:08",
            "name": "."
        },
        {
            "flg": "drwxr-xr-x",
            "size": "3072",
            "date": "Sep 4 21:31",
            "name": ".."
        },
        {
            "flg": "-rw-r--r--",
            "size": "773",
            "date": "Jan 7 2009",
            "name": ".cshrc"
        },
        {
            "flg": "-rw-r--r--",
            "size": "258",
            "date": "Jan 2 2009",
            "name": ".login"
        },
        {
            "flg": "-rw-r--r--",
            "size": "167",
            "date": "Jan 2 2009",
            "name": ".login_conf"
        },
        {
            "flg": "-rw-r--r--",
            "size": "3",
            "date": "Jun 28 13:35",
            "name": ".my.version"
        },
        {
            "flg": "-rw-r--r--",
            "size": "762",
            "date": "Jan 7 2009",
            "name": ".profile"
        },
        {
            "flg": "-rw-r--r--",
            "size": "980",
            "date": "Jan 2 2009",
            "name": ".shrc"
        },
        {
            "flg": "drwx------",
            "size": "512",
            "date": "May 10 10:31",
            "name": ".spamassassin"
        },
        {
            "flg": "drwx------",
            "size": "512",
            "date": "Mar 13 2009",
            "name": ".ssh"
        },
        {
            "flg": "drwx------",
            "size": "1024",
            "date": "May 10 14:09",
            "name": "MailBox"
        },
        {
            "flg": "drwx------",
            "size": "512",
            "date": "Mar 13 2009",
            "name": "db"
        },
        {
            "flg": "-rw-------",
            "size": "21098",
            "date": "Jun 16 10:35",
            "name": "dead.letter"
        },
        {
            "flg": "drwxr-xr-x",
            "size": "2048",
            "date": "Jul 15 2004",
            "name": "fml"
        },
        {
            "flg": "drwxr-xr-x",
            "size": "512",
            "date": "Aug 10 05:43",
            "name": "lightbox"
        },
        {
            "flg": "-rw-r--r--",
            "size": "865",
            "date": "Apr 27 11:22",
            "name": "nam.php"
        },
        {
            "flg": "drwx------",
            "size": "512",
            "date": "Sep 4 16:08",
            "name": "ports"
        },
        {
            "flg": "drwxr-xr-x",
            "size": "512",
            "date": "Jun 14 09:53",
            "name": "sakura_pocket"
        },
        {
            "flg": "drwxr-xr-x",
            "size": "512",
            "date": "May 18 11:06",
            "name": "tmp"
        },
        {
            "flg": "drwxr-xr-x",
            "size": "1024",
            "date": "Sep 6 15:56",
            "name": "www"
        }
    ],
    "status": 0
}






posted by at 2017-09-09 21:26 | Comment(0) | PHP+通信 | このブログの読者になる | 更新情報をチェックする
SQLの窓全体の検索
Custom Search
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX