|
|||||
1.1.PHPについて XAMPPと言うフリーのパッケージを使用しPHPの概要を調査しました。 PHP(PHP: Hypertext Preprocesserの略)は、eコマースサイトやその他のWebアプリケーションを作るためのオープンソース で提供されているサーバーサイドスクリプト言語です。 XAMPPとはApache、MySQL、PHP、Perl等のプログラム一式を簡単にインストールして使用出来るパッケージです。 インストーラ版とZIP圧縮版がありますが、今回はZIP圧縮版(xampp-win32-1.5.1.zip)を使用しました。 ZIP圧縮版のインストール方法は圧縮ファイルを解凍後、setup_xampp.batを実行するだけで基本的な設定が完了します。 同梱されている主なプログラムのバージョン: + Apache 2.2.0 + MySQL 5.0.18 + PHP 5.1.1 + PHP 4.4.1-pl1 + PEAR + SQLite 2.8.15 + その他(Perl等) PHPを起動する為には、PHP.iniの編集とIISとの連携を行なう必要があります。PHP.iniの編集としては主に以下の項目を 設定します。 include_path = ".;c:\xampp\php\includes;c:\xampp\php\PEAR" doc_root = "C:\Inetpub\wwwroot" extension_dir = "c:\xampp\php\ext" mbstring.internal_encoding = SJIS-win mbstring.http_input = SJIS-win,ASCII,JIS,UTF-8,SJIS,EUC-JP mbstring.http_output = SJIS-win mbstring.detect_order = SJIS-win,ASCII,JIS,UTF-8,SJIS,EUC-JP PHPとIISを連携させる為には、IISの「既定のWebサイト」の「アプリケーションの構成」に「アプリケーションのマッピング」 として拡張子(php)とC:\xampp\php\php5isapi.dllを関連付ける必要があります。 1.2.PHPとACTIVEXの連携について PHPとACTIVEXを連携させる方法はPHPで出力するHTMLにOBJECTタグを挿入する事により可能です。 コントロールの作成方法としては.NET用のコントロール(Managed)と.NETに依存しないACTIVEX(Unmanaged)として 作成する方法があります。 .NET用のコントロールは、VB.NET、C#.NET、VC.NETで作成する事が出来ます。 .NETに依存しないACTIVEXコントロールは、VB6、VC6、VC.NETで作成する事が出来ます。 (注意)ACTIVEXコントロールはVB.NETやC#.NETでは作成出来ません。 HTMLにOBJECTタグを挿入する例を以下に記述します。 (例1).NETのWindowsコントロールライブラリで作成したコントロールをWEBページに貼り付ける例 <OBJECT id="UserControl1" height="40" width="128" classid="/WebApplication1/WindowsControlLibrary1/bin/WindowsControlLibrary1.dll#WindowsControlLibrary1.UserControl1"> </OBJECT> (例2)ACTIVEXで作成したコントロールをWEBページに貼り付ける例 <OBJECT id="UserControl2" CLASSID="CLSID:58F47A9B-E8BD-4593-985B-1D2C5A416A63" CODEBASE="/WebApplication1/MyMFCActiveX/Debug/MyMFCActiveX.ocx"> </OBJECT> 今回の調査ではコントロールにパラメタを渡して起動する方法や、 コントロールからのイベントをIEのWebページ内のスクリプトで取得する方法を確認しました。 コントロールにパラメタを渡して起動する方法は、OBJECTタグにPARAMタグを挿入します。 (例) <PARAM NAME="FileName" VALUE="c:\temp"> コントロールからのイベントを取得する方法は、Webページ内のスクリプト(JavaScript等)にイベント発生時の処理を記述します。 (例) <SCRIPT LANGUAGE="JScript"> function Form1.UserControl1::ClickEvent(a){ Form1.TextBox1.value=a; } </SCRIPT> 1.3.SMARTYについて PHPでWebプログラミングを行なう際の基本的な方法は、PHPのプログラムの中にHTMLのコードを混在させて記述する方法です。 この方法はWebページのデザインを変更する際にHTMLだけでなくPHPのプログラムを変更しなければならず難しくなります。 SMARTYはPHPプログラムのテンプレートエンジンであり、SMARTYによってPHPプログラムとHTMLデザインを分離することができます。 これは、MVCと言うソフトウェアの設計モデルを実現するためにPHPに導入された技術です。 MVCとはソフトウェアの設計モデルの一つで、処理の中核を担う「Model」、表示・出力を司る「View」、 入力を受け取ってその内容に応じてViewとModelを制御する「Controller」の3要素の組み合わせでシステムを実装する方式です。 SMARTYはフリーのプログラムで、今回使用したファイルはSmarty-2.6.14.tar.tarです。 導入方法は解凍して出来たSmarty-2.6.14と言うフォルダをSmartyと言う名前に変更し、 PHPのincludeフォルダ(例:C:\xampp\php\includes)にコピーします。 PHP.iniファイルのinclude_pathにC:\xampp\php\includesが設定されている事を確認する必要があります。 プログラムの記述方法の例を以下に記述します。 <呼び出す側:PHPプログラム> $world=array('AAA','BBB','CCC','DDD'); require_once('Smarty/libs/Smarty.class.php'); $o_smarty=new Smarty(); $o_smarty->template_dir='C:/Inetpub/wwwroot/PHPTEST/sample1/tpl/templates'; $o_smarty->compile_dir='C:/Inetpub/wwwroot/PHPTEST/sample1/tpl/templates_c'; $o_smarty->assign('name',$world); $o_smarty->display('test03.tpl'); <呼び出される側:デザイン・テンプレート> <html> <head><title>{literal}Smartyの基本{/literal}</title></head> <body> {foreach from=$name item="it" key="ky"} {$it}<br> {/foreach} </body> </html> (注意)SMARTYの内部文字コードはEUCであるため、コンパイル時(文字コード変換処理時)に文字化けする事があります。 {literal}タグを使用する事により文字コードの変換を行なわなくする事が出来ます。 PHPの内部文字コードはPHP.iniで変更(標準ではEUC)する事が出来ますが、SMARTYでは変更出来ないようです。 PHPはEUCが基本であるため、全てのファイルをEUCで記述すると文字化けを防ぐ事が出来ます。 SJIS等を使用する際は、機種依存文字の文字化けに注意する必要があります。 |