PHP で ASP.NET をシミュレートすることは不可能です。特に、オブジェクト指向サポートが不完全な PHP の場合はさらに困難です。これは、この例を通じて ASP を理解できることを意味します。 .net の動作メカニズム (繰り返しになりますが、これは単なるモデルです)。このテストは、win2000、iis5、php 4.4.0 で実行され
ます
。
/************************************************ ***** *****************************
*Sinoprise 関数クラス
*著作権(c):2006 Sinoprise Technology Lab
*
※ユニット名:page.php
*機能:
*木箱:曙光陰 2006-07-15
************************************************* * *******************************/
クラスSFC_ページ
{
//環境変数
/*var $サーバー;
var $Session;
var $QueryString;
var $Post;
var $Cookie;
var $Files;
var $Env;*/
//ページコントロールのプロパティ
var $EnableViewState;
//ページのプロパティ
var $CharSet;//ページ文字セット
var $PageTitle //ページのタイトル;
var $PageStyle;//ページのスタイル
関数 SFC_Page()
{
/*if (strcmp(substr(PHP_VERSION,0,1),4)>=0){
$サーバー = $_SERVER;
$セッション = $_SESSION;
$QueryString = $_GET;
$Post = $_POST;
$Cookie = $_COOKIE;
$ファイル = $_FILES;
$Env = $_ENV;
}それ以外{
グローバル $HTTP_SERVER_VARS、$HTTP_GET_VARS、$HTTP_POST_VARS、$HTTP_COOKIE_VARS、$HTTP_POST_FILES;
グローバル $HTTP_ENV_VARS,$HTTP_SESSION_VARS;
$サーバー = $HTTP_SERVER_VARS;
$セッション = $HTTP_SESSION_VARS;
$QueryString = $HTTP_GET_VARS;
$Post = $HTTP_POST_VARS;
$Cookie = $HTTP_COOKIE_VARS;
$Files = $HTTP_POST_FILES;
$Env = $HTTP_ENV_VARS;
}*/
$this->EnableViewState = false;
}
//サーバーの状態が復元される前に発生します
functionPageInit()
{
}
//サーバーの状態が復元された後、サーバー側のイベントの前に発生します。
関数 PageLoad()
{
}
//サーバー側イベントが発生した後、何かが生成される前に発生します。
関数 PagePreRender()
{
}
// ページの生成時に発生します
functionPageRender()
{
}
// Web ページの生成後に発生します
関数 PageUnLoad()
{
}
//出力を表示する
関数 Display()
{
$this->PageInit();
if ($this->EnableViewState){
$this->DeCodeViewState();
}
$this->PageLoad();
$this->PagePreRender();
echo "<html><title>".$this->PageTitle."</title>";
echo "<META http-equiv=Content-Type content="text/html charset=".$this->CharSet."">";
echo "<body ".$this->PageStyle.">";
echo "<form name="SFC_WebForm" id="SFC_WebForm" method="post" action="".$_SERVER['PHP_SELF']."">";
$this->PageRender();
if ($this->EnableViewState){
$this->EnCodeViewState();
}
エコー "</form></body></html>";
$this->PageUnLoad();
}
//初めて開くか、初めて投稿するかを判断します
関数 IsPostBack()
{
}
//ビューステートをエンコードする
関数 EnCodeViewState()
{
echo "<input type="hidden" name="SFC_ViewState" id="SFC_ViewState" ";
echo "Value="".base64_encode(serialize($this)).""";
エコー">";
}
//ビューステートをデコードします
関数 DeCodeViewState()
{
if (isset($_POST['SFC_ViewState'])){
$this = unserialize(base64_decode($_POST['SFC_ViewState']));
}
}
}
?>
ページファイル、php.php
<?
require_once('page.php');
クラス PhpTest は SFC_Page を拡張します
{
var $conut;
functionPhpTest()
{
}
//サーバーの状態が復元される前に発生します
functionPageInit()
{
}
//サーバーの状態が復元された後、サーバー側のイベントの前に発生します。
関数 PageLoad()
{
}
//サーバー側イベントが発生した後、何かが生成される前に発生します。
関数 PagePreRender()
{
}
// ページの生成時に発生します
functionPageRender()
{
エコー ++$this->conut;
//エコーシリアル化($this);
エコー「<br>」;
echo "<input type=submit value="OOKK" name=hello>";
}
// Web ページの生成後に発生します
関数 PageUnLoad()
{
}
}
$cls = 新しい PhpTest();
$cls->CharSet="gb2312";
$cls->PageTitle="ページのタイトル";
$cls->EnableViewState=true;
$cls->Display();
?>
トラックバック: http://tb.blog.csdn.net/TrackBack.aspx?PostId=932084