对比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