アプリ版:「スタンプのみでお礼する」機能のリリースについて

CSV形式にする準備として
$csvFileName = '/tmp/' . time() . rand() . '.csv';
という記述を見かけたのですが、どういう仕組みなのか教えて下さい。
その後に
$res = fopen($csvFileName, 'w');
とあり$csvFileName はCSV形式になっているという事だと思うのですが。
私の知っているCSV形式
($line ='"'.変数.'","'.変数.'"."\n"; という記述の仕方をしています。)
と全く違っており、そういう記述の仕方があるのだと知りました。
が、意味を理解出来ず。
教えて下さい。宜しくお願いします。

質問者からの補足コメント

  • 御解答ありがとうございます。
    教えて頂きたいのですが、
    このコードは既に、CSV形式が用意されている前提のものという事でしょうか?
    $csvFileName = '/tmp/' . time() . rand() . '.csv';←これはファイルの生成するもので、
    $res = fopen($csvFileName, 'w');←生成されたファイルが開かれた後、既存であるCSV形式に書き込まれるという事でしょうか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/04/01 22:47

A 回答 (2件)

>とあり$csvFileName はCSV形式になっているという事だと思うのですが。


いいえ、単なるファイル名を記した文字列ですから
csv形式という意味では無いですね

中身はcsvのデータかもしれませんが
ファイル名はOSの規則に従った名前でしょう?
この場合だと、ルート直下の「tmp」フォルダに時刻+乱数表から発生させた文字列を名前とするファイルって感じじゃないのかな
    • good
    • 0
この回答へのお礼

ありがとうございます。
自分のCSV形式の記述の仕方とやっていることは同じなのですね。
理解が出来ました。
時間が経たないとベストアンサーを選べない様なので、明日ベストアンサーに選ばせて頂き質問の締め切りたいと思います。
ありがとうございました。<m(__)m>

お礼日時:2023/04/01 20:22

このコードは、ランダムなファイル名を生成して、そのファイル名を使ってCSVファイルを作成するためのものです。

$csvFileName 変数は、ファイル名として使用されます。 time() と rand() 関数は、ランダムなファイル名を生成するために使用されます。

次の行で、$csvFileName というファイル名を使って、CSVファイルを書き込みモードで開きます。ここで書き込みモードを使用しているため、ファイルが既に存在している場合は上書きされます。この段階でCSV形式になっているわけではありません。CSV形式にするためには、データをファイルに書き込む必要があります。

CSV形式は、各フィールドをカンマで区切り、行末に改行を付けることで表現されます。あなたが書かれたような $line の記述は、CSV形式の一例です。実際に、この形式を使ってデータを $csvFileName ファイルに書き込むことができます。以下は例です。

php
Copy code
$line = '"' . $value1 . '","' . $value2 . "\"\n";
$res = fopen($csvFileName, 'w');
fwrite($res, $line);
fclose($res);
$value1 と $value2 は、書き込むデータです。各フィールドの間にカンマがあり、行末には改行が付いているため、これはCSV形式の一行として解釈されます。fwrite() 関数を使用して、この行をファイルに書き込み、最後に fclose() 関数を使用してファイルを閉じます。このようにして、CSV形式のファイルを作成することができます。
この回答への補足あり
    • good
    • 0
この回答へのお礼

解決出来ました。
ファイルの生成でデータは他にありました。
とんだ勘違いをしてました。
すみません。
ありがとうございました。<m(__)m>

お礼日時:2023/04/03 10:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!