首页 > 开发 > PHP > 正文

用Php模拟asp.net的页面模型

2024-05-04 23:03:56
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 用php模拟asp.net是不大可能的,特别是对于php这样的对面向对象支持不完整的动态语言来讲,更是很大的困难.在这些说模拟是说可以由这个例子来理解asp.net的运行机制(又说深了,他仅仅是一个模以而以) .代码很简单,无需细说,本测试在win2000,iis5,php 4.4.0上运行通过

    page.php

    <?php
    /*********************************************
    *sinoprise function classes
    *copyright(c):2006 sinoprise technology lab
    *
    *unit name: page.php
    *func:
    *crate:shuguang yin 2006-07-15
    *********************************************/
     class sfc_page
     {
         
         //环境变量
         /*var $server; 
           var $session;
           var $querystring;
           var $post;
           var $cookie;
           var $files;
           var $env;*/
     
      //页面控制属性
      var $enableviewstate;
     
      //页面属性
      var $charset;//页面字符集
      var $pagetitle;//页面的标题
      var $pagestyle;//页面的风格
     
      function 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;


       }else{


        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; 

      }
      //发生在服务器状态还原之前
      function pageinit()
      {
      }

      //发生在服务器状态还原之后,但在服务器端事件之前
      function pageload()
      {
      }

      //发生在激发服务器端事件之后,但在生成任何东西之前
      function pageprerender()
      {
      }

      //发生在生成页面之时
      function pagerender()
      {
      }

      //发生在网页生成完成之后
      function pageunload()
      {
      }

      //显示输出
      function 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();

      }
     
      //判断是第一次打开还是post
      function ispostback()
      {
      
      }
      //对viewstate进行编码
      function encodeviewstate()
      {
                         echo "<input type=/"hidden/" name=/"sfc_viewstate/" id=/"sfc_viewstate/" ";
                        echo "value=/"".base64_encode(serialize($this))."/"";
                         echo ">";
      }
      //对viewstate进行解码
      function decodeviewstate()
      {
                   if (isset($_post['sfc_viewstate'])){
                                    $this = unserialize(base64_decode($_post['sfc_viewstate']));
                     }
      }
     }
    ?>

    页面文件,php.php

    <?
     require_once('page.php');
     
     class phptest extends sfc_page
     {
      var $conut;
     
      function phptest()
      {
     
      }
      //发生在服务器状态还原之前
      function pageinit()
      {
      }
     
      //发生在服务器状态还原之后,但在服务器端事件之前
      function pageload()
      {
      }
     
      //发生在激发服务器端事件之后,但在生成任何东西之前
      function pageprerender()
      {
      }
     
      //发生在生成页面之时
      function pagerender()
      {
                echo ++$this->conut;  
                //echo serialize($this);
                 echo "<br>";
                 echo "<input type=submit value=/"ookk/" name=hello>";
      }
     
      //发生在网页生成完成之后
      function pageunload()
      {
      } 
     }
     
     $cls = new phptest();
     $cls->charset="gb2312";
     $cls->pagetitle="页面的标题";
     $cls->enableviewstate=true;
     $cls->display();
    ?>

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表