php
vmstatのfreeを見れば良い。メモリリークしていればfreeがどんどん減っていく。(目的以外のプログラムが動いていないか(cronとかで)注意。) [root]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd f…
htmlも問題無いのに何故か特定のタグが取得出来ない現象が発生。 突き詰めた結果、特定の文字列を含む場合に発生することが分かった。 結局は文字コードが原因だったってわけ。またお前か! 取得した結果をutf8に変換したところ問題無く取得できた。
mb_send_mailって便利だけどその辺注意する事
インストール curl -sS https://getcomposer.org/installer | phpcomposer.pharが出来るので移動 mv composer.phar /usr/local/bin/composercomposer.jsonを作成する cd /usr/local/bin vi composer.json内容 { "require": { "monolog/monolog": ">=1.0.0" }…
参考サイト PHPでクロスサイトリクエストフォージェリ(CSRF)対策するときのメモ - Qiitaphp
以下のようにすれば一行で$idの数だけ?を記述するin句が作れる i.id in ('. implode(',', array_fill(0, count($id), '?')). ')str_repeatを使う方法もあるようだけどこっちの方がキレイ
__toString実行しておけばエラーの呼び元とか行数とか出してくれるので便利サンプル log($e->__toString()); }
バッチがメモリ不足等で落ちた場合にFatalエラーが発生するけど通常fatalエラーはtry-catchはおろか、set_error_handlerでも補足できない。 そのためregister_shutdown_functionを使う必要がある。
昨日まで動いてたmysqlが突然起動できなくなった。以下、ログ周りのオプションを変更してみた時のエラーログまとめ # error1 /usr/sbin/mysqld: File './mysql-bin.000023' not found (Errcode: 28 - No space left on device) 2016-09-14 08:52:37 23762 [E…
受信したメールをprocmail経由でphpに渡してゴニョゴニョする時に失敗した件のまとめ。まずメール送信の仕組みから分かっていなかった。初期のメールではASCIIの7bitデータのみが想定されていたため、現在でも添付のバイナリやマルチバイトである日本語は7bi…
addWorksheet(mb_convert_encoding($sheet_name, 'sjis-win', 'utf8')); $worksheet->write(0, 0, mb_convert_encoding('test', 'sjis-win', 'utf8')); Spreadsheet_Excel_Writerで上記を実行したところ、以下のエラーが発生。 Fatal error: Call to undefin…
エクセルのバージョンは2013。使う前から想定はしていたけど案の定Spreadsheet_Excel_Writerでエラーが発生。 しかも通常は問題無いんだけど、ある一定以上のデータを出力しようとすると「一部の内容に問題が見つかりました」云々のエラーが出る。以下のサイ…
[ PHP ] 配列の先頭に要素を追加 ( array_unshift, array_merge, + ) – 行け!偏差値40プログラマーこちらのサイトが参考になる。キーを保持したい場合は、基本array_mergeを使うことになると思うけど、それでもうまくいかない場合は、array_reverseを使えば…
ケース1 <form method="post" action="/test.php"> <input type="hidden" value="hidden" name="col1" /> <input type="text" value="" name="col1" /> <input type="submit" value="send" /> </form> テキストボックスに「text」と入力してpostした時のprint_rの結果、テキストボックスが優先される Array ( [col1] => text )ケース2(textbox…
phpのデバッグ環境作りたくて最初vdebugを入れようとしたんだけど自分の環境だとどーにもpythonのバージョンの関係で動かなかったため結局debugger.vimをインストールした。(もしかするとpython2.6がデフォルトのcentos6以降じゃないとダメなのかもしんない)…
http://www1.test.com/test1.php http://www2.test.com/test2.php というサブドメインが異なる二つのページ間でセッションを共有したい場合、以下のようにsession_startする前にsession.cookie_domainを設定する必要がある。
はまってしまったのでメモ。 php.iniのinclude_pathはデフォルトのままなのに何故か別フォルダのファイルをincludeしていたからなぜだろうと思ったら、htaccessにinclude_pathが設定されていた。 php_value include_path ".:/var/lib/sample:"htaccessを使う…
php7だとdefinedに配列を指定できるようになったらしいがphp5.2ではできないので以下のようにすればよい。(もちろん区切り文字がデータに含まれないことが前提)
cakephp使ってて、以下のような多次元配列をNumber.numberでソートしたい [User] => Array ( [0] => Array ( [id] => 36 [Number] => Array ( [id] => 1044 [number] => 0300019992 ) ) [1] => Array ( [id] => 15 [Number] => Array ( [id] => 1041 [number…
cakephp1.2でSecurity.level=lowにした上でsession_startすると、本来であれば有効期限が25年先となるはずが、有効期限がセットされずにセッションクッキーになってしまうという問題にぶち当たった。しかもphp5.1だと発生し、php5.2だと発生しない。色々試し…
わざわざjavascriptを使ってあほなことをやっていた。 submitのデータは押したものしか送信されない。(PHP)HTMLのFORMでSubmitボタンを複数配置したい場合 : 3流プログラマのメモ書き formに複数ボタンのサンプル(同じname属性値)
wgetを使っていたらファイルが破損するケース(と思ったら勘違いだったぽい)があったため、今後はcurlを使うようにすること。以下、ファイルダウンロードのメモ。 /dev/null 2>&1"; passthru($cmd, $ret); オプション -o ダウンロード時のファイルを指定 -k …
PGOTHICは半角の文字によって横幅が異なるっぽい。 例えば「1」と「W」では「W」の幅の方が広い。 GOTHICだとどちらも同じっぽいので、バイト長で折り返しする際は、GOTHICを使うこと。
utf8だと3バイトだったり2バイトだったりするので気をつける 変換については↓ utf8の日本語を2バイトにしたければshift_jisに変換すればよい - 技術ブログ
jQuery File Upload Pluginを実行したらこんなワーニングが出た。 PHP Warning: Unexpected character in input: '\\' (ASCII=92) state=1どうやら以下の行でエラーになっていたらしい。
mysqliを使ったソースをサーバー上で動かそうとしたときに以下のエラーが出た Fatal error: Class 'mysqli' not found in /var/www/login.php on line 101 mysqliが使えるかどうかはphp -mで確認する。 php -mmysqliを使う場合、本来phpをコンパイルする際に…
php.iniに以下のようにすれば通常はdeprecatedエラーは非表示となる error_reporting = E_ALL & ~E_DEPRECATEDしかしcakephp1.2では個別にerror_reportingが設定されている箇所が何か所かあるようで、↑の設定をしてもdeprecatedエラーが表示されてしまうため…
変更前
open~closeまで全部やってくれる関数。 ファイルにさっとログ吐きたい時とかいっつもこの手順を忘れるんだけど、file_put_contentsで一発でできるぽかった。参考サイト 【PHP】超絶便利関数、file_put_contents()の動作を理解する。追記はFILE_APPENDをつけ…