PHPでプログラムを作っていると、null,false,0,array(),””の違いを忘れてしまうこと。どんな関数で判定すれば区別するかです。今までは、empty()で判定していましたが、細かく判定できる比較表をPHPのサイトて見つけました。知らないのは自分だけだったかも・・・・。
「PHP 型の比較表」を見れば一目瞭然です。その他、==と===との比較の一覧も載っています。参考までに・・・・。
ちゃんとマニュアルを見るべきでした。
とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。
PHPでプログラムを作っていると、null,false,0,array(),””の違いを忘れてしまうこと。どんな関数で判定すれば区別するかです。今までは、empty()で判定していましたが、細かく判定できる比較表をPHPのサイトて見つけました。知らないのは自分だけだったかも・・・・。
「PHP 型の比較表」を見れば一目瞭然です。その他、==と===との比較の一覧も載っています。参考までに・・・・。
ちゃんとマニュアルを見るべきでした。
これは悩みました。
例えばCakePHPのサイトのように、RecipeとTagとが多対多の関係でhasAndBelongsToMany(HABTM)で定義されているとき、レシピに複数のタグを追加するには、Recipeモデルで
$data['Tag’] = array(1,2);
$this->create();
$this->saveAll($data);
なんてすればいいのですが、その関係を削除したいことがあります。単純に
$data['Tag’] = array();
$this->create();
$this->saveAll($data);
とすると、全くTagには影響はありませんでした。ではどうすればいいかというと、正解はこのサイト(リンク切れ注意)。Thanks!。
array()をarray(false)にすればいいのですね。
$data['Tag’] = array(false);
$this->create();
$this->saveAll($data);
これはわかりませんでした。でも、何かおかしな仕様ですが、しかたありません。
CakePHPでMySQLを使うと、phpMyAdminでみると日本語で格納したテキストが文字化けする件。app/config/database.phpの設定をGoogleで検索して確認しました。
参考にしたサイトは、ここ。
MySQLのマニュアルを読めよ。> 自分
'encoding' => 'utf8'
にしなければいけないところ、
'encoding' => 'utf-8'
にしていました。何て単純なミスなの。> 自分
もうずいぶんThunderbirdを使っているが、アドレス帳を使っていませんでした。返信するとき別にアドレス帳を使う必要はないが、新規にメールを作成となるとメールアドレスを入力する必要が出てくる。今までは、違うメールからメールアドレスをコピー&ペーストしたり、オートコレクト機能で自動的に入力していたが、どうも面倒くさくなってきた。最近は、プロジェクトでたくさんのメンバーにCCでメールを送らなければいけなくなったのだ。情報が散乱するので、本当はメールで情報の共有はしたくないのだが。
Thunderbirdのアドレス帳を使うことにする。しかし、このままだと、PCを換えたときにせっかく登録したアドレスが出てこないので同期が必要。
ここで、Google Contactの登場。Google Contactは、Thunderbirdのアドレス帳とGmailの連絡先(Google Contact)を同期するためのThunderbirdのアドイン。
これで間違いなくメールアドレスを設定できればいいのだが・・・。
ドコモのAndroid端末XPERIAの発表がありました。欲しいと思ったが、ちょっと待て。
今契約しているauは、今回Android端末の発表はありませんでした。auはスマートフォンに乗り遅れているということで、 他社に乗り換えも考えてもいいかと。
スマートフォンといえば、iPhoneもありますが、これだけ盛り上がってしまっていますので、天の邪鬼の自分としては他のスマートフォンを選びたくなります。いままでは、ザウルスやWindowsCE(電話ではないですね)、W-ZEROとか使ってみましたが使いこなすまで行きませんでした。必ず使うということにしないと、他の携帯電話と併用しているとダメなようです。
自分の携帯電話の使いかたを考えてみると、以下の通りです。
最初の3つは、スマートフォンにしても問題ないし、文字の入力が格段に楽になるので使い方が広がりそうです。しかし、最後のおサイフケータイは、最近よく使うようになりました。おサイフケータイがスマートフォンへの移行を考えてしまう。
おサイフケータイ用に別に携帯電話を買っておくか、今までの携帯電話を残しておくとか。しかし、無駄のような気がします。
おサイフ携帯をあきらめて、電子マネーは対応したカードにするとか。カードをたくさん持たなければいけないので大変そう。
迷っているうちは、今まで通りの携帯電話を使い続けるのでしょうかね。Androidのアプリケーションの開発を研究するという大義名分で買ってしまうのも手もかしれない。
ビックカメラで地上デジタルチューナーを衝動買い。PCに入れてみたが、結果は動かなかった。
まずは原因は2つ。
ディスプレイがHDCPに対応していないこと。地デジはHDCPというのが著作権保護をしているらしい。何て面倒な仕様なの。PCでの地デジは敷居が高い。ディスプレイへの出力をデジタルからアナログに変えてみて対応。しかし、画面が汚くなる。
次は電波が弱いとのこと。しかし、TVでは地上波デジタルを見えているし、同じアンテナ線でワンセグは視聴可能。地上波デジタルは、とてもアンテナからの入力がシビアみたいです。これであきらめ。なんだか面倒くさくなった。せっかく地デジチューナーを買ったけど、何も表示できずおしまい。いままで通りPCで見るのは、ワンセグチューナーでいいや。
こんなことでは、簡単にアナログからの切り替えは難しいかもしれませんね。B-CASカードを挿入するのも何とかしてよ。シカや公園で叫んだ人ががんばっても、アナログ停止の混乱は避けられないでしょう。
ちなみに今回購入した地上デジタルチューナーは、バッファローのDT-H50/PCIEWという製品。既に在庫限りでWindows7には未対応。
たまにVMware ServerのWebでアクセスする管理コンソールにアクセスできないことがあります。Googleに聞いてみましたら、ありました。こちらもCentOS5の64ビットの上で、VMware Serverを使っています。
詳しくは、こちらのサイト「CentOS5.4 x86_64 と VMWare Server 2.0.x でWebAccessコンソールが途中で固まってしまう場合の解決策」を参照のこと。
これで解決すればいいのですが・・・。
Excelファイルに時間がセルにあると、PHPのプログラムから正しい値が読み込むことができません。
使ったPHPのExcelファイルを読み込むライブラリは、Spreadsheet_Excel_ReaderとPHPExcel。どちらもダメ。ソースを追ってみたがわからない。03:00と時間を読み込むと、0.125になる。Excelで書式を変えてみると、0:febfeb:になってしまう。何か、ライブラリ側で書式の設定があるかも。
仕方ないので、Excelファイル側で書式を文字列にしてもらうことにする。後で解決策があれば、変更しましょう。
Spreadsheet_Excel_Readerは、セルに何も値を格納していなければ、PHPで取り出した配列には何も出てこないのね。nullか空白文字を期待してアクセスすると変数の未定義エラーになる。Spreadsheet_Excel_Readerクラスのvalメソッドを使わなければいけない。配列を追っていくときには注意。
後、Excelのブック内のシート数はどこにも格納されていないのね。いろいろと使いにくいところがある。
OpenPNEで開発していたSNSのサイトを、他の会社に引き継ぎました。
このサイトは、OpenPNEの上で運用したと言えど、とてもカスタマイズされています。はたして、引き継いだ会社は面倒を見ることができるのでしょうか? まあ、変更が大きいといっても、OpenPNEの構成に乗っ取っていますので、OpenPNEの内部を理解されていれば難しくはないと思いますが。後は引き継いだ会社の実力次第です。
いつまでのイジイジと根に持って覚えていると嫌われますが、昔開発した案件の内容を忘れてしまうのは困りものです。
今回、いきなり電話があって、他のシステムと連携している画像のインポート処理が動いてなくて、サイトの画像がNoImageになってしまうとのこと。
さて、どのように対応すればいいのか手間取ります。ドキュメントがあるのはあるのですが、そのドキュメントがどこに置いているかわからない。せっかくのドキュメントが台無し。
そこら中のドキュメントをひっくりがえして(PCのエクスプローラですが・・)、やっと見つけ、ソースを眺めて再インポートを指示する。
障害内容は、画像の数が多くて処理の途中でタイムアウトになっていた。タイムアウトの時間を延長して対応する。