- ベストアンサー
PHPアクセスログ バッチ処理
はじめまして。 独学PHPを学んでいて、就活をしています。 そこである課題を出されました。 アクセスログ出力プログラムとアクセスログ集計プログラムです。 双方プログラムが出来上がり提出したのですが。 修正してくださいとのこと。 ・CTI 環境にてバッチで動くため、 $_SERVERなどのHTTPを前提とした 変数や関数は利用出来ないとのこと。 ・出力はEUC-JP で改行はCF (mb_convert_encoding で変換し、改行は/n) どちらもCSV に出力するプログラムです。 ご教授願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たぶんCTIってのはコールセンターにあるような受電した際に電話番号をパラメータとして取得できる装置(またはシステム)の事でしょう。 受電すると電話番号をパラメータにしてシェルをキックする仕組みなのでは? PHPはシェル環境でも使えますが、$_SERVER["REQUEST_URI"];はhttpdから渡される環境変数なのでシェルではセットされません。 >引数を取得して処理をしろと言う事かもしれないので、 引数は$_SERVER["argv"]で取得できると思います。 ちなみにprint_r($_SERVER);とすると$_SERVERの中身が全部確認できます。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>・CTI 環境にてバッチで動くため、 >$_SERVERなどのHTTPを前提とした >変数や関数は利用出来ないとのこと。 微妙に意味がわからないのですが、 $_SERVER["REQUEST_URI"]はNGだとして他の$_SERVERが利用可能なら $_SERVER["SCRIPT_NAME"]あたりではだめでしょうか? そもそもアクセスログとるのにアクセス実績が拾えないはずはないんですが・・・ (拾えないならアクセスログとる意味ないし・・・) よくよく先方に仕様を確認した方がよいでしょう
お礼
回答有難う御座います。 先方に仕様を確認してみます。 CLIの実行と言う事で、引数を取得して 処理をしろと言う事かもしれないので、 一度確認してみます。 お手数おかけました。
- yambejp
- ベストアンサー率51% (3827/7415)
具体的に何がききたいのでしょうか? mb_convert_encoding()の使い方? $str=mb_convert_encoding($str, "EUC-JP", "auto"); http://www.php.net/manual/ja/function.mb-convert-encoding.php
補足
早速の回答誠に有難う御座います。 補足が足りなくてすみません。 mb_convert_encoding()の使い方もだったのですが、 もう1点 ・CTI 環境にてバッチで動くため、 $_SERVERなどのHTTPを前提とした 変数や関数は利用出来ないとのこと。 現在アクセスされたURLを取得するため $_SERVER["REQUEST_URI"];を使っています。 これが使えないとなるとどうやって取得したらいかわからない状況です。 すみませんが、宜しくお願い致します。
お礼
回答有難う御座いました。 CLI(コマンドラインインターフェイス)と言う環境だったので、 コマンドで実行し、引数として$argv,$argcを取得して処理するように 変更したら上手くいきました。 先方の仕様通りであればいいのですが・・・ ありがとうございました。