index.phpの下記を削除
|
1 2 3 |
<header class="page-header"> <h2 class="page-title"><?php _e( 'Posts', 'twentyseventeen' ); ?></h2> </header> |

在宅プログラマーの備忘録として2005年に始めたブログです。
index.phpの下記を削除
|
1 2 3 |
<header class="page-header"> <h2 class="page-title"><?php _e( 'Posts', 'twentyseventeen' ); ?></h2> </header> |
まずはSDKをダウンロードします。
Releases · aws/aws-sdk-php · GitHub
ダウンロードしたaws.pharをサーバーにアップロードします。
PHPでインクルードして使う方法は以下の通り。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
require_once('aws.phar'); use Aws\S3\S3Client; use Aws\Common\Enum\Region; try { $client = S3Client::factory(array( 'key' => '(アクセスキーを入れる)' ,'secret' => '(シークレットアクセスキーを入れる)' ,'region' => Region::AP_NORTHEAST_1 //(適宜変更) )); // ファイル取得 $result = $client->getObject(array( 'Bucket' => '(バケットを入れる)' ,'Key' => '(パスを入れる)' )); // S3上にログを残す(必要なければ削除してください) $client->putObject(array( 'Bucket' => '(ログ用のバケットを入れる)' ,'Key' => 'logs/download_log/' . date('Ym') . '/' . $uid . '-' . $pid . '-' . date('YmdHis') ,'Body' => '' )); } catch(Exception $e) { exit('ファイルが見つかりません'); } $len = $result['ContentLength']; $result['Body']->rewind(); $data = $result['Body']->read($len); // output file header("Content-type: (ファイルタイプを指定)"); header("Content-Disposition: attachment; filename=$filename"); header("Content-Length: " . $len); echo $data; |
開発にデバッグログ、エラーログは欠かせませんが、
標準ログやフレームワークのログだけでは情報が不足していたり、逆に情報が多すぎて見にくかったりすることがありませんか?
私は独自にログファイルを作成することがあります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function log($val, $cap = null, $json_encode = true) { $caption = ''; if($cap != null) { $caption = $cap . ' : '; } if($json_encode == true) { $val = json_encode(str_replace("\n", '', $val)); } $f = fopen('/tmp/php_original.log', 'a'); /* ファイル名は適宜変更してください */ @fwrite($f, "\n" . $caption . $val . "\n"); fclose($f); } |
配列、連想配列が見やすく出力できるのでJSONエンコードをして出力するのが気に入っています。
使い方は
|
1 |
log('出力内容', 'キャプション', JSONエンコードの有無); |
でログ出力し、
このログファイルをtail -fで出力しています。
2018/3/13 追記:
PHP7.1で非推奨になりました。OpenSSLを使ったこちらをご参照ください。
以下の方法はPHP7.1から非推奨となりますのでご注意ください。
シンプルに暗号化、復号化する関数です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* 暗号化 */ function encrypt($value) { $encodedValue = base64_encode($value); $td = get_crypt_module(); $encrypted = mcrypt_generic($td, $encodedValue); $encodedEncryptValue = base64_encode($encrypted); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $encodedEncryptValue; } /* 復号化 */ function decrypt($value) { $decodedValue = base64_decode($value); $td = get_crypt_module(); $decrypted = mdecrypt_generic($td, $decodedValue); mcrypt_generic_deinit($td); mcrypt_module_close($td); $decodedDecryptValue = base64_decode($decrypted); return $decodedDecryptValue; } /* 暗号化モジュール */ function get_crypt_module() { /* 暗号化形式を指定してモジュールオープン */ /* DESなら MCRYPT_DES */ /* AES128なら MCRYPT_RIJNDAEL_128 */ $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); $ks = mcrypt_enc_get_key_size($td); /* 任意のキーを設定(文字数は暗号化形式に合わせてください) */ $key = 'hogehoge'; mcrypt_generic_init($td, $key, $iv); return $td; } |
変数の削除
|
1 |
unset(変数); |
ファイルの削除
|
1 |
unlink('ファイルパス'); |