目的
あるデータをHPにて使用するため、CSVへ書き込む。今回の内容はURLを見られても問題ないデータ。
セキュリティ等はあまり得意ではないため、不備があればご教示頂ければ幸いです。
クライアントPC→HPサーバー→HPに表示
環境等
- クライアントPCでもサーバーPCでもPHPを使用
- サーバーの権限がある
方法
クライアントPCの設定
変数$outoput.dataにサーバーへ送信したい情報が含まれている(一行の文字列)。
get_data.php
//送信先の文字コードへ変換
$output_euc = mb_convert_encoding($output_data, "EUC-JP", "UTF-8");
//HPサーバーへデータ送信
$url = "https://www.test.com/get_data.php?data=" . "$output_euc";
$conn = curl_init(); // cURLセッションの初期化
curl_setopt($conn, CURLOPT_URL, $url); // 取得するURLを指定
curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す。
$res = curl_exec($conn);
curl_close($conn); //セッションの終了
サーバーの設定
- get_data.php・・・data.csv書き込むプログラム
- data.csv・・・データを保存するCSV
CSVへ書き込めない場合、サーバーで下記を実行することで権限をnobodyにする。
> su
> chown nobody data.csv
> chgrp nobody data.csv
権限がない場合はsuで実行する。
サーバーにてGETメソッドで送られてきたデータをCSVへ書き込む
get_data.php
<?php
$data = trim($_GET["data"]);
file_put_contents("data.csv", "\n" . $data, FILE_APPEND);
参考