من المستحيل محاكاة ASP.NET باستخدام PHP، خاصة بالنسبة للغة ديناميكية مثل PHP التي لا تتمتع بدعم كامل موجه للكائنات، بل إن الأمر أكثر صعوبة عندما أقول المحاكاة بهذه الكلمات، أعني أنه يمكن فهم ASP من خلال هذا المثال .آلية تشغيل .net (مرة أخرى، إنه مجرد نموذج). الكود بسيط جدًا، لا حاجة للتوضيح. يتم تشغيل هذا الاختبار على أنظمة التشغيل win2000 وiis5 وphp 4.4.0 من خلال
page.php
<?php.
/****************************************************** ***** *****************************
*فئات وظيفة Sinoprise
* حقوق الطبع والنشر (ج): 2006 مختبر تكنولوجيا سينوبرايز
*
*اسم الوحدة: page.php
*الوظيفة:
*الصندوق: شوغوانغ يين 15-07-2006
*************************************************************************************************************************************************************************** **********************************/
فئة SFC_Page
{
// متغيرات البيئة
/*فار $الخادم;
فار $ الجلسة؛
فار $QueryString;
فار $ بوست؛
فار $ ملف تعريف الارتباط؛
فار $الملفات؛
فار $Env;*/
// خصائص التحكم في الصفحة
فار $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؛
$Post = $HTTP_POST_VARS؛
ملف تعريف الارتباط $ = $HTTP_COOKIE_VARS؛
ملفات $ = $HTTP_POST_FILES؛
$Env = $HTTP_ENV_VARS؛
}*/
$this->EnableViewState = false;
}
// يحدث قبل استعادة حالة الخادم
وظيفةPageInit()
{
}
// يحدث بعد استعادة حالة الخادم، ولكن قبل الأحداث من جانب الخادم
وظيفة تحميل الصفحة ()
{
}
// يحدث بعد إطلاق الحدث من جانب الخادم، ولكن قبل إنشاء أي شيء
الدالة PagePreRender()
{
}
// يحدث عند إنشاء الصفحة
وظيفةPageRender()
{
}
// يحدث بعد إنشاء صفحة الويب
الدالة PageUnLoad()
{
}
// عرض الإخراج
عرض الوظيفة ()
{
$this->PageInit();
إذا ($هذا->EnableViewState){
$this->DeCodeViewState();
}
$this->PageLoad();
$this->PagePreRender();
echo "<html><title>".$this->PageTitle."</title>";
echo "<META http-equiv=محتوى نوع المحتوى="text/html;
echo "<body ".$this->PageStyle.">";
echo "<form name="SFC_WebForm" id="SFC_WebForm"method="post" action="".$_SERVER['PHP_SELF']."">";
$this->PageRender();
إذا ($هذا->EnableViewState){
$this->EnCodeViewState();
}
صدى "</form></body></html>";
$this->PageUnLoad();
}
// تحديد ما إذا كانت هذه هي المرة الأولى للفتح أو النشر
الدالة IsPostBack()
{
}
//تشفير حالة العرض
الدالة EnCodeViewState()
{
echo "<input type="hidden" name="SFC_ViewState" id="SFC_ViewState" ";
صدى "Value="".base64_encode(serialize($this).""";
صدى ">";
}
//فك تشفير حالة العرض
الدالة DeCodeViewState()
{
إذا (isset($_POST['SFC_ViewState'])){
$this = unserialize(base64_decode($_POST['SFC_ViewState']));
}
}
}
?>
ملف الصفحة،php.php
<؟
require_once('page.php');
يمتد فئة PhpTest إلى SFC_Page
{
فار $كونوت;
دالة PhpTest()
{
}
// يحدث قبل استعادة حالة الخادم
وظيفةPageInit()
{
}
// يحدث بعد استعادة حالة الخادم، ولكن قبل الأحداث من جانب الخادم
وظيفة تحميل الصفحة ()
{
}
// يحدث بعد إطلاق الحدث من جانب الخادم، ولكن قبل إنشاء أي شيء
الدالة PagePreRender()
{
}
// يحدث عند إنشاء الصفحة
دالة باجيريندر ()
{
echo ++$this->conut;
// تسلسل الصدى($this);
صدى "<br>";
echo "<نوع الإدخال=قيمة الإرسال="OOKK" name=hello>";
}
// يحدث بعد إنشاء صفحة الويب
الدالة PageUnLoad()
{
}
}
$cls = جديد PhpTest();
$cls->CharSet="gb2312";
$cls->PageTitle="عنوان الصفحة";
$cls->EnableViewState=true;
$cls->عرض();
?>