Php 笔记3-----php与 asp的等价关系

 对比asp.net 与 php的对比  ,有助于进一步理解 php。

1  输出。  

   asp.net 输出    Response.Write(str);    // 将string 写入到 服务器向浏览器的输出流。

   php输出  

   echo $str ;     

   print $str;    

   print_r   str   ;     

 

Form, Cookie,  QueryString 这些变量  在 asp.net 中  可以用 Request 访问 。 比较集中   多方便啊   ~~~~(>_<)~~~~ 。

   在 php中 ,  如果在PHP.in文件中这样配置  variables_order="EGPCS"register_globals=On  ,这些变量是自动的作为一个全局变量    

    如果variables_order="EGPCS"register_globals=OFF ,这样变量 仅仅在数组中使用,  :$HTTP_POST_VARS(相当于$_POST), $HTTP_COOKIE_VARS and $HTTP_GET_VARS(相当于_GET).  这些废品因为PHP5之后,php.in 默认是关闭的了所以,不能用了。

 

3 Cookie 处理

   asp.net      : Response.Cookies(cookiename) = newvalavar;     

                      newvalavar=Request.Cookies(cookiename);

   PHP  :          setcookie($cookiename, $newval);

                      $avar = $HTTP_COOKIE_VARS[$cookiename];

PHP程式當中有很多可以取得網頁資料的方法,舉例來說:
$_GET、$HTTP_GET_VARS:這個陣列儲存著從網址「?」之後的變數名稱與資料   
$_POST、$HTTP_POST_VARS:這個陣列儲存著表單用POST過來的資料   
$_SESSION、$HTTP_SESSION_VARS:這個陣列儲存著session變數   
$_COOKIE、$HTTP_COOKIE_VARS:這個陣列儲存著session變數   
$_FILES:這個陣列儲存著從表單上傳的檔案   
$_SERVER、$HTTP_SERVER_VARS:這個陣列儲存著伺服器與用戶端瀏覽器相關的環境變數

 

在PHP3和PHP4.1.0之前的版本,php.ini設定的register_globals = on,但在PHP5卻預設改成register_globals = off,這會導致$HTTP_GET_VARS等$HTTP_開頭的變數不能等同$_GET來使用,PHP4手冊也建議使用$_GET。我以前真的是錯很大。(狂汗)

 

要修正這個問題,最簡單的是把php.ini改成register_globals = on,但是很多時候寫程式的沒辦法碰到伺服器主機,所以可以用偷懶方法。例如在每個程式都會執行到的地方設: $HTTP_GET_VARS = $_GET; 或是認真一點,用Dreamweaver或者UltraEdit可以在多數檔案中搜尋與取代的功能,把$HTTP_GET_VARS換成$_GET。

http://www.360doc.com/content/09/0227/16/105968_2660537.shtml

 

   

  

posted on 2014-01-15 18:28  Top@Gragon  阅读(206)  评论(0编辑  收藏  举报

导航