WEB上のCSVファイルをPHPとCRONを使って、自動で上書き・更新できるプログラミングを作りたいです。


内容は一度CSVファイルをダウンロードしてきて、作成するプログラミングとCSVファイルを同じ階層に置きます。
ここからHTTPヘッダーやfputcsvもしくはfputなどで、CSVファイルを上書きしたいのですが、なかなか上手くいきません。

CSVファイルは15列の3000行ほどあります。
更新ペースは1日1回ほどです。

みなさんの知識を貸して下さい。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2015/07/07 02:05:45
  • 終了:2015/07/14 02:10:05

回答(0件)

回答はまだありません

  • id:TransFreeBSD
    ・HTTPヘッダーとは具体的になんですか?ファイルの出力には関係ないと思いますが。
    ・fputcsvやfputが出来ないのですか?具体的にどうなるのですか?
    ・fputcsvやfputにはfopenが必要ですが、できていますか?fopenがうまく出来ているかチェックしていますか?
    ・ファイルはどのように指定していますか?
    ・ファイルを書きだす前に読み込む必要がありますが、具体的にどうしているのですか?
    ・現状は実行するとどうなるのですか?エラーは出ないのですか?何か変化はしないのですか?
    何がどうなるか教えてください。
  • id:yusuke16kyo
    TransFreeBSDさんコメントありがとうございます。

    具体的には
    function download_file($path_file)
    {

    if (!file_exists($path_file)) {
    die("Error: File(".$path_file.") does not exist");
    }


    if (!($fp = fopen($path_file, "r"))) {
    die("Error: Cannot open the file(".$path_file.")");
    }
    fclose($fp);


    if (($content_length = filesize($path_file)) == 0) {
    die("Error: File size is 0.(".$path_file.")");
    }


    header("Content-Disposition: inline; filename=\"".basename($path_file)."\"");
    header("Content-Length: ".$content_length);
    header("Content-Type: application/octet-stream");


    if (!readfile($path_file)) {
    die("Cannot read the file(".$path_file.")");
    }
    }

    CSVファイルからデータベースに格納するプログラミングは出来ていますので、ここから上書き、もしくは追加してデータベースに格納をしたくて質問しました。
    同じ階層にあるCSVファイルを自動更新させたかったので。

    この問題でCSVのURLを取得できましたので、
    $csvurl = "csvのURL";
    $file=fopen($csvurl,'r');/
    for($i=0;!feof($file);$i++){
    $csv=fgets($file);
    $str[$i]=explode("\t",$csv);
    }
    fclose($file);

    からデータベースに格納させてファイルの自動更新ができました。

    コメントいただき、ありがとうございました☆

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません