<?php $str = "111,222,333,"; $str = rtrim($str, ","); $ary = explode("," $str);
bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
<?php // データベースに接続できない場合、 // サーバーログを通してエラーを通知する。 if (!Ora_Logon($username, $password)) { error_log("オラクルのデータベースが使用できません!", 0); } // FOO に失敗したら、管理者に email で通知する if (!($foo = allocate_new_foo())) { error_log("大変です。FOO に失敗しました!", 1, "operator@example.com"); } // これ以外の error_log() のコール方法: // ※ファイルに出力する場合は、そのファイルが存在していてアクセス権があること error_log("大変だ!"."\n", 3, "/var/tmp/my-errors.log");
$array = array_map('array_shift', $array);
e.g. mysqlから条件に一致するレコードのnameカラムを取得。1次元配列に変換する。
test.php
<?php // mysqlから取得した結果サンプル $array[0]["name"]="taro"; $array[1]["name"]="jiro"; $array[2]["name"]="hanako"; print_r($array); // 1次元配列に $array=array_map('array_shift',$array); print_r($array);
# php -f test.php Array ( [0] => Array ( [name] => taro ) [1] => Array ( [name] => jiro ) [2] => Array ( [name] => hanako ) ) Array ( [0] => taro [1] => jiro [2] => hanako )
メインスクリプト実行前にタイマースタート、実行後にタイマーストップで時間計測、とか、
スパム対策のフィルタをメインスクリプト実行前に仕掛けてスパムをはじく、とか
e.g. php.iniの場合
; Automatically add files before PHP document. ; http://php.net/auto-prepend-file auto_prepend_file = /home/user/www/start_script.php ; Automatically add files after PHP document. ; http://php.net/auto-append-file auto_append_file = /home/user/www/end_script.php
e.g. .htaccessの場合
php_value auto_prepend_file "/home/user/www/start_script.php" php_value auto_append_file "/home/user/www/end_script.php"
<?php $fileName = 'test.csv'; $fileName = mb_convert_encoding($fileName, 'SJIS-WIN'); header('Content-Type: application/x-csv'); header("Content-Disposition: attachment; filename=$fileName"); $fp = fopen('php://output', 'w'); $users=array(); $users[1]['name'] = 'suzuki'; $users[1]['mail'] = 'suzuki@mail.com'; $users[2]['name'] = 'saitou'; $users[2]['mail'] = 'saitou@mail.com'; $users[3]['name'] = 'tanaka'; $users[3]['mail'] = 'tanaka@mail.com'; foreach ($users as $row) { mb_convert_variables('SJIS-WIN', mb_internal_encoding(), $row); fputcsv($fp, $row); } fclose($fp);
<?php $file = '"C:/temp/hoge.txt"'; //DB接続 $sv = "localhost"; $dbname = "userID_dbName"; $user = "userid"; $pass = "hogehoge"; $conn = mysql_connect($sv, $user, $pass) or die("connエラー"); mysql_select_db($dbname) or die("db_selectエラー"); mysql_query("SET NAMES utf8"); //CSVデータの取り込み $sql = "LOAD DATA LOCAL INFILE '$file' INTO TABLE userID_dbName.tableName"; $sql .= " LINES "; $sql .= " TERMINATED BY '\r\n' "; $sql .= " IGNORE 1 LINES"; $result = mysql_query($sql, $conn); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $sql; die($message); }
<?php $file = file('log.txt'); rsort($file); foreach($file as $row){ echo $row; }
file : http://php.net/manual/ja/function.file.php
rsort : http://php.net/manual/ja/function.rsort.php
<?php // ログの取得有無 '1,2,3,4,5,6,7,8,9,10 define("LOG_BIT", '0, 0,0,0,0,0,0,0,0,0,1' ); // 処理タイプ $byType = htmlspecialchars($_REQUEST['type']); // ログの取得有無 $LogBit = explode(',',LOG_BIT); // 処理タイプがLOG_BITの範囲内で、且つ「1」であれば処理する if ( array_key_exists($byType,$LogBit) && $LogBit[$byType] == 1 ) { // 出力制御開始 ob_start(); // 標準出力(echoされるべき内容)取得 $result = ob_get_contents(); // 出力制御終了 ob_end_clean(); // ログ出力 ~処理内容、echoの内容などをDBなりファイルなりに出力する処理~ // Output echo $result; }
たとえば、メール受信時にPHPプログラムを実行しようとして、任意の環境変数を設定したい。
⇒コマンドラインで -d の引数で auto_prepend_file に環境変数を記述したファイルを指定する。
/var/www/env.php
<?php putenv("APP_ENV=production");
/var/www/regist
"| /usr/bin/php -d auto_prepend_file=/var/www/env.php -f /var/www/regist.php >> /tmp/postfix 2>&1"
/etc/aliases
~省略~ regist: :include:/var/www/regist
/etc/postfix/main.cf
# Allowed to run :include: method in /etc/aliases allow_mail_to_commands = alias, forward, include