NETCREATESBLOGネットクリエイツの公式ブログ

Author Archives: shinsuke

IPv6なWindowsでgethostbyaddr()が使えない

わけあってIIS7でPHPを使おうと思いPHP Version 5.2.9-2のWindowsバイナリをダウンロードしてきて設定したのですが、gethostbyaddr()関数を使ったスクリプトで下記のエラーが出ることに気がつきました。

PHP Warning: gethostbyaddr() [function.gethostbyaddr]: Address is not in a.b.c.d form in・・・

引数が「a.b.c.d」という形式じゃないよというエラーなのですが、IPv6でアクセスしたのだから形式が異なって当然です。(IPv6アドレスはコロン(:)で区切りますからね。)

Read More »

skip-name-resolveを書くとDBに接続できない場合

以前、MySQLの重さの原因はDNS逆引きだった という記事を書いたのですが、それを読んでmy.cnfにskip-name-resolveを設定したという後輩から「DBに接続できなくなった」という問い合わせを受けました。

 

話を聞いたところ、MySQLにローカル接続用のユーザを追加するとき、MySQL 権限テーブルに「localhost」と書いたとのこと。

こんな感じ

grant all privileges on DB.* to userid@’localhost‘ identified by ‘hogehoge’;

記事にも書きましたが、skip-name-resolveを使うとホスト名の解決を行わなくなりますから当然、ローカル接続も接続元が「localhost」ではなく 127.0.0.1 として扱われます

なので、MySQLをインストールしたての時など@127.0.0.1なユーザが居ない状態でいきなりskip-name-resolveを設定するとMySQLに接続できないのです・・・。

grant all privileges on DB.* to userid@127.0.0.1 identified by ‘hogehoge’;

上記のようにユーザ追加時にはIPアドレスを使用すれば大丈夫。

ただ、記事に「うちのようにlocalhostからしかMySQLを使わない場合、MySQLがDNS逆引きを行う必要は無いですし、このほうがパフォーマンスも良いみたいです。」なんて書き方をしたせいで誤解を生んだ可能性があり、申し訳ないです。

そこはlocalhostではなく「127.0.0.1」と書くべきでした。すみません。

IIJモバイルでIPv6インターネット体験

IIJ、IPv6接続機能を無償で提供する「IPv6仮想アクセス」を開始

なぜか設定方法に関するドキュメントが無かったので 「IIJモバイル セキュアリンク」 というアプリを使ってみたところ、アプリの挙動からPPTP接続であることが分かったので設定してみました。

 

1. IPv4インターネット接続ができる環境 Windows Vistaが入っているパソコン を用意します。

2. 「スタート」メニューの”接続先“をクリックします。

IIJ-IPv6-2.png

 

3. [接続またはネットワークをセットアップします] をクリックします。

IIJ-IPv6-3.png

Read More »

array_searchで0(ゼロ)が返ってくるとif文は?

私はプログラマというわけではないのですが、よく大学や高校の後輩からPHPという言語について尋ねられます。
最近、たまたま、それぞれ異なる後輩から同じ質問をされたのでちょっと紹介しておきたいと思いまして。
実は私も以前、はまったことが・・・

PHPには、配列の要素に特定の文字列が含まれているか検索するために、array_searchという関数が用意されています。
比較的よく使うのですが、int型の0(ゼロ)が返ってくる場合を考慮しないと失敗します。

例えば、$test_array = (“岡山”, “倉敷”, “津山”); の場合、
array_search(“倉敷”, $test_array); の結果は1 ですが、
array_search(“岡山”, $test_array); の結果は0 となります。

この0(ゼロ)が曲者でして、仮に配列に岡山が含まれているかどうか調べたいときに

if (array_search(“岡山”, $test_array)) echo “含まれています”;
else echo “含まれていません”;

なんて書いちゃうと「含まれていません」と表示されるのです・・・。
if文にとっては、int型の0も、boolean型のFALSEも、同じFALSEなのです。

というわけで、下記のように修正すると期待通りの結果を得られます。

if (array_search(“岡山”, $test_array) !== FALSE) echo “含まれています”;
else echo “含まれていません”;

=== は値が等しく、同じ型という比較演算子で、
!== は値が等しくないか、同じ型ではないという比較演算子です。

これならint型の0が返ってきたとしても、FALSEではないこと(「岡山」が含まれること)が判別可能です。

本当にちょっとしたことなのですが、頭の片隅に置いておくときっと助かる場面に遭遇します。
精進、精進。

なぜ人形のスカートの中を確認するのか

タイトルは気にしないでください。確認したのは私ではありません。本当に。

さて、今日は所用で私の母校でもある県立岡山朝日高等学校に行って来ました。
ちょうど平日で同窓会事務局も開いていたので「朝日高校リカちゃん」をゲット!
以前からその存在は知っていたのですが、卒業式や文化祭といったイベントの時は事務局が留守で、なかなか入手する機会に恵まれませんでした。

というわけで簡単なレビューを。

朝日高校リカちゃんパッケージ表パッケージはオリジナルデザインで、春の桜が舞う朝日高 校門のイラストがベースになっています。裏面は通常のリカちゃん人形と同じく注意書きやタカラの連絡先が印刷されています。
わざわざJANコード(バーコード)が刷ってあるのに驚きましたが・・・市販するの?

朝日高校リカちゃんリカちゃんのほうは若干茶髪なのが校則違反なんじゃないかと心配ですが、通常のリカちゃんと変わりません。(ここで変わってたらリカちゃんじゃないか・・・)
てっきり人形を彩色しただけの制服かと思っていたのですが、きちんと生地を縫って作られた冬服のレプリカを着ていることに感動しました。いい仕事してますねぇ。
スカートのボックスプリーツの本数とか細かいところもよく再現されています。

良い記念になりました。

ちなみに現在の在庫状況は「あと2年程度で完売」だそうです。
保存用、布教用にあと2体は入手しておきたいですね!
完売後の再生産は未定らしいのですが、個人的には夏服が好きなので次はぜひ夏服でお願いします。>同窓会事務局様

先日知ったのですが、制服レプリカを着たリカちゃんは朝日高校リカちゃん以外にも全国に20校程度存在するらしいです。みんな母校が好きなんですね。良いことです。

Newer Entries

Older Entries