PHP
PHPのGDだけ使って画像の縦横比を保ったまま縮小・拡大、必要に応じて黒帯をつけるってプログラムを書いた。GDの関数、何かよくわからない名前だし、引数多いし、非常に面倒。ちゃんとしたライブラリ使えば、もっと使い勝手いいんじゃないかなー。まあ作って…
PHP5から標準で搭載されているSimpleXMLの関数ですが、XMLの構造がおかしかったりするとWarningを吐いてしまいます。@でつぶすのもまあありといえばありですが、XMLのどこがおかしいのかよくわからなかったりするので、そのあたりがわかるようなクラスを作り…
PHPの !isset($hoge) と is_null($hoge) は、両方とも変数$hogeがnullでないことを確認できるけど、isset()は言語構造で、is_null()は関数という違いがある。なので、isset()は以下のように使うとFatalErrorとなる。
よくある2進数の罠というか。PHPのserialize()について。 Memcachedとかにデータ入れるときは自動でserializeされるので、データ量考えたらできればintで入れたいなと。ただそれだけ。
PHPのDateTimeクラスはUNIXタイムからもインスタンスを生成することができる。$date_time = new DateTime('@' . time());といった感じで。@マークを先頭につけないといけないのはPHPマニュアルに書いてあるんだけど、この前、はまった罠はタイムゾーン。手を…
PHPでConsistentHashingの実装をしてみたので公開。 ConsistentHashingのわかりやすい説明とかメリットは以下のページが詳しかった。 スマートな分散で快適キャッシュライフ - mixi Engineers' Blog PHPで実装するにあたり、ActionScriptで実装した方がいら…
この前はfile_get_contents()で無理やりExceptionを投げる方法を書いたけど、今回はもともとに用意されているオプションとかについて。 POSTで送るパラメータはhttp_build_queryで作る。 file_get_contentsの取得設定はstream_context_createに配列を渡して…
最近流行ってるらしいPjax。(pushState + Ajaxの造語らしい) ちょっと使うことがあったので、調べたこととかをメモっておく。 どういう技術かというと、例えば何かリンクをクリックしたときに、一部分だけ書き換わって、ページ全体が書き換わっているわけで…
PHP5.2から導入されているDateTimeクラスが便利ということを今更ながら知りました。試しにいろいろやってみた。一番、DateTimeクラスを使う利点は関数の引数で型を指定できることかな。$date_timeみたいな引数にintで渡すべきなのかstringで渡すべきなのか悩…
何かと便利なfile_get_contents()なんですが、うまく取得できなかったときに、Warningだけ吐いて、Exceptionを飛ばしてくれないのが残念。 うまいことExceptionでエラー取れないかなーと、ふとob_start()とかあったなーって思ってやってみたらできたのでメモ…
この為替変動メーターっぽいもののためにAPIを作ったんだけど、為替ってそんなに大きく動くことはあまりなくて、数値が変わらないので、ずっと放置してる・・・とりあえずインフォシークのページから為替の情報だけを抜き出すAPIのプログラムだけ公開。excha…
結城さんの「Java言語で学ぶデザインパターン入門」を読んでいるので、載っているデザインパターンにしたがって、PHPで書いてみるの2回目です。2章のAdapterパターン。これは、理解しやすいパターンです。新しい仕様に、古い仕様のものを変換するという感じ…
結城さんの 「Java言語で学ぶデザインパターン入門」を読んでいるので、載っているデザインパターンにしたがって、PHPで書いてみる。まずは1章のIteratorパターンから。 本当はクラスごとにファイルを分けたいけど、とりあえず1ファイルで。
Webページから情報を抜き出すのに、必要になったので作ってみた。