-1

PHPを使用して、ファイルを.csvファイルとしてデスクトップに保存するスクリプトを開発しています。

このコードサンプルはPHPマニュアルから見つけました。

<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>  

デスクトップにfile.csvを作成しました。私の問題は、デスクトップでファイルを開き、書き込みと保存を行うための正しいパスが見つからないことです。($ fp = fopen('file.csv'、'w'))

Webサイトを保存したサーバーへのパスと、そこからデスクトップのfile.csvへのパスを表示する必要がありますか?

誰かが私を導くことができますか?

どうもありがとうございます。

4

4 に答える 4

4
<?php
$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);
header('Content-type: text/csv');
header("Content-Disposition: attachment;filename=file.csv");

// stream
$f  =   fopen('php://output', 'a');
foreach ($list as $fields) {
    fputcsv($f, $fields);
}
于 2012-09-08T18:58:00.057 に答える
1

クライアントのデスクトップについて話す場合、この方法を使用することはできません。

とにかく、クライアントにファイルをダウンロードする方法を提供してみませんか?

更新:アマドマルティネスの答えから小さな改善を行いました

<?php
    $list = array (
        array('aaa', 'bbb', 'ccc', 'dddd'),
        array('123', '456', '789'),
        array('"aaa"', '"bbb"')
    );

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header('Content-type: text/csv');
    header("Content-Disposition: attachment;filename=file.csv");
    header("Content-Transfer-Encoding: binary");

    $fp = fopen('php://output', 'a');
    foreach ($list as $fields) {
        fputcsv($fp, $fields);
    }
    fclose($fp);

?>
于 2012-09-08T18:50:56.860 に答える
0

デスクトップに保存することはできません!ブラウザは、ファイルシステムへのアクセスを妨げるサニタイズされた環境であるサンドボックスで実行されます。

于 2012-09-08T18:44:58.437 に答える
0

スクリプトはサーバー上で実行されます。ファイルはデスクトップにあります。また、ローカルサーバー(xamp、uniformserverなど)を使用している場合でも、これらはホストファイルシステム全体から分離されています(分離されている必要があります)。したがって、答えは、ホストのコマンドラインからphpスクリプトを実行しない限り、それに到達することはできません。

于 2012-09-08T18:48:07.077 に答える