PHP

【CakePHP2.X】のfind()メソッドでjoinを指定する際。

はfieldsも下記のように指定すること。
※でないと取得した結果が意図したとおりに取れない。

$this->Post->find('all', [
	'joins' => [
		'Comment' => [
			'table' => 'comments',
			'alias' => 'Comment',
			'type' => 'left',
			'conditions' => [
				'Post.id = Comment.post_id'
			]
		]
	],
	'fields' => '*'
])

てな感じ。

 

【Javascript】でmp4動画ファイルの音声をぶっこ抜ける模様。

下記ページによるとmp4のバイナリ?を操作出来るらしい。

http://hujimi.seesaa.net/article/239922100.html

 

【PHP】のin_array()はhaystackに存在していないneedleを入力されてもtrueが返る。

のはなぜなのか。

$arr = [0,1,2,3,4,5];
$res = in_array('?', $arr);
var_dump($res);
// true


$arr = [0,1,2,3,4,5];
$res = in_array('?', $arr, true);
var_dump($res);
// false

なぜなのか。

 

【PHP】正規表現の[]内でハイフンを一致させたい時。

通常正規表現で[]内に記述されたハイフンは[0-9]などのように範囲を表す文字として特殊扱いされるが、この際ハイフンそのものも判定に含めたい場合、[]内の一番最初もしくは一番最後に記述することで単なる文字として

認識させることが出来る。

例)

[-0-9]
[0-9-]

と言った感じ。

 

【PHP】ファイルアップロード処理の脆弱性対策。

下記ページに詳しくまとめてあったのでペタリ。

http://qiita.com/mpyw/items/939964377766a54d4682

フレームワークなどを利用せずに実装する際はかなり参考になる。

 

【PHP】オブジェクトを再帰的に配列にキャストする。

関数を作ってみる。

class common {

    public function obj2ArrRecursive($obj)
    {
        if (!is_object($obj)) {
            return $obj;
        }
        
        $arr = (array) $obj;
        
        foreach ($arr as &$a) {
            $a = self::obj2ArrRecursive($a);
        }
        
        return $arr;
    }

}

うん。

 

【PHP】インターフェースではpublicメソッドしか定義出来ない。

ということを今更知った。

なんという!!!!

 

【CentOS/PHP】ローカルからのmb_send_mail()などがどうしても出て行かない場合。

maillogに「dsn=5.6.0, stat=Data format error」のような記述があったらこうする。

/etc/mail/sendmail.mc に下記を追記。

FEATURE(`accept_unqualified_senders')dnl

これを記述することで送信元メールアドレスのチェックがなくなるので、怪しいドメインからもメールを送信することが出来るようになる。
まぁ開発環境とかでやる感じかな。