PHP로 ASP.NET을 시뮬레이션하는 것은 불가능하며, 특히 객체 지향 지원이 불완전한 PHP와 같은 동적 언어의 경우 더욱 어렵습니다. .net의 작동 메커니즘(다시 말하지만 이는 단지 모델일 뿐입니다) 코드는 매우 간단하므로 자세히 설명할 필요가 없습니다. 이 테스트는
page.php
<?php를
통해 win2000, iis5, php 4.4.0에서 실행됩니다.
/**************************************************** ***** ******************************
*Sinoprise 함수 클래스
*CopyRight(c):2006 Sinoprise 기술 연구소
*
*유닛 이름: page.php
*기능:
*상자:수광인 2006-07-15
************************************************** * *******************************/
클래스 SFC_Page
{
//환경변수
/*var $Server;
var $세션;
var $QueryString;
var $포스트;
var $쿠키;
var $파일;
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;
$쿠키 = $_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;
$포스트 = $HTTP_POST_VARS;
$쿠키 = $HTTP_COOKIE_VARS;
$파일 = $HTTP_POST_FILES;
$Env = $HTTP_ENV_VARS;
}*/
$this->EnableViewState = 거짓;
}
//서버 상태가 복원되기 전에 발생합니다.
함수페이지Init()
{
}
//서버 상태가 복원된 후, 서버 측 이벤트 이전에 발생합니다.
함수 페이지로드()
{
}
//서버 측 이벤트가 발생한 후 발생하지만 아무것도 생성되기 전에 발생합니다.
함수 PagePreRender()
{
}
//페이지가 생성될 때 발생
함수페이지렌더()
{
}
//웹페이지 생성 후 발생
함수 PageUnLoad()
{
}
//출력 표시
함수 표시()
{
$this->PageInit();
if ($this->EnableViewState){
$this->DeCodeViewState();
}
$this->페이지로드();
$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 "<양식 이름="SFC_WebForm" id="SFC_WebForm" 방법="post" 작업="".$_SERVER['PHP_SELF']."">";
$this->PageRender();
if ($this->EnableViewState){
$this->EnCodeViewState();
}
echo "</form></body></html>";
$this->PageUnLoad();
}
//첫번째 오픈인지 포스팅인지 판단
함수 IsPostBack()
{
}
//ViewState 인코딩
함수 EnCodeViewState()
{
echo "<입력 유형="숨겨진" 이름="SFC_ViewState" id="SFC_ViewState" ";
echo "값="".base64_encode(serialize($this)).""";
에코 ">";
}
//ViewState 디코딩
함수 DeCodeViewState()
{
if (isset($_POST['SFC_ViewState'])){
$this = unserialize(base64_decode($_POST['SFC_ViewState']));
}
}
}
?>
페이지 파일,php.php
<?
require_once('page.php');
PhpTest 클래스는 SFC_Page를 확장합니다.
{
var $conut;
함수PhpTest()
{
}
//서버 상태가 복원되기 전에 발생합니다.
함수페이지Init()
{
}
//서버 상태가 복원된 후, 서버 측 이벤트 이전에 발생합니다.
함수 페이지로드()
{
}
//서버 측 이벤트가 발생한 후 발생하지만 아무것도 생성되기 전에 발생합니다.
함수 PagePreRender()
{
}
//페이지가 생성될 때 발생
함수페이지렌더()
{
echo ++$this->conut;
//에코 직렬화($this);
에코 "<br>";
echo "<입력 유형=제출 값="OOKK" 이름=hello>";
}
//웹페이지 생성 후 발생
함수 PageUnLoad()
{
}
}
$cls = 새로운 PhpTest();
$cls->CharSet="gb2312";
$cls->PageTitle="페이지 제목";
$cls->EnableViewState=true;
$cls->디스플레이();
?>