Невозможно смоделировать ASP.NET с помощью PHP, особенно для такого динамического языка, как PHP, который имеет неполную объектно-ориентированную поддержку. Когда я говорю «моделирование», я имею в виду, что ASP можно понять с помощью этого примера. Механизм работы .net (опять же, это всего лишь модель). Код очень прост, нет необходимости вдаваться в подробности. Этот тест выполняется на win2000, iis5, php 4.4.0 через
page.php
<?php.
/*************************************************** ***** ******************************
*Функциональные классы Sinoprise
*CopyRight(c): Технологическая лаборатория Sinoprise, 2006 г.
*
*Имя модуля: page.php
*функция:
*Ящик: Шугуан Инь 15 июля 2006 г.
************************************************* * *******************************/
класс SFC_Page
{
//переменные среды
/*вар $Server;
вар $Session;
вар $QueryString;
вар $Post;
вар $Cookie;
вар $Files;
вар $Env;*/
//Свойства элемента управления страницей
вар $EnableViewState;
//Свойства страницы
var $CharSet;//Набор символов страницы
var $PageTitle; //Заголовок страницы;
var $PageStyle;//Стиль страницы
функция SFC_Page()
{
/*if (strcmp(substr(PHP_VERSION,0,1),4)>=0){
$Сервер = $_СЕРВЕР;
$Сессия = $_SESSION;
$QueryString = $_GET;
$Пост = $_POST;
$Cookie = $_COOKIE;
$Files = $_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;
$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 = ложь;
}
//Происходит до восстановления состояния сервера
функцияPageInit()
{
}
//Происходит после восстановления состояния сервера, но до событий на стороне сервера
функция PageLoad()
{
}
//Происходит после запуска события на стороне сервера, но до того, как что-либо будет сгенерировано
функция PagePreRender()
{
}
//Происходит при создании страницы
функцияPageRender()
{
}
//Происходит после создания веб-страницы
функция PageUnLoad()
{
}
//выводим вывод
функция Дисплей()
{
$this->PageInit();
если ($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" метод="post" action="".$_SERVER['PHP_SELF']."">";
$this->PageRender();
если ($this->EnableViewState){
$this->EnCodeViewState();
}
echo "</form></body></html>";
$this->PageUnLoad();
}
//Определяем, открывается ли это в первый раз или публикуется
функция IsPostBack()
{
}
//Кодируем состояние представления
функция EnCodeViewState()
{
echo "<input type="hidden" name="SFC_ViewState" id="SFC_ViewState" ";
echo "Value="".base64_encode(serialize($this).""";
эхо ">";
}
//Декодируем ViewState
функция Декодевиевстате()
{
если (isset($_POST['SFC_ViewState'])){
$this = unserialize(base64_decode($_POST['SFC_ViewState']));
}
}
}
?>
Файл страницы,php.php
<?
require_once('page.php');
класс PhpTest расширяет SFC_Page
{
вар $conut;
функцияPhpTest()
{
}
//Происходит до восстановления состояния сервера
функцияPageInit()
{
}
//Происходит после восстановления состояния сервера, но до событий на стороне сервера
функция PageLoad()
{
}
//Происходит после запуска события на стороне сервера, но до того, как что-либо будет сгенерировано
функция PagePreRender()
{
}
//Происходит при создании страницы
функцияPageRender()
{
эхо ++$this->conut;
//эхо-сериализация($this);
эхо "<br>";
echo "<input type=submit value="OOKK" name=hello>";
}
//Происходит после создания веб-страницы
функция PageUnLoad()
{
}
}
$cls = новый PhpTest();
$cls->CharSet="gb2312";
$cls->PageTitle="Название страницы";
$cls->EnableViewState=true;
$cls->Дисплей();
?>
Обратная связь: http://tb.blog.csdn.net/TrackBack.aspx?PostId=932084.