web-dev-qa-db-ja.com

実行されるたびにphpスクリプトから新しい名前で新しいテキストファイルを作成する方法

Php script を使用します。これは、実際にオンラインSMSサービスを使用して端末からSMSを送信するためのものです 160by2

それがすることは、端末を開き、番号を求めてからSMSを送信し、送信されます...

今、私はそのSMSのテキストを毎回新しいファイルにコピーしたいです。

たとえば、text1.txt、text2.txtのように、毎回増分します。

Phpスクリプトでは不可能な場合は、最初にphpスクリプトを実行してから、何らかのコマンドで新しいファイルを作成し、smsのテキストをそのファイルにコピーするシェルスクリプトを作成できます。

私はそのコマンド(パイプラインも使用されていると思います)を知りたいし、またファイル名を毎回異なるようにする方法を知りたいですか?

シェルスクリプトについては知りません。

しかし、c/c ++/Javaのような通常のプログラミング言語では、方法は変数が毎回インクリメントされ、その後名前としてパラメーターとして渡されるループになります。

1
Nirmik

スクリプトを変更して、さらに2つのことを行う必要があります。

  1. テキストメッセージの一意のファイル名を生成します(日付、時刻などに基づいて)
  2. 番号を書きます$phnoおよびメッセージ$msgこのファイルへ

前者はPHP date関数を使用して、後者はfile_put_contents 関数。

必要なのは、電話番号とメッセージが入力された後、次の2行のコードを挿入することだけです。

 $ textfilename = "text" .date( "Ymd His")。 "。txt"; 
 file_put_contents($ textfilename、$ phno。 "\ n"。$ msg。 "\ n" ); 
  • サンプル出力、ファイルtext 2012-08-21 195239.txt

    1800LOLCATS 
     ICANHAZCHEEZBURGER?
    
1
ish

uNIXタイムスタンプを使用して名前を付けたファイルを書き込むphpスクリプトを次に示します。

#!/usr/bin/env php
<?php
file_put_contents("file" . ((int) microtime(true)) . ".txt", file_get_contents("/proc/cpuinfo"));
?>

ファイルをstdinから入力する場合は、/ proc/cpuinfoをphp:// stdinに変更します

元のphpスクリプトと同じことを行うシェルスクリプトを次に示します。

#!/bin/sh
cat /proc/cpuinfo | tee "file`date +%s`.txt" > /dev/null

これらの両方をchmod + xして実行できます

2
Janus Troelsen