はまったあー

今 もう勉強中 それは、PHPの中でも非常に奥深い関数である、file_get_contents()についてなのです 正直この関数は security領域の境界をさまよう関数であるからでしょうか、インターネットの世界にも情報が非常に少ないのです

これまで Ajaxを用いて画面の書き換えを画面遷移せずに行う方法は存在しない、そのように誤解していましたが、この関数を用いればそんな魔法のようなことが可能となるのです

通常ブラウザでインターネットのあるページを見ている時、我々はリンクとか、ボタンとか押して次の画面に移ります ところが、この次の画面に移る = 画面遷移 する時には、ほとんどの場合 当然のことながら画面全体が書き換わります これは慣れれば当然のこととやり過ごしますし、まあ本のページをめくる、と思えば至極当然のことでしょう

しかし、そのことに満足しなのであれば、「何でいちいち画面全体書き換えるんだよ? 必要部分のみ書き換えればよいだろう?」という疑問に目覚めます

疑問、というのは人間が進歩する重大な動機の一つです これにより人間は次のステップに進むことができるのです

例えば想像して下さい、Ajaxの存在を広く世に知らしめた Google Map これは皆とても日頃お世話になっていますよね、このサービースが公開されるまで、インターネット上の地図ソフトでは、画面から外れたすぐ隣りの場所に移動するためにも、画面全体を書き換えていました ところが、Google Mapではスムーズに地図が移動していくのです 不思議と思いませんか?

この技術は Ajax (Asynchronous Javascript And Xml)という深い技術を用いて成し遂げれているのです ちなみに、Ajaxを使いやすくするために これまた広く普及したのが、jQueryというメタ言語です 実は僕もこの Ajax/jQueryを用いて色々なプログラムを書いていますので、理解はしています しかし、正直プログラムのデバグが非常に困難なのです これはやったことが無い人には分からないと思います 何しろ異次元を行ったり来たりするような感覚なのです

前置きはさておき、この Ajaxを用いねばならない、と誤解していたことが、何と file_get_contents()という関数を用いて行うことができるのです そして、そのテスト・プログラムを書いていてはまったのです それは 以下の2つの文の違いになかなか気づかなかった、ということです 皆様方も挑戦して下さい

 

プログラム A

	$context = stream_context_create(
		array(
			'http' => array(
				'method' => 'POST',
				'header' => implode(
					'\r\n',
					array(
						'Content-Type: application/x-www-form-urlencoded'
					)
				),
				'content' => http_build_query(
					array(
						'name' => $name,
						'msg' => $msg,
					)
				)
			)
		)
	); 

 

プログラム B

	$context = stream_context_create(
		array(
			'http' => array(
				'method' => 'POST',
				'header' => implode(
					'\r\n',
					array(
						'Content-Type: application/x-www-f0rm-urlencoded'
					)
				),
				'content' => http_build_query(
					array(
						'name' => $name,
						'msg' => $msg,
					)
				)
			)
		)
	); 

Aでは動作するのに、Bでは動作しないのです 「え、一体何が違うの?」 新幹線新横浜駅まで移動中のタクシーの中、ずっと悩みました そして、あと1分で新横浜駅到着、パソコン閉じねば、という時点で 「それはね oと0が間違っている」というご指摘を頂きました そうなのです o (=小文字のアルファベット オー)と 0 (=数字のゼロ)を間違って typingしていたのです

これで解決しました 実際の本体テスト・プログラムの掲載は帰りの新幹線の中でも行います とても良く file_get_contents()関数を理解できるものを掲載しますよ 乞うご期待

ということで、今朝は直接自宅から新横浜経由 – 名古屋駅 そして、名鉄特急に乗り換えて 岐阜県の可児市に出かけ、可児スレンダー・ライブデモンストレーションに参加します ライブ治療の後、お薬の講演があり、その後そのまま鎌倉に戻ります というのも、明日はまたまた朝から久しぶりのモスクワ入りだからです それにしても、file_get_contents()関数を少し理解したのがとても嬉しいですね 新しいステージに登った気分なのです

投稿者: (KAMAKURA & SAPPORO)Dr_Radialist

Expert Interventional Cardiologist and Amateur Computer Programmer

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です