不完全燃焼ってことは、コーディングが楽ってこと?しかも、最終呼び出しPHPはどのファイルもほとんど同じになります。最終PHPでhtml作成をする方法ももちろんあります。以前にも感じていましたが、オブジェクト指向でコーディングするのって、手続型より設計が大切です。構造を把握しておかないと、自分でわけがわからなくなりそうです。数日前から始めた、オブジェクト指向の勉強ですが、やっぱり理屈は分かってもなかなかどうコーディングすれば便利がよくなるのかわかりません。やってみて勉強しようと思っていたのですが、やっぱり効率が悪いので、なにかよい参考サイトはないかと探してみました。すると、さすがはインターネット、ありました。オブジェクト指向PHP.NET理屈だけでなく、実際にどう作ったらよいかがわかります。本当に自分のものにするためには、作ってみないといけないことにはかわりませんが、かなり試行錯誤を減らしてくれそうなサイトです。コメントTop↑PHPコーディング変数の参照2010年11月12日PHPでオブジェクト指向を勉強し始めましたが、やっぱり自分でやってみないと実感がわきません。理屈は書かれていることを読めばわかります。オブジェクト指向の利点がいくつか書かれていますが、実際どうやって使ったら便利がいいのか、どう手間が省けるのかがさっぱり・・・ということで、とにかく書いて書いて書いてみることにしました。htmlのヘッダや左メニューなど、各ページで共通なhtmlを関数化して使っていたのですが、これをいじることに。今まではオブジェクトのようで不完全なオブジェクトもどきだったので、もうちょっとちゃんとしたオブジェクトにすることに挑戦です。左メニューはDBに登録されています。DBから必要なデータを取得して、階層メニューに編集します。DBからデータを引っ張る部分は今まで手続き型の関数でした。これをクラスのメソッドに変更。DBのデータはクラス内の変数(言い方があるのだけど、何だっけ)に格納しておきます。同じように階層メニューも手続き型関数だったのをメソッドに変更。手続き型の関数では、変数を引数でやり取りするか、global宣言しないといけませんでしたが、オブジェクト指向でコーディングするとそんな必要はなく、クラス内で変数は保持されています。これが、手続き型関数では長々と引数を設定しなければいけない地獄だ、ということなんでしょうか。手続き型に慣れている私としては、ちょっと不安に感じてしまいます。データはどこだ!!?って感じです。コーディングしてみたので、まだまだ便利に組めてないのでしょうけれど、ちょっとやっただけでも違いがわかりました。以前から勉強しようと思っていた、オブジェクト指向。ソフトのバージョンアップも落ち着いたし、サンプルソースもオブジェクト指向でかかれたものもあるし、SOHOで仕事を探し始めたし、これを機に勉強しようと思い立ちました。概念は、何年か前に派遣の仕事でVB.NETを使ったとき理解しています。その後派遣先の会社が変わり、Webの開発でPHPを使うようになりました。その会社ではPHP4を使っていたので、中途半端なオブジェクト指向で書かれていたようです。このときから先に進んでいないので、この辺りで新しい知識を入れようと思います。PHP5は完全オブジェクト指向言語だそうです。主流がPHP5になった今、勉強しどきです。手続指向に慣れているとオブジェクト指向は難しいようですが、オブジェクト指向に慣れると手放せなくなるほど便利に感じるという記事を励みに頑張りたいと思います。言っても、概念を思い出しながら、そしてPHP特有の仕様と戦いながらの勉強です。派遣でVB.NETを使っていたときは、作ってあるクラスを使う側だったので、クラスを作るのは初めてです。はじめよう、PHPでオブジェクト指向この辺りが初めは参考になると思われます。自分のサイトのPHPをオブジェクト指向に書き換えて勉強しようと思います。コメントTop↑PHPコーディングfile_get_contents関数は負荷が大きいのか?2010年09月30日PHPver.4.3から追加された【file_get_contents】関数。ファイルの全内容を変数に取得する関数です。この関数のサーバーへの負荷が大きいのか、サーバーによってはファイルの全内容が取得できず、途中切れになっているようなのです。【PayPalオートメール】のユーザーさんから、メール本文のファイルが全て読み込まれていない、との連絡を受けました。私のサーバーではそんなことは全く起こりません。いうことは、サーバーの問題と思われます。メール文を短くしたら、全て読み込まれたそうなので、おそらく関数のせいでしょう。インターネットであちこち調べたのですが、【file_get_contents】がサーバーに大きな負荷を与えるという、はっきりとした記述は見つけられませんでしたが、そうかもしれないね、という記述はありました。そんなに大きなファイルではないのですが、安いプランの場合、サーバーへの負荷が大きく制限されてい場合もあると思われます。ユーザーさんには、関数を書き換えてみたので、落ち着いたら試してみていただきたいと連絡しておきました。いうことは、【file_put_contents】関数もかな。【fopen】【fgets】【fwrite】【fclose】などの関数を使った従来の方式の方がいいのでしょうか。サーバーへの負荷の具合を調べられるはずなので、方法を調べてみようかな。【PayPalで楽アフィリエイト】をUTF-8のメール送信に対応させました。それに伴って他の部分のソースをいじったついでに、もっとよいものに書き換えました。テキストファイルへのリンクを開いたとき、ブラウザへファイルの内容を表示させるソースです。通常テキストファイルへリンクをはるだけでブラウザにファイル内容が表示されますが、表示する前にちょとプログラムを実行した後、表示させたいので普通にタグでリンクさせたのでは表示されません。filesize($file_path));readfile($file_path);でOKです。【inline】を【attachment】にすると、ダウンロードダイアログが表示されます。作成したツールで文字化けが起こっているとの連絡を受けました。私が契約しているサーバーでは、全く問題なく動作しています。調べると、あるサーバーでその現象が起こっていることがわかりました。詳しく調べると、【fgetcsv】関数がファイルから文字を読み込む際、文字化けを起こしていることがわかりました。ネットで調べると、この問題に引っかかっている方もたくさんいらっしゃるようです。あちこちに書き込みがあります。PHPのバージョンアップの際、関数の仕様が変更になったようです。いう基本的な関数の仕様を変更されると、痛いです。調べると、更にバージョンの高いPHPではこの現象は起こっていません。いうことは、仕様がまた変更になったということのようです。要は特定のバージョンのPHPでのみ起こる現象、ということです。csvで囲み文字を使っている場合、問題なく動作するようです。csvの本来の形式って確か、項目の値を囲まないはずでは???回避方法としては、ファイルからはシンプルに文字列を読み込んで、あとは自分で処理すればいいようです。前からいつか書き直そうと思っていた部分なので、ついでに書き直します。正規表現を使う方法や、ファイル全体をそのまま読み込む方法もありますが、私が取った方法です。【fgets】関数で、ファイルを1行ずつ読み込み。