Es ist unmöglich, ASP.NET mit PHP zu simulieren, insbesondere für eine dynamische Sprache wie PHP, die über unvollständige objektorientierte Unterstützung verfügt. Wenn ich mit diesen Worten Simulation sage, meine ich, dass ASP anhand dieses Beispiels verstanden werden kann . Der Funktionsmechanismus von .net (auch hier handelt es sich nur um ein Modell). Dieser Test wird unter win2000, iis5, php 4.4.0 bis
page.php
ausgeführt
/***************************************************** ***** ******************************
*Sinoprise-Funktionsklassen
*CopyRight(c):2006 Sinoprise Technology Lab
*
*Einheitenname: page.php
*Funktion:
*Kiste:Shuguang Yin 15.07.2006
************************************************** * *******************************/
Klasse SFC_Page
{
//Umgebungsvariablen
/*var $Server;
var $Session;
var $QueryString;
var $Post;
var $Cookie;
var $Files;
var $Env;*/
//Eigenschaften der Seitensteuerung
var $EnableViewState;
//Seiteneigenschaften
var $CharSet;//Seitenzeichensatz
var $PageTitle; //Der Titel der Seite
var $PageStyle;//Der Stil der Seite
Funktion SFC_Page()
{
/*if (strcmp(substr(PHP_VERSION,0,1),4)>=0){
$Server = $_SERVER;
$Session = $_SESSION;
$QueryString = $_GET;
$Post = $_POST;
$Cookie = $_COOKIE;
$Files = $_FILES;
$Env = $_ENV;
}anders{
global $HTTP_SERVER_VARS,$HTTP_GET_VARS,$HTTP_POST_VARS,$HTTP_COOKIE_VARS,$HTTP_POST_FILES;
global $HTTP_ENV_VARS,$HTTP_SESSION_VARS;
$Server = $HTTP_SERVER_VARS;
$Session = $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;
}
//Tritt auf, bevor der Serverstatus wiederhergestellt wird
functionPageInit()
{
}
//Tritt auf, nachdem der Serverstatus wiederhergestellt wurde, aber vor serverseitigen Ereignissen
Funktion PageLoad()
{
}
//Tritt auf, nachdem das serverseitige Ereignis ausgelöst wurde, aber bevor etwas generiert wird
Funktion PagePreRender()
{
}
// Tritt auf, wenn die Seite generiert wird
functionPageRender()
{
}
//Tritt auf, nachdem die Webseite generiert wurde
Funktion PageUnLoad()
{
}
//Ausgabe anzeigen
Funktion 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();
}
echo "</form></body></html>";
$this->PageUnLoad();
}
//Bestimmen Sie, ob es das erste Mal ist, dass es geöffnet oder gepostet wird
Funktion IsPostBack()
{
}
//ViewState kodieren
Funktion EnCodeViewState()
{
echo "<input type="hidden" name="SFC_ViewState" id="SFC_ViewState" ";
echo "Value="".base64_encode(serialize($this)).""";
echo ">";
}
//ViewState dekodieren
Funktion DeCodeViewState()
{
if (isset($_POST['SFC_ViewState'])){
$this = unserialize(base64_decode($_POST['SFC_ViewState']));
}
}
}
?>
Seitendatei,php.php
<?
require_once('page.php');
Die Klasse PHPTest erweitert SFC_Page
{
var $conut;
FunktionPhpTest()
{
}
//Tritt auf, bevor der Serverstatus wiederhergestellt wird
functionPageInit()
{
}
//Tritt auf, nachdem der Serverstatus wiederhergestellt wurde, aber vor serverseitigen Ereignissen
Funktion PageLoad()
{
}
//Tritt auf, nachdem das serverseitige Ereignis ausgelöst wurde, aber bevor etwas generiert wird
Funktion PagePreRender()
{
}
// Tritt auf, wenn die Seite generiert wird
functionPageRender()
{
echo ++$this->conut;
//echo serialize($this);
echo „<br>“;
echo "<input type=submit value="OOKK" name=hello>";
}
//Tritt auf, nachdem die Webseite generiert wurde
Funktion PageUnLoad()
{
}
}
$cls = new PHPTest();
$cls->CharSet="gb2312";
$cls->PageTitle="Titel der Seite";
$cls->EnableViewState=true;
$cls->Display();
?>
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=932084