xml_set_object と ポート80で外部へ繋がる我がPC。
目が覚めたら、携帯に速報ニュースが。
尼崎で起きたJR脱線事故。
・・・・・・なんとも言えません。
とにかくより多くの生存者がいるように、
負傷した方々の傷が早く回復する事を祈るだけです。。。
-------------
そんな今日もプログラムの勉強。
XMLがイマイチ理解しきれてないので
クラスでも作ってみりゃ、何か覚えるかなーと思って、
PHPでXMLデータを解析して、連想配列にデータを入れるクラスを
コツコツ作ってたら。
xml_set_element_handler と
xml_set_character_data_handler で
引き数に設定する、コールバック関数名の部分を
クラスの中に入れちゃうと都合が悪くなってしまったのでした。
例えば、コンストラクタで…
xml_set_element_handler( $this->parser, "startElement", "endElement" );
…って書いておいて、
function startElement( $parser, $name, $attrib ){
// 実行処理
}
…と関数を用意しても、この関数を呼ぶには本当は…
$this->startElement();
…としないといけない訳だから、xml_set_element_handler で
単に "startElement" としたんでは、ダメだった、と。
が、検索してみたら、PHP-users MLで
xml_set_objectを使えば解決すると書いてある。
早速、そのページを見てみたら、
すでに私がやろうとしている事を、そのまーんまクラスにしてる
サンプルが載っていて…
xml_set_object( $this->parser, &$this );
…と xml_set_element_handler や xml_set_character_data_handler の前で
宣言してやりゃいいのでした。
それにしても、こうして解決したものの
結局のところ、XMLデータをどういう感じで
連想配列に入れておけば、後から呼び出しやすいかを考えると
結構大変で悩み中。
本当は別に優秀なクラスが、すでに沢山発表されてるんだから
それを使えばいいんだろうけどね…(^^;
うっかりこれらを外部に公開したくなってくるのが
プログラム野郎な性質(?)かと思われますが???
私も公開するとどんな感じかしら〜なんて
どうでもいい実験をしたくなった次第。
とは言え、我が家はフレッツADSLで
固定IPがもらえてる訳じゃないので
今自分のPCに割り当てられているグローバルIPは、
変動する可能性が勿論ある。
そんな人のために、
ダイナミックDNSのサービスがあって、
MyDNS.JPとか
無料で使えるし、有名(?)みたいですが。
私は契約してるレンタルサーバーに
サブドメインの設定があるんで
適当なサブドメインを決めて、
そこに自分に割り当てられてる
現在のグローバルIPを設定してみました(^^)
が、このグローバルIPと繋がってるLAN上からだと
見れないようになっているので、
こういう時こそ、どっかのプロクシをかませるといいんですが。
プロクシ探すのが面倒だったので、
telnetで、別のサーバーに入って、
wgetで さっきグローバルIPを設定したサブドメインを叩いてみると…
成功しました(^-^)/ わーいわーい。
私のPC上の書類が、外から見れるようになってるぅー♪
…って、すでにレンタルサーバー借りてるんで、
こんな事しなくてもいいんですけどね(^^;;;
遊びです、遊び。
あ、せっかくなんで、このお遊びのための、
一番下の「おまけ」に書いておきます〜。
prevent を妨げる,じゃまをする、予防する
assume を仮定する、を横領する、のふりをする
anon anonymous の略
■ルーター上の設定
ルーターの機種によるけど、
「スタティックIPマスカレード設定」で以下の設定を保存。
設定番号 1
有効/無効 有効
インターネット側 WWW
開始ポート 80
最終ポート 80
ローカルIPアドレス 192.168.0.100
■Windows XP 上の設定
「スタート」「設定」「ネットワーク接続」「ローカル エリア接続」で
「全般」タグ画面中の「プロパティ」ボタンをクリック。
「インターネットプロトコル(TCP/IP)」を選択して「プロパティ」ボタンをクリック。
「全般」タグ画面中の「次のIPアドレスを使う」で
IP アドレス: 192.168.0.100
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.0.1
「次のDNSサーバーのアドレスを使う」には
優先DNSサーバー:192.168.0.1
を設定。
「詳細設定」タグ画面中の「ローカル エリア接続」を選択して
「設定」ボタンをクリック。
「詳細設定」ウインドウ中「サービス」タグ画面で
「Webサーバー(HTTP)」にチェックして
「編集」ボタンをクリック。
現れた「サービス設定」ウインドウ内
「ネットワークでこのサービスをホストしている
コンピュータの名前 または IPアドレス」で
自分のマシンのローカルIPである、
192.168.0.100 を設定し「OK」ボタンをクリック。