#native_company# #native_desc#
#native_cta#

ASP Objects Simulated In PHP

By Michael Ferrini
on June 24, 2001

Version: 1.0

Type: Class

Category: Other

License: GNU General Public License

Description: This is a simulation of many of the ASP objects, using PHP classes. Unfortunately, not every object nor property / method could be simulated. For the most part, many ASP properties could only be simulated as Methods.

Below Are The Objects I could Simulate:

Response Object
Buffer(boolean)
CacheControl(boolean)
ContentType(string)
Expires(date)
Flush()
IsClientConnected()
Redirect(url)
Write(string)

Request
Form
QueryString
ServerVariables

Form (Instantiated Through Request Object)
Count
Index
Item
Key

QueryString (Instantiated Through Request Object)
Count
Index
Item
Key

Server
CreateObject(class)
HTMLEncode(string)
MapPath(filename)
ScriptTimeout(seconds)
URLEncode(string)

Session
Value(variable name)
SessionID[index]
Contents[variable name]
Index[index]
Abandon()

Please Note:
The objects have to be invoked with PHP rules.

Finally:
Feel free to update this library, hence that I only created this library as a learning experience. This library helped me comfortably port from being an ASP developer to a PHP programmer.

<?php
/* 
CONTACT ME AT [email protected] IF YOU WOULD LIKE TO ELABORATE ON THIS
COMPONENT */

Class Response
{
 // Buffer Method
 function Buffer($blnValue){
   if($blnValue){
     ob_start();
   }
   else{
     ob_end_flush();
   }
 }
 // CacheControl Method
 function CacheControl($blnValue){
   switch($blnValue){
     case 0:
       header ("Pragma: no-cache");
       break;
     case 1:
       break;
   }
 }

 // ContentType Method
 function ContentType($strValue){
   header("Content-Type: $strValue");
 }

 // Expires Method
 function Expires($strValue){
   if(checkdate($strValue)){
     header ("Expires: $strValue");
   }
   else{
     return 1;
   }
 }

 // Flush Method
 function flush(){
   flush();
 }

 // IsClientConnected Method
 function IsClientConnected(){
   if(connection_aborted()){
      return true;
   }
   else{
      return false;
   }
 }

 // Redirect Method
 function Redirect($strURL){
   header("Location: $strURL");
   exit;
 }

 // Write Method
 function Write($strExpression){
   print $strExpression;
 }
}

// Initialize Response Object
$Response = New Response;

Class Form
{
  var $Count;
  var $Index;
  var $Item;
  var $Key;

  // Form Constructor
  function Form(){
    Global $HTTP_POST_VARS;
    if(isset($HTTP_POST_VARS)){
     # Set Item Property Associative Array
     $this->Item = $HTTP_POST_VARS;
     $FORM =  $HTTP_POST_VARS;
     $iCount = 0;
     foreach($FORM As $F){
       # Set Index Property Array
       $this->Index[$iCount] = $F;
       $iCount++;
     }
     # Set Keys Property Array
     $this->Key = array_keys($FORM);

     # Set Count Property
     $this->Count = Count($FORM);
    }
  }
}

Class QueryString
{
  var $Count;
  var $Index;
  var $Item;
  var $Key;

  // QueryString Constructor
  function QueryString(){
    Global $HTTP_GET_VARS;
    if(isset($HTTP_GET_VARS)){
     # Set Item Property Associative Array
     $this->Item = $HTTP_GET_VARS;
     $QS =  $HTTP_GET_VARS;
     $iCount = 0;
     foreach($QS As $Q){
       # Set Index Property Array
       $this->Index[$iCount] = $Q;
       $iCount++;
     }
     # Set Keys Property Array
     $this->Key = array_keys($QS);

     # Set Count Property
     $this->Count = Count($QS);
    }
  }
}

class Request
{
 var $Form;
 var $QueryString;
 var $ServerVariables;
 // Request Constructor
 function Request(){
  Global $HTTP_SERVER_VARS;
  $this->Form = new Form;
  $this->QueryString = new QueryString;
  $this->ServerVariables = $HTTP_SERVER_VARS;
 }
}

// Initialize Request Object
$Request = new Request;

class Server
{
  # CreateObject Method
  function CreateObject($strClassString){
    $oCOM = new COM($strClassString);
    return $oCOM;
 }

 # HTMLEncode Method
 function HTMLEncode($strHTMLExpression){
   return htmlentities($strHTMLExpression);
 }

 # MapPath Method
 function MapPath($strFileName){
   return realpath($strFileName);
 }

 # ScriptTimeout Method
 function ScriptTimeout($iSeconds){
   return set_time_limit($iSeconds);
 }

 #URLEncode Method
 function URLEncode($strURLExpression){
   return urlencode($strURLExpression);
 }
}

// Initialize Server Object
$Server = new Server;

class sessionVar
{
  var $SessionID;
  var $Contents;
  var $Count;
  var $Index;

  // sessionVar Constructor
  function sessionVar(){
    session_start();
  }

  # Value Method
  function Value($varName){
    static $iCount;
    if(isset($iCount) == false){
      $iCount = 0;
    }
    $this->Contents[$varName] = session_register($varName);
    $this->SessionID[$varName] = session_id($varName);
    $this->Index[$iCount] = session_register($varName);

    $iCount++;
    $this->Count = $iCount;
  }

  # Abandon Method
  function Abandon(){
    session_unset();
  }
}
$Session = new sessionVar;


?>