歡迎來到雙子樹教育網(wǎng)!
阿克蘇
切換分站
雙子樹教育網(wǎng) > 阿克蘇新聞資訊 > 阿克蘇計算機(jī)/IT資訊 > 阿克蘇PHP動態(tài) >  PHP初學(xué)者的困惑的10個知識點(PHP零基礎(chǔ)入門)

PHP初學(xué)者的困惑的10個知識點(PHP零基礎(chǔ)入門)

發(fā)布時間:2022-06-13 23:58:44  來源:雙子樹教育網(wǎng)   瀏覽:   【】【】【

【1】頁面之間無法傳遞變量 get,post,session在最新的php版本中自動全局變量是關(guān)閉的,所以要從上一頁面取得提交過來得變量要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']來得到。當(dāng)然也可以修改自動全局變量為開(php.ini改為register_globals = On);考慮到兼容性,還是強(qiáng)迫自己熟悉新的寫法比較好。

注:PHP中的超全局變量

從PHP 4.2.0 開始,register_globals 的默認(rèn)值為 off,這樣一來,以前的很多可以直接使用的變量,如 $PHP_SELF 或者你設(shè)定的SESSION變量都不能用 “$變量名”的形式訪問了,這可能會給你帶來很多不變,但卻有助于安全性的提高。訪問這些變量,你需要使用PHP 超全局變量,如下:

$_SERVER

變量由 Web 服務(wù)器設(shè)定或者直接與當(dāng)前腳本的執(zhí)行環(huán)境相關(guān)聯(lián)。類似于舊數(shù)組 $HTTP_SERVER_VARS 數(shù)組。以前的$PHP_SELF對應(yīng)$_SERVER['PHP_SELF'],你可以使用phpinfo來查看你的$_SERVER變量。

$_GET

經(jīng)由 HTTP GET 方法提交至腳本的變量。類似于舊數(shù)組 $HTTP_GET_VARS 數(shù)組。

$_POST

經(jīng)由 HTTP POST 方法提交至腳本的變量。類似于舊數(shù)組 $HTTP_POST_VARS 數(shù)組。

$_COOKIE

經(jīng)由 HTTP Cookies 方法提交至腳本的變量。類似于舊數(shù)組 $HTTP_COOKIE_VARS 數(shù)組。

$_SESSION

當(dāng)前注冊給腳本會話的變量。類似于舊數(shù)組 $HTTP_SESSION_VARS 數(shù)組。

$_FILES

經(jīng)由 HTTP POST 文件上傳而提交至腳本的變量。類似于舊數(shù)組 $HTTP_POST_FILES 數(shù)組。

$_ENV

執(zhí)行環(huán)境提交至腳本的變量。類似于舊數(shù)組 $HTTP_ENV_VARS 數(shù)組。

====================================================================

對于$_FILES變量:(文件域字段為“myfile”)

$_FILES['myfile']['name']

客戶端機(jī)器文件的原名稱(包括路徑)。

$_FILES['myfile']['type']

文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如“image/gif”。

$_FILES['myfile']['size']

已上傳文件的大小,單位為字節(jié)。

$_FILES['myfile']['tmp_name']

文件被上傳后在服務(wù)端儲存的臨時文件名(包括路徑)。

$_FILES['myfile']['error']

和該文件上傳相關(guān)的錯誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。

當(dāng) php.ini 中的 register_globals 被設(shè)置為 on 時,$myfile_name 等價于 $_FILES['myfile']['name'],$myfile_type 等價于 $_FILES['myfile']['type']等。

【2】win32下的session不能正常工作

php.ini默認(rèn)的session.save_path = /tmp

這顯然是linux下的配置,win32下php無法讀寫session文件導(dǎo)致session無法使用,把它改成一個絕對路徑就可以了,例如session.save_path = c:windows emp。

【3】顯示錯誤信息

當(dāng)php.ini的display_errors = On并且error_reporting = E_ALL時,將顯示所有的錯誤和提示,調(diào)試的時候最好打開以便糾錯,如果你用以前php寫法錯誤信息多半是關(guān)于未定義變量的。變量在賦值以前調(diào)用會有提示,解決辦法是探測或者屏蔽,例如顯示$foo,可以if(isset($foo)) echo $foo 或者echo @$foo

【4】header already sent

這個錯誤通常會在你使用HEADER的時候出現(xiàn),他可能是幾種原因:1,你在使用HEADER前PRING或者ECHO了2.你當(dāng)前文件前面有空行3.你可能INCLUDE了一個文件,該文件尾部有空行或者輸出也會出現(xiàn)這種錯誤。

【5】更改php.ini后沒有變化

重新啟動web server,比如IIS,Apache等等,然后才會應(yīng)用最新的設(shè)置。

【6】有時候sql語句不起作用,對數(shù)據(jù)庫操作失敗。最簡便的調(diào)試方法,echo那句sql,看看變量的值是否能得到。

【7】include和require的區(qū)別

兩者沒有太大的區(qū)別,如果要包含的文件不存在,include提示notice,然后繼續(xù)執(zhí)行下面的語句,require提示致命錯誤并且退出。根據(jù)測試,win32平臺下它們都是先包含后執(zhí)行,所以被包含文件里最好不要再有include或require語句,這樣會造成目錄混亂;蛟S*nux下情況不同,暫時還沒測試。如果一個文件不想被包含多次可以使用include_once或require_once## 讀取,寫入文檔數(shù)據(jù):

function r($file_name) {

$filenum=@fopen($file_name,"r");

@flock($filenum,LOCK_SH);

$file_data=@fread($filenum,filesize($file_name));

@fclose($filenum);

return $file_data;

}

function w($file_name,$data,$method="w"){

$filenum=@fopen($file_name,$method);

flock($filenum,LOCK_EX);

$file_data=fwrite($filenum,$data);

fclose($filenum);

return $file_data;

}

【8】isset()和empty()的區(qū)別

兩者都是測試變量用的,但是isset()是測試變量是否被賦值,而empty()是測試一個已經(jīng)被賦值的變量是否為空。如果一個變量沒被賦值就引用在php里是被允許的,但會有notice提示。如果一個變量被賦空值,$foo=""或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是說賦空值不會注銷一個變量。要注銷一個變量,可以用 unset($foo)或者$foo=NULL。

【9】mysql查詢語句包含有關(guān)鍵字

php查詢mysql的時候,有時候mysql表名或者列名會有關(guān)鍵字,這時候查詢會有錯誤。例如表名是order,查詢時候會出錯,簡單的辦法是sql語句里表名或者列名加上`[tab鍵上面]來加以區(qū)別,例如select * from `order`。

【10】通過HTTP協(xié)議一次上傳多個文件的方法

有兩個思路,是同一個方法的兩種實現(xiàn)。具體程序還需自己去設(shè)計

1. 在form中設(shè)置多個文件輸入框,用數(shù)組命名他們的名字,如下:

< form action="" method="post" >

< input name="usefile[]" type="file" >

< input name="usefile[]" type="file" >

< input name="usefile[]" type="file" >

< /form >

這樣,在服務(wù)器端做以下測試

echo " < pre > ";

print_r($_FILES);

echo " < /pre > ";

2. 在form中設(shè)置多個文件輸入框,但名字不同,如下:

< form action="" method="post" >

< input name="usefile_a" type="file" >

< input name="usefile_b" type="file" >

< input name="usefile_c" type="file" >

< /form >

在服務(wù)器端做同樣測試:

echo " < pre > ";

print_r($_FILES);

echo " < /pre > ";

本文來源:
責(zé)任編輯:雙子樹教育網(wǎng)編輯團(tuán)隊
相關(guān)評論我來說兩句
  1. 重慶表演?紮C(jī)構(gòu)哪家好

  2. 電工技能等級證在哪報名

  3. 西安建筑八大員施工員材料員資料正規(guī)培訓(xùn)考試服務(wù)中心

  4. 西安電工證考試在哪報名怎么考

  5. 鶴壁麻團(tuán)培訓(xùn)

  6. 衡水油條培訓(xùn)

  7. 邯鄲水餃培訓(xùn)

  8. ?趶V東腸粉培訓(xùn)

  9. 賀州大饃培訓(xùn)

  10. 河池八寶粥培訓(xùn)

  1. 瀚宣博大專轉(zhuǎn)本培訓(xùn)

  2. 創(chuàng)碩教育職業(yè)技術(shù)學(xué)校

  3. 廈門致崇教育

  4. 宜賓市翠屏區(qū)禾易廣告策劃中心培訓(xùn)學(xué)校

  5. 南京瀚宣博大五年制專轉(zhuǎn)本連鎖培訓(xùn)學(xué)校

  6. 高途教育

  7. 新科教育

  8. 河南金錦科技發(fā)展有限公司

  9. 綠洲同濟(jì)科技(蘇州)有限公司

  10. 蘇州上元經(jīng)緯培訓(xùn)

  1. 智者運(yùn)動的代表人物。

  2. 四川省重點初中名單

  3. 斬首是什么時候出現(xiàn)的?

  4. 珊瑚中學(xué)在重慶排名最晚。

  5. 中秋節(jié)是什么意思?

  6. 二年級上冊漢語模仿句

  7. 雪盈是什么意思?

  8. wtns是什么意思?

  9. 2020年甘肅省重點高中排名榜

  10. 千分之三的零點是什么?

  1. 淮安一級建造師培訓(xùn)哪家好

  2. 沈陽一級建造師培訓(xùn)那家好

  3. 南京一級建造師培訓(xùn)班哪家好

  4. 重慶一級建造師培訓(xùn)機(jī)構(gòu)哪家好

  5. 上海一級建造師培訓(xùn)班哪家好

  6. 天津一級建造師培訓(xùn)哪家好

  7. 北京一級建造師培訓(xùn)機(jī)構(gòu)哪家好

  8. 深圳一級建造師培訓(xùn)哪家好

  9. 重慶表演藝考培訓(xùn)費(fèi)用多少錢?

  10. 云之谷為千名學(xué)子無償填報志愿,為圓夢名校保駕護(hù)航

© 雙子樹教育網(wǎng) 魯ICP備14023970號