PHP

Notice: Memcache::getversion(): Server localhost (tcp 11211) failed with: Failed reading line from stream (0) in /home/hoge/bin/setMemcache.php on line 16

(Sorry this article is written in Japanese, If you need English explanation)*1Memcacheを導入し、早速使おうとしたときに表題のエラーが。 スクリプト 実行すると PHP Notice: Memcache::getversion(): Server localhost (tcp 11211) failed with: Fail…

土日祝の休日が途切れるまで翌日に繰り越すスクリプト

PHP

http://d.hatena.ne.jp/hi-hats/20130324/1364115800 にて、指定日が祝日かどうかを判定するスクリプトを作りました function isJPNationalHoliday(){ これを利用して、指定日が土日祝日かどうかを判定するスクリプト を作成し、さらにこれを利用して 次の営…

指定した日が祝日かどうかを判定する関数

PHP

Google Calendar API から日本の祝日データを取得 こちらに一定期間の祝日を全て取得するスクリプトを掲載していただいていました。感謝。ただ個人的には、ずばりターゲットのその日一日が祝日かどうかだけを取りたかったので、若干カスタマイズさせていただ…

foreach()の中で配列ポインタを動かしたいと思ったものの

PHP

prev(),next()のような配列の内部ポインタを操作する関数を使い、 foreachループの中で再度繰り返しやスキップなどをさせたい (スキップはcontinueでもOKだけど)しかし foreach は内部の配列ポインタに依存するので、 ループ内で配列ポインタを変更すると…

XML_Unserializerで配列の要素数が一つだと階層が崩れる問題

PHP

XMLの解析に便利なXML_Unserializer unserialize($response_body); $result = $UNSERIALIZER->getUnserializedData(); みたいに使います。ところが一つ問題があって、 Array ( [item] => Array ( [0] => Array ( [id] => 1001 [datetime] => 2012-02-08 19:1…

Allowed memory size of **** bytes exhausted in /usr/*/pear/DB/

使用メモリがphp.iniの設定値を超えた場合に出る表題エラーですが、 出現箇所が、pear/DBやMDBといったDBライブラリの中で出る場合があります。 このような場合は、DBアクセスしている箇所といった特定しかできず、複雑な処理であれば突き止めるのは困難。 …

MDB2でlast_query()が取得できない

PHP

本当は取得できると思うんですが、原因がわからず、調べてもよくわからなかったので、 無理やり自作しました。 $sql:プリペアされるクエリ $pa:プレースホルダーに入るパラメータ last_query = $sql; と…

&&かandか(論理演算子の優先順位について)

PHP

かorかも含め、「どっちでもいいや」って声も耳にします。 まぁ大半はどっちでもいいケースでしょうけど、違いを分かっていないとドハマりすることもあるでしょうから整理http://www.php.net/manual/ja/language.operators.precedence.php要は、優先順位の話…

input type="file"使うときのformプロパティ追加(健忘注意!)

PHP

ちょっとなんべんも忘れすぎるので、あえて記事にして備忘。 <form enctype="multipart/form-data" action="__URL__" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> </form>

Syntax Errorを秀丸でファイル保存時に自動検出

PHP

エディタはvimやテキストエディタ、IDEのもを色々使い回してますが、いまだに固まってマセン。 それぞれに良さがあり、欠点もある。けどせめて構文チェックくらいはどれでも使えるようにしておきたいとこです。IDEはもちろん、vimもvimrcに設定すれば問題な…

ディレクトリ内のファイルリストを取得する

PHP

glob()関数を使うのが便利です。 パターンマッチ使えるので。※file_exists()はファイル名が判ってないと使えないつまり、ディレクトリ内にファイルが存在するかどうかの判定にも使えます。

Parse error: syntax error, unexpected T_DNUMBER in /var/www/***

PHP

レアエラーメッセージでました。 T_DNUMBER… 見覚えないなぁと思いつつググるも日本語情報が無いようなので、メモしておきます。 単純に $version = 5.3.3; のように少数点を複数使う場合は、quotationが必要なようです。 こんな数字フォーマットはないので…

PEAR::Mail::send()の第二引数$headerについて

PHP

PEARパッケージのMailクラスを使い、メール送信する基本形 '127.0.0.1', 'port' => '25', 'auth' => false, 'username' => '', 'password' => '', 'persist' => TRUE, // TRUE:配信毎に接続を切らない。 ); $headers['From'] = $from; $headers['To'] = $to…

PEAR::DBのプレースホルダー「!」の注意点

PHP

SQL文のプリペアドステートメントにある「!(エクスクラメーション)」これは以下参照サイトにあるようにプレースホルダのようだが、 プレースホルダには以下の3種類があります。? --- クォート処理する文字列 ! --- クォート処理しない文字列 & --- バイナ…

unserialize() [function.unserialize]: Error at offset

PHP

シリアライズされた値をunserializeしようとしてエラーになることがある。 unserialize() [function.unserialize]: Error at offset エスケープの問題の例もあるが、 このエラーは単純なeasyミスです。シリアル化したときにエスケープ文字が含まれているかど…

指定した長さに文字列を丸める - mb_strimwidth()

PHP

以前も同じようなことをやったのだけれど、 たしかそのときは、substr()やらstr_replace()やら使って処理した気が。 Smartyにはプラグイン関数ありましたよね。 以前からあったのか知りませんでしたが、一発で解決するPHP関数があるそうな。 string mb_strim…

URLの形式、全角カナValidationチェックのメモ(正規表現)

PHP

例) ■URL

郵便番号のValidate ⇔ php-jsonインストール

PHP

■郵便番号入力値にチェックをかける場合例えば、地域限定で商品を購入してもらう条件で、購入者の郵便番号によってはじきたいことなどがある。JSON形式の郵便番号データが用意されているので、PHPからそれを使用したいときは、php-jsonモジュールがインスト…

switch文でcaseにintとbooleanを混ぜない

PHP

ハマりがち。理由は以下のため。 注意: switch/case が行うのは、 緩やかな比較 であることに注意しましょう。

Unsupported operand typesエラー

PHP

ceil($a/$b) したときに、変数をintvalしておかないと、Unsupported operand typesというFatal Errorがでる。 PHPって型変換ゆるゆるだったんじゃないの? ceil(intval($a)/intval($b))でFA

床関数、天井関数(floor, ceil)

PHP

いまさらながら、割とよく使う計算関数なのに、覚え切れない二つを整理 floor 関数:床関数とも呼ばれる関数である。数値式 number 以下の最大の整数を戻す。 ceil 関数:天井関数とも呼ばれる。数値式 number 以上の最小の整数を戻す。

MCRYPT関数による3DES暗号文字列復号の流れ

PHP

PHPマニュアルから若干カスタマイズ

PHP5からarray_merge()の動作変更

PHP

ホスティングしているサーバのPHPバージョンがいつのまにか4から5に。そこで使っているXoopsがけっこう古いプログラムのため、各所で不具合が起こった。まずは、array_merge()から値がとれていない。 PHP5からはarray型のパラメータしか受け取らないようだ…