揮発性のメモ2

知識をメモ書きしておく

PHP

jQueryでかぎ括弧のついた名前を検索する

PHPでよく使う、<input name='address[1]'> のvalueを取得するみたいな話 var num = 1; var txt = $( "input[name='address[" + num + "]']" ).val();

配列をトリミング

PHP

#!/usr/bin/php -q tsvをcsvにするついでに余計な空白を取り除く カラムがたくさんあるときは array_mapじゃないほうを使ったほうがいい

CAPTCHA Xを試す

PHP

PHPで使えるCAPTCHA画像作成ライブラリまとめ:phpspot開発日誌 こちらを参考に、まずCAPTCHA Xを試す http://www.phpclasses.org/browse/package/3023.html からcaptcha-x.zipをダウンロードしてサンプルを実行

define時に余計なスペースが入ると面倒くさい

PHP

#!/usr/bin/php -q $ ./hoge.php O_HOGE余計なスペースが入ってもエラーにならないので本当に困る

PREG_SPLIT_NO_EMPTY

PHP

PREG_SPLIT_NO_EMPTYなし [1] => a [2] => b [3] => c [4] => d [5] => e [6] => f [7] => g [8] => ) 頭とお尻に空文字列が入ってしまう。 PREG_SPLIT_NO_EMPTYあり

セッションIDを隠す

PHP

Warning: Invalid argument supplied for foreach()

PHP

配列じゃないのをforeachに渡しちゃうとwarningウザい ⇒ 全部配列にすればいい

指定銘柄の一定期間の株価を取得するPHPプログラム

PHP

スクレイピングの練習。 指定銘柄の一定期間の株価を取得するRubyプログラム - うなの日記 http://www.nijiiroworks.com/blog/214.html こちらを参考に、yahooから株価を取得してCSVを出力するプログラムを作成。 http://table.yahoo.co.jp/t?c=2010&a=11&b=…

htmlspecialchars

PHP

PHP: htmlspecialchars - Manual 出力するときに必ず使う の中でも使える 受け取るときはデコードする必要は無い ENT_QUOTESを忘れない

segfault

PHP

あるデーモンプログラムから起動されるPHPスクリプトが 数十回に一度の割合で落ちている。 syslogを見てみる Mar 21 22:00:00 unko kernel: [ 5478.703768] hoge.php[32552]: segfault at b6eb71a0 ip b6eb71a0 sp b6e2237c error 14 Mar 21 22:00:06 unko k…

ドメインチェック

PHP

メールアドレスのドメインチェック if( checkdnsrr( $m, 'MX' ) ) return TRUE; if( checkdnsrr( $m, 'A' ) ) return TRUE; return FALSE; example.co.jp MXレコードにもAレコードにも無いことがすぐにわかる example.com MXレコードには無いけどAレコードに…

MySQL server has gone away

コネクションをオープンして放置していると、一定時間でセッションが切られてしまう。 システム開発の備忘録 | MySQL - sleepプロセスが溜まる MySQL のコネクションタイムアウトと削除されたプロセスのコネクションの残留 | さくらたんどっとびーず set-va…

PHPでメールを出すのがすごく遅い

PHPでメールを出すのがすごく遅いときがある ネットワークが不調なとき、mb_send_mailが遅い DNSサーバと通信できないときすごく遅くなる このとき、コマンドラインのsendmailもすごく遅くなる ここでmb_send_mailの問題からsendmailの問題にシフト SMART_HO…

runkitを入れる

PHP

まず、autoconf関係とpeclをインストール # apt-get install autoconf php5-dev次にrunkitをインストールすると # pecl install runkit-beta /tmp/pear/temp/runkit/runkit_import.c: In function ‘php_runkit_import_class_props’: /tmp/pear/temp/runkit/r…

fopenエラー

PHP

$fp = fopen( "unix:///tmp/testsock", "a+" ); PHP Notice: fopen(): Unable to find the wrapper "unix" - did you forget to enable it when you configured PHP? in /home/hoge/piyo.php on line 18

出力のバッファリングの解除

PHP

ファイルを読みこんで処理して出力するという流れで ファイルのダウンロードを行うページをつくったが、一定サイズ以上のファイルをダウンロードできない ログを見ると、メモリが確保できませんでしたというエラーが。 Allowed memory size of 8388608 bytes…

関数の引数に同じ変数が2回

PHP

地雷除去作業中に見つけたひどいコードその1 関数の引数に同じ変数が2回出てくる。放置するには恐ろしすぎる。修正のため、現時点での挙動を調査。 function hoge( $piyo, $fuga, $piyo ) { // 出力 echo "piyo is $piyo\n"; echo "fuga is $fuga\n"; } hoge…

PEAR::Mail_Queue

PHP

送信したいメールをキューに積んで、あとでまとめて送信できるライブラリ。 あるプロセスからDBにメールを積み、別のプロセスがそれを読んでメール送信する ということを実現するクラス。 PEAR::Mailを使って送信する。キューにはデータベースを使用する。 …

PHP5.2.0のバグ?

PHP

配列の配列をforeachで回していると、事前にprint_rで確認した内容と全く異なる要素が出てくることがある。 foreach($list as &$l) のように参照を使ってアクセスしているときに、$lに対して要素を追加したりすると、次にもう一回foreachでループさせたとき…

PDOのLIMIT句が動作しない

PHP

PHP :: Bug #40740 :: PDO::execute() errors when parameters are used in LIMIT clause PHP 5.2.1〜5.2.5 では、LIMIT句の値をなんかバインドとかすると動作しない そうです。 $sth = $dbh->prepare( 'SELECT * FROM some_table LIMIT :start, :limit' ); …

flock()

PHP

排他制御をするとき、ブロックしない(LOCK_NB)を指定すると flock()そのものは必ず成功する(trueが返る)。 ブロックされてたか否かは 3番目の引数($wouldblock) を見て判定する。 $wouldblockがfalseならロックをゲットできた、trueならロックできなかった(…

implodeでくっつける前に各要素をいじる

PHP

$list = array("a","b","c"); こういう配列を [a],[b],[c] こう出力したい できた create_function()なん…

ダウンロードとか

PHP

header("Content-Type: application/octet-stream"); header("Content-Disposition: inline; filename=$filename"); // header("Content-Disposition: attachment; filename=$filename"); header("Content-Length: ". strlen($csvfile)); print($csvfile); o…

warning抑止

PHP

@をつけてwarning出力が抑止されるのは 関数ではなく 式 warningが直接出ているところでなくても関与した式について全て抑止する PHP: エラー制御演算子 - Manual

system関数

PHP

system( "sleep 60 >/dev/null 2>&1" ); 2673 pts/3 S 0:00 /usr/bin/php -q ./sleeptest.php 2674 pts/3 S 0:00 sh -c sleep 60 >/dev/null 2>&1 2675 pts/3 S 0:00 sleep 60psで見たときシェルまで起動している system( "sleep 60 >/dev/null 2>&1 &" ); 3…

コマンドラインからgoogle翻訳を使うプログラム

PHP

$ trans.php WRYYY ジョジョの奇妙な冒険$ trans.php "God is in the details." 神は細部に宿る。引数に英文を書くと、日本語になって返ってくるソース

PHPでdir

PHP

PHP: ディレクトリ 関数 - Manual $d = opendir("./"); while( $r = readdir($d) ) echo "$r\n";

PHPでftp

PHP

PHP: FTP 関数 - Manual ラスト・アクションヒーローは面白い。シュワルツェネッガー本人が「あれは駄作」と言ってても関係ない。