cURL経由でリモートサーバーからcsvファイルを取得する小さなphpプログラムを書きたいです。これまでのところ動作しており、この csv ファイルを JS で使用したいと考えています。
このファイルをphpからJSに渡す最良の方法は何ですか?
PHPサーバーでtmpファイルを作成し、JSでこのファイルへのリンクを使用しますか? よりスマートな方法はありますか?
ありがとう
cURL経由でリモートサーバーからcsvファイルを取得する小さなphpプログラムを書きたいです。これまでのところ動作しており、この csv ファイルを JS で使用したいと考えています。
このファイルをphpからJSに渡す最良の方法は何ですか?
PHPサーバーでtmpファイルを作成し、JSでこのファイルへのリンクを使用しますか? よりスマートな方法はありますか?
ありがとう
サーバー上に一時ファイルを作成する必要はありません。JavaScript で単純な php を使用できます。
<script>alert("<?php echo $curlresult;?>")</script>
ページでファイルが必要であることが保証されている場合は、読み込まれるときにコンテンツをページに直接追加することをお勧めします。非表示の DOM 要素に追加するか、JavaScript 変数として使用する可能性が最も高くなります。ファイルが既にある場合、最善の選択肢は、おそらく JavaScript が処理するものに近い形式に変換することです。おそらく JSON 構造です。必要に応じて、サイズが大きい場合は、論理 Javascript コードを使用して、クライアント側で実行される追加の処理を最小限に抑えることをお勧めします。いずれにせよ、これにより、追加のリクエストが不要になり、それほど重要ではありませんが、処理が遅れることはありません。
ファイルの使用が保証されておらず、PHP カールが未知の入力を伴うリバース プロキシのようなものとして機能している場合は、エンドポイントを公開して AJAX を使用する方が理にかなっている可能性があります。RDBMS を使用している場合は、データベースの一時テーブルで何らかの形式の CLOB フィールドを使用する方が理にかなっていますが、それ以外の場合は、必要に応じて一時ファイルまたはメモリ内オブジェクトのみが機能します。
AJAX を使用して PHP ファイルを呼び出し、次に cURL を使用して CSV を取得します。
PHP を使用して直接 DOM にファイルをロードすることを選択した場合、cURL 操作が完了するまでページは表示されません。経験上、ページの読み込みに 30 秒かかる場合は、空白のページを 29 秒間表示して最後の 1 秒間にすべてを表示するよりも、「読み込み中...」でページを表示する方がよいことに気付きました。
ところで、cURL を使用して AJAX で呼び出すことも、Same-domain AJAX を回避する方法です。
JS で PHP コードを使用することはお勧めしません。後でそうすることを選択した場合、JS を効率的にキャッシュ/縮小する可能性がなくなるからです。また、きれいではありません。
どうすればいいですか。
そのデータを JSON で出力すると、おそらく次のようになります。
"{"1":{"col1":"hey","col2":"hey2"},"2":{"col1":"heyhey","col2":"heyhey2"}}"
おそらくdataTablesまたは同等のものを使用して、テーブルにデータを表示します。