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

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

1  输出。

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

php输出

echo $str ;

print $str;

print_r   str   ;

2  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

上一篇:JavaScript强化教程 - 六步实现贪食蛇


下一篇:解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HO问题