Il est impossible de simuler ASP.NET avec PHP, surtout pour un langage dynamique comme PHP qui n'a pas un support orienté objet incomplet. Quand je parle de simulation avec ces mots, je veux dire qu'ASP peut être compris à travers cet exemple. . Le mécanisme de fonctionnement de .net (encore une fois, ce n'est qu'un modèle). Le code est très simple, pas besoin de développer. Ce test est exécuté sur win2000, iis5, php 4.4.0 via
page.php
<?php.
/*************************************************** ***** *****************************
*Classes de fonctions Sinoprise
*CopyRight(c):2006 Laboratoire technologique Sinoprise
*
*Nom de l'unité : page.php
*fonction :
*Caisse :Shuguang Yin 2006-07-15
************************************************** * *******************************/
classe SFC_Page
{
//variables d'environnement
/*var $Serveur;
var $Session ;
var $QueryString;
var $Post;
var $Cookie;
var $Fichiers ;
var $Env;*/
// Propriétés du contrôle de page
var $EnableViewState;
// Propriétés des pages
var $CharSet;//Jeu de caractères de page
var $PageTitle; //Le titre de la page
var $PageStyle;//Le style de la page
fonction SFC_Page()
{
/*if (strcmp(substr(PHP_VERSION,0,1),4)>=0){
$Serveur = $_SERVEUR ;
$Session = $_SESSION ;
$QueryString = $_GET ;
$Post = $_POST ;
$Cookie = $_COOKIE ;
$Fichiers = $_FILES ;
$Env = $_ENV;
}autre{
global $HTTP_SERVER_VARS,$HTTP_GET_VARS,$HTTP_POST_VARS,$HTTP_COOKIE_VARS,$HTTP_POST_FILES ;
global $HTTP_ENV_VARS,$HTTP_SESSION_VARS ;
$Serveur = $HTTP_SERVER_VARS ;
$Session = $HTTP_SESSION_VARS ;
$QueryString = $HTTP_GET_VARS ;
$Post = $HTTP_POST_VARS ;
$Cookie = $HTTP_COOKIE_VARS ;
$Fichiers = $HTTP_POST_FILES ;
$Env = $HTTP_ENV_VARS ;
}*/
$this->EnableViewState = false ;
}
// Se produit avant la restauration de l'état du serveur
fonctionPageInit()
{
}
// Se produit après la restauration de l'état du serveur, mais avant les événements côté serveur
fonction PageLoad()
{
}
// Se produit après le déclenchement de l'événement côté serveur, mais avant que quoi que ce soit ne soit généré
fonction PagePreRender()
{
}
// Se produit lorsque la page est générée
fonctionPageRender()
{
}
// Se produit après la génération de la page Web
fonction PageUnLoad()
{
}
//afficher la sortie
fonction Affichage()
{
$this->PageInit();
si ($this->EnableViewState){
$this->DeCodeViewState();
}
$this->PageLoad();
$this->PagePreRender();
echo "<html><titre>".$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();
si ($this->EnableViewState){
$this->EnCodeViewState();
}
echo "</form></body></html>";
$this->PageUnLoad();
}
//Déterminer si c'est la première fois que vous ouvrez ou publiez
fonction IsPostBack()
{
}
//Encoder ViewState
fonction EnCodeViewState()
{
echo "<input type="hidden" name="SFC_ViewState" id="SFC_ViewState" ";
echo "Value="".base64_encode(serialize($this)).""";
écho ">" ;
}
//Décoder ViewState
fonction DeCodeViewState()
{
if (isset($_POST['SFC_ViewState'])){
$this = unserialize(base64_decode($_POST['SFC_ViewState']));
}
}
}
?>
Fichier d'échange, php.php
<?
require_once('page.php');
la classe PhpTest étend SFC_Page
{
var $conut;
fonctionPhpTest()
{
}
// Se produit avant la restauration de l'état du serveur
fonctionPageInit()
{
}
// Se produit après la restauration de l'état du serveur, mais avant les événements côté serveur
fonction PageLoad()
{
}
// Se produit après le déclenchement de l'événement côté serveur, mais avant que quoi que ce soit ne soit généré
fonction PagePreRender()
{
}
// Se produit lorsque la page est générée
fonctionPageRender()
{
echo ++$this->conut;
//echo sérialiser($this);
écho "<br>" ;
echo "<input type=submit value="OOKK" name=hello>";
}
// Se produit après la génération de la page Web
fonction PageUnLoad()
{
}
}
$cls = nouveau PhpTest();
$cls->CharSet="gb2312";
$cls->PageTitle="Titre de la page";
$cls->EnableViewState=true ;
$cls->Affichage();
?>
Rétrolien : http://tb.blog.csdn.net/TrackBack.aspx?PostId=932084