frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

xml_set_object と ポート80で外部へ繋がる我がPC。

目が覚めたら、携帯に速報ニュースが。

尼崎で起きたJR脱線事故

・・・・・・なんとも言えません。

とにかくより多くの生存者がいるように、

負傷した方々の傷が早く回復する事を祈るだけです。。。

-------------

そんな今日もプログラムの勉強。

XMLがイマイチ理解しきれてないので

クラスでも作ってみりゃ、何か覚えるかなーと思って、

PHPXMLデータを解析して、連想配列にデータを入れるクラスを

コツコツ作ってたら。

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データをどういう感じで

連想配列に入れておけば、後から呼び出しやすいかを考えると

結構大変で悩み中。

本当は別に優秀なクラスが、すでに沢山発表されてるんだから

それを使えばいいんだろうけどね…(^^;

で、Apacheいじってスクリプト書いてると

うっかりこれらを外部に公開したくなってくるのが

プログラム野郎な性質(?)かと思われますが???

私も公開するとどんな感じかしら〜なんて

どうでもいい実験をしたくなった次第。

とは言え、我が家はフレッツADSL

固定IPがもらえてる訳じゃないので

今自分のPCに割り当てられているグローバルIPは、

変動する可能性が勿論ある。

そんな人のために、

ダイナミックDNSのサービスがあって、

MyDNS.JPとか

無料で使えるし、有名(?)みたいですが。

私は契約してるレンタルサーバー

サブドメインの設定があるんで

適当なサブドメインを決めて、

そこに自分に割り当てられてる

現在のグローバルIPを設定してみました(^^)

が、このグローバルIPと繋がってるLAN上からだと

そのグローバルIP叩こうが、そのサブドメイン叩こうが

見れないようになっているので、

こういう時こそ、どっかのプロクシをかませるといいんですが。

プロクシ探すのが面倒だったので、

telnetで、別のサーバーに入って、

wgetで さっきグローバルIPを設定したサブドメインを叩いてみると…

成功しました(^-^)/ わーいわーい。

私のPC上の書類が、外から見れるようになってるぅー♪

…って、すでにレンタルサーバー借りてるんで、

こんな事しなくてもいいんですけどね(^^;;;

遊びです、遊び。

あ、せっかくなんで、このお遊びのための、

ルーターWindowsの設定方法は

一番下の「おまけ」に書いておきます〜。

今日調べた英単語。

 prevent を妨げる,じゃまをする、予防する

 assume  を仮定する、を横領する、のふりをする

 anon anonymous の略

おまけ。

ルーター上の設定

 ルーターの機種によるけど、

 「スタティックIPマスカレード設定」で以下の設定を保存。

 設定番号 1

 有効/無効 有効

 プロトコル TCP

 インターネット側 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

 を設定。

 「スタート」「設定」「Windows ファイアウォール」で

 「詳細設定」タグ画面中の「ローカル エリア接続」を選択して

 「設定」ボタンをクリック。

 「詳細設定」ウインドウ中「サービス」タグ画面で

 「Webサーバー(HTTP)」にチェックして

 「編集」ボタンをクリック。

 現れた「サービス設定」ウインドウ内

 「ネットワークでこのサービスをホストしている

 コンピュータの名前 または IPアドレス」で

 自分のマシンのローカルIPである、

 192.168.0.100 を設定し「OK」ボタンをクリック。