php基礎編程常見有關問題匯總
來源:互聯網
上載者:User
php基礎編程常見問題匯總
本版常見問題的匯總,限於篇幅答案可能不夠詳盡,需要更多答案可以充分利用搜尋引擎。
本帖內容將陸續更新增加。希望能夠協助更多需要的新手,如果有錯誤敬請各位同學指正。
1.如何判斷php是否安裝成功,以及輸出php的相關配置環境參數?
答:1.建立一個php檔案,例如檔案名稱:phpinfo.php
2.在php檔案內添加代碼
3.在瀏覽器開啟這個檔案,localhost/phpinfo.php
如果正常出現一個詳細的文檔那麼安裝成功,如果直接輸出了上面的源碼或者提示下載檔案為不成功。
2.如何開啟php的錯誤提示功能?預設是關閉狀態
答:php.ini檔案搜尋欄位error_reporting 修改成 error_reporting = E_ALL
display_errors 修改成 display_errors = On 如果欄位前有# 請刪除這個注釋符號。
需要重啟apache,即可生效.也可以在php檔案添加代碼 error_reporting(E_ALL);
3.出現類似 "Notice: Undefined index:xxx in..."的錯誤提示
答:此為5.3(如果沒記錯)版本後的一個新變化,這並不是一個錯誤,僅僅是一個提示。
提示內容是變數未聲明就使用了。
解決的方法可以是:
a.關閉出錯提示(或修改出錯提示等級)。參考常見問題2 修改 display_errors = Off
b.在提交的參數 例如 $_POST['test']賦值之前添加 if (issset($_POST['test']))判斷,其他
變數提示可以用初始化賦值的方式代替.例如 $test='';
4.資料庫或者頁面輸出中文亂碼,但是英文以及數字沒有任何問題
答:一般這種問題都是編碼引起的,所以保持所有編碼一致就是解決問題的方法.
以gbk為例
php檔案頭輸出 header ( "Content-Type: text/html; charset=gbk" );
php連結資料庫之後執行 mysql_query("SET NAMES 'gbk'");
資料庫/表編碼設定為gbk
檔案編碼 檢查是否為ANSI
5.如何搭建php 的運行工作環境?
答:我們將會有一個詳細的文章來介紹這個方面的內容,如果是剛開始學習的同學推薦你使用整合
的安裝包來學習,由於php版本比較多所以如果僅僅參考網上的教材很容易造成學習的困惑。
請直接下載以下相應系統的完整安裝包,運行安裝,配置問題請參考官方的協助文檔。
Windows:http://www.apachefriends.org/zh_cn/xampp-windows.html
Linux:http://www.apachefriends.org/zh_cn/xampp-linux.html
6.為什麼我看到有的代碼裡用就可以,而不需要這樣
答:在php.ini中有一個短標記的選項,開啟即可short_open_tag = On 記得如果前面有# 請刪除這個注釋符號。
個人並不推薦開啟這個功能,請按照的方式來書寫代碼.
7.常用php的開發工具有哪些?
答:如果你喜歡看起來很專業功能繁多的開發工具
eclipse zendstudio phpdesinger phpstorm netbeans ...
如果你喜歡樸素,原始的開發工具
記事本 notepad++ editplus ....
Linux下基本上上面所列IDE都有,樸素的可用Vim Gvim ...
8.在浮點數運算的過程中出現“靈異”現象?
答:Warning
浮點數精度
顯然簡單的十進位分數如同 0.1 或 0.7 不能在不丟失一點點精度的情況下轉換為內部二進位的格式。這就會造成混亂的結果:例如,floor((0.1+0.7)*10) 通常會返回 7 而不是預期中的 8,因為該結果內部的表示其實是類似 7.9999999999...。
這和一個事實有關,那就是不可能精確的用有限位元表達某些十進位分數。例如,十進位的 1/3 變成了 0.3333333. . .。
所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。如果確實需要更高的精度,應該使用任意精度數學函數或者 gmp 函數
9.UTF8編碼的檔案session_start(),header(),settcookie()等函數出錯,提示"headers already sent "。
答: UTF8編碼通常的編輯器都會在檔案頭部加上三位元組的BOM編碼來識別UTF8編碼格式,這三個位元組是普通檔案編輯器看不到,而輸出時去先行以HTML輸出了。執行以上函數時就會提示以上錯誤。解決辦法:用editplus等可以清除BOM的編輯器,清除BOM(設定為utf8清除BOM)儲存一下即可。
10.mysql和php編碼應該注意的一個地方.
答:需要提醒大家的是 mysql 裡 SET NAMES 'UTF8';這裡是沒有橫杠的,而php 的正確寫法是 UTF-8,很多初學者在這個地方容易弄混和不解,希望特別注意這個小小的區別。
------解決方案--------------------
看了,學習學習,謝謝牛哥
------解決方案--------------------
支援一下。。 妞妞還沒放假呢!
------解決方案--------------------
早看到這個文章就好了呵呵
------解決方案--------------------
學習了 列出了我見到的全部問題啊 呵呵