當前位置: 首頁>>技術問答>>正文


PHP編程常見問題集錦【一】

編者按: 本文從stackoverflow收集了PHP編程中的常見問題。基於google/baidu/bing翻譯將問題議成了中文,希望在英語表達不地道(特別是中英文夾雜)的情況下,也能檢索到優質內容入口。     PHP相關問題非常多,我們會陸續將這些問題做成專輯,分成多篇文章分別展現。本文是其中的第一篇內容。 注: 點擊標題直達英文原版網站(可能比較慢),點擊 ,可以通過本站加速器快速訪問。


1. 如何防止PHP中的SQL注入?[PHP] (How can I prevent SQL injection in PHP?)

mysql,sql,security,sql-injection

如果用戶輸入未經修改地插入到SQL查詢中,則應用程序變得容易遭受SQL注入,如以下示例中所示:$ unsafe_variable = $ _POST [‘user_input’]; … …

2. 為什麽我不應該在PHP中使用mysql_ *函數?[PHP] (Why shouldn’t I use mysql_* functions in PHP?)

mysql,database,mysqli,pdo

為什麽不應該使用mysql_ *函數的技術原因是什麽? (例如mysql_query(),mysql_connect()或mysql_real_escape_string())?為什麽我應該使用別的,即使他們工作…

3. PHP:“注意:未定義變量”,“注意:未定義索引”和“注意:未定義偏移量”[PHP] (PHP: “Notice: Undefined variable”, “Notice: Undefined index”, and “Notice: Undefined offset”)

arrays,variables,warnings,undefined-index

注意:未定義的變量:my_variable_name在C: wamp www mypath index.php第10行注意:未定義的索引:my_index C: wamp www .. 。

4. mysqli_fetch_array()/ mysqli_fetch_assoc()/ mysqli_fetch_row()期望參數1是resource或mysqli_result,boolean給定[PHP] (mysqli_fetch_array()/mysqli_fetch_assoc()/mysqli_fetch_row() expects parameter 1 to be resource or mysqli_result, boolean given)

mysql,mysqli

我試圖從MySQL表中選擇數據,但我得到以下錯誤消息之一:mysql_fetch_array()期望參數1是resource,boolean givenor mysqli_fetch_array()…

5. PHP解析/語法錯誤;和如何解決他們?[PHP] (PHP Parse/Syntax Errors; and How to solve them?)

parsing,debugging,syntax-error

每個人都遇到語法錯誤。甚至有經驗的程序員打錯字。對於新來的人來說,它隻是學習過程的一部分。但是,通常很容易解釋錯誤消息,如:PHP …

6. 如何修複PHP中的“頭已發送”錯誤[PHP] (How to fix “Headers already sent” error in PHP)

header

當我運行我的腳本,我得到幾個錯誤,像這樣:警告:不能修改頭信息 – 頭文件已經發送(輸出開始在/some/file.php:12)在/some/file.php在23行…

7. PHP郵件表單未完成發送電子郵件[PHP] (PHP mail form doesn’t complete sending e-mail)

html,email

<?php $ name = $ _POST [‘name’]; $ email = $ _POST [’email’]; $ message = $ _POST [‘message’]; $ from =’From:yoursite.com’; $ to =’contact@yoursite.com’; $ subject =’客戶…

8. 如何在PHP中解析和處理HTML / XML?[PHP] (How do you parse and process HTML/XML in PHP?)

parsing,xml-parsing,html-parsing

如何解析HTML / XML並從中提取信息?

9. UTF-8一路通過[PHP] (UTF-8 all the way through)

mysql,linux,apache

我設置一個新的服務器,並希望在我的Web應用程序完全支持UTF-8。我已經嘗試過去在現有的服務器,總是似乎最終必須回到ISO-8859-1.Where …

10. 參考 – 這個錯誤是什麽意思在PHP?[PHP] (Reference – What does this error mean in PHP?)

debugging,warnings

這是什麽?這是關於編程PHP時可能會遇到的警告,錯誤和通知的多個答案,沒有如何解決的線索。這也是一個社區Wiki,所以每個人都是…

11. 什麽時候在MySQL中使用單引號,雙引號和反引號[PHP] (When to use single quotes, double quotes, and backticks in MySQL)

mysql,sql

我試圖學習寫查詢的最好方法。我也明白一致的重要性。直到現在,我隨機使用單引號,雙引號和反引號沒有任何真實的…

12. 客戶端和服務器端編程有什麽區別?[PHP] (What is the difference between client-side and server-side programming?)

javascriptclient-side,server-side

我有這個代碼:<script type =“text / javascript”> var foo =’bar’; <?php file_put_contents(’foo.txt’,’+ foo +’); ?> var baz = <?php echo 42; ?>; … …

13. SQL注入,繞過mysql_real_escape_string()[PHP] (SQL injection that gets around mysql_real_escape_string())

mysql,sql,security,sql-injection

有沒有SQL注入的可能性,即使使用mysql_real_escape_string()函數嗎?考慮這個示例情況。 SQL在PHP中構建,如下所示:$ login = mysql_real_escape_string(…

14. 參考 – 這個符號在PHP中意味著什麽?[PHP] (Reference – What does this symbol mean in PHP?)

operators,symbols

這是什麽?這是一個問題的集合,每時每刻都在PHP的語法。這也是一個社區Wiki,所以大家被邀請參加維護這個列表。 … …

15. 使用正則表達式驗證電子郵件地址[PHP] (Using a regular expression to validate an email address)

regex,email,pattern-matching,email-validation

多年來,我慢慢地開發了一個正規表達式,驗證MOST電子郵件地址正確,假設他們不使用IP地址作為服務器部分。我使用它在幾個PHP程序,…

16. 在PHP中將一種日期格式轉換為另一種格式[PHP] (Convert one date format into another in PHP)

datetime,date,format

有一個簡單的方法將一個日期格式轉換為PHP中的另一個日期格式我有這樣:$ old_date = date(’y-m-d-h-i-s’); // works $ middle = strtotime($ old_date); // …

17. 我可以在PHP中混合MySQL API嗎?[PHP] (Can I mix MySQL APIs in PHP?)

mysql,pdo,mysqli

我已經搜索網,到目前為止我看到的是,你可以使用mysql_和mysqli_在一起的含義:<?php $ con = mysqli_connect(“localhost”,“root”,“”,“mysql”); if(mysqli_connect_errno (…)

18. 如何在PHP中獲取有用的錯誤消息?[PHP] (How to get useful error messages in PHP?)

debugging,error-handling

我發現在PHP編程相當令人沮喪。通常我會嘗試和運行腳本,隻是得到一個空白屏幕回來。沒有錯誤消息,隻是空屏幕。原因可能是一個簡單的語法…

19. 我如何在PHP中排序數組和數據?[PHP] (How can I sort arrays and data in PHP?)

arrays,sorting,object,spl

由於巨大的和不斷重複的“我如何排序我的獨特的雪花的陣列?問題,這是PHP中基本排序方法的參考集合。請關閉任何問題…

20. 如何將變量和數據從PHP傳遞到JavaScript?[PHP] (How to pass variables and data from PHP to JavaScript?)

javascript

我有一個變量在PHP,我需要它的值在我的JavaScript代碼。如何獲取我的變量從PHP到JavaScript?我有如下代碼:<$ php … $ val = $ myService – > …

21. PHP中單引號和雙引號字符串之間的區別是什麽?[PHP] (What is the difference between single-quoted and double-quoted strings in PHP?)

string,syntax

我不是PHP編程的專家,但我有點困惑為什麽我看到一些代碼在PHP與字符串放在單引號,有時在雙引號。我隻是知道在.NET或C語言,如果.. 。

22. 參考:什麽是變量範圍,哪些變量可以從哪裏訪問,什麽是“未定義變量”錯誤?[PHP] (Reference: What is variable scope, which variables are accessible from where and what are “undefined variable” errors?)

scope

注意:這是在PHP中處理變量範圍的參考問題。請關閉適合此模式的許多問題中的任何一個與此一樣重複。什麽是PHP中的“變量範圍”?是 …

23. PHP代碼沒有被執行,代碼顯示在頁麵上[PHP] (PHP code is not being executed, instead code shows on the page)

apache

我試圖在一個項目(使用Dreamweaver)執行一些PHP代碼,但代碼沒有運行。當我檢查源代碼,PHP代碼顯示為HTML標簽(我可以看到它的源代碼)。 … …

24. 如何在不同的環境中獲取mysqli錯誤?[PHP] (How to get mysqli error in different environments?)

mysqli,prepared-statement,environment,error-reporting

請幫我計算這個問題。在我的LOCAL / DEV環境中,mysqli查詢執行確定。然而,當我上傳它在我的WEBHOST環境,我得到這個錯誤;致命錯誤:致電…

25. PHP密碼的安全散列和鹽[PHP] (Secure hash and salt for PHP passwords)

security,passwords,hash,protection

目前說MD5是部分不安全的。考慮到這一點,我想知道使用哪種機製來保護密碼。這個問題是“雙重散列”的密碼少於…

26. 如何使用PHP計算兩個日期之間的差異?[PHP] (How to calculate the difference between two dates using PHP?)

datetime,datediff

我有兩個日期的形式:開始日期:2007-03-24結束日期:2009-06-26Now我需要找到這兩個之間的區別如下形式:2年,3個月和2天我怎麽能這樣做… …

27. 如何使用PHP從JSON中提取數據?[PHP] (How do I extract data from JSON with PHP?)

json

這是一個通用的參考問題和答案,涵蓋了許多永無止境的“如何在我的JSON中訪問數據?問題。它是在這裏處理廣泛的基礎知識解碼JSON在…

28. jQuery Ajax POST示例使用PHP[PHP] (jQuery Ajax POST example with PHP)

javascript,jquery,ajax,post

我試圖從表單發送數據到數據庫。這是我使用的形式:<form name =“foo”action =“form.php”method =“POST”id =“foo”> <label for =“bar”> A bar </ label> 。

29. PHP PDO語句是否可以接受表或列名作為參數?[PHP] (Can PHP PDO Statements accept the table or column name as parameter?)

pdo

為什麽不能將表名傳遞給一個準備好的PDO語句?$ stmt = $ dbh-> prepare(’SELECT * FROM:table WHERE 1’); if($ stmt-> execute(array(’:table’ >’users’))){var_dump($ stmt – > …

30. 如何獲取PHP錯誤顯示?[PHP] (How do I get PHP errors to display?)

error-reporting

我檢查了我的PHP ini文件,顯示錯誤設置和錯誤報告是E_ALL。我已經重新啟動我的Apache Web服務器。我甚至把這些行在我的腳本的頂部,它不… …

31. 如何使用bcrypt在PHP中哈希密碼?[PHP] (How do you use bcrypt for hashing passwords in PHP?)

passwords,cryptography,password-protection,bcrypt

每時每刻,我聽到建議“使用bcrypt在PHP中存儲密碼,bcrypt規則”。什麽是bcrypt? PHP不提供任何這樣的功能,維基百科迷惑關於文件加密…

32. 如何訪問數組/對象?[PHP] (How can I access an array/object?)

arrays,class,object,properties

我有以下數組,當我做print_r(array_values($ get_user));我得到:Array([0] => 10499478683521864 [1] => 07/22/1983 [2] => email@saya.com … …

33. 清除用戶密碼[PHP] (Cleansing User Passwords)

sql,pdo,hash

我應該如何轉義或清除用戶提供的密碼,然後將它們存儲在我的數據庫?當PHP開發人員考慮為用戶的密碼安全目的,他們往往傾向於…

34. PHP – 無法打開流:沒有這樣的文件或目錄[PHP] (PHP – Failed to open stream : No such file or directory)

fopen,require,include-path,php-include

在PHP腳本中,無論是調用include(),require(),fopen()還是其派生類如include_once,require_once或甚至move_uploaded_file(),都會遇到錯誤或警告:

35. 如何在PHP中進行重定向?[PHP] (How to make a redirect in PHP?)

redirect

是否可以通過使用PHP將用戶重定向到其他頁麵?說用戶訪問www.example.com/page.php,我想將其重定向到www.example.com/index.php,如何我這樣做…

36. 什麽是用PHP清理用戶輸入的最好的方法?[PHP] (What’s the best method for sanitizing user input with PHP?)

security,xss,sql-injection,user-input

是否有一個catchall函數在某處適用於消毒用戶輸入的SQL注入和XSS攻擊,同時仍然允許某些類型的html標簽?

37. 3不同等於[PHP] (The 3 different equals)

javascriptcomparison,operators

==,==和===有什麽區別?我想使用一個等號是聲明一個變量,而兩個等號用於比較條件,最後三個等號用於比較…

38. 如何在30分鍾後過期PHP會話?[PHP] (How do I expire a PHP session after 30 minutes?)

session,cookies

我需要保持一個會話活30分鍾,然後銷毀它。

39. 按值排序多維數組[duplicate][PHP] (Sort Multi-dimensional Array by Value [duplicate])

arrays,sorting,multidimensional-array

可能的重複:如何在PHP中排序多維數組我如何通過“順序”鍵的值排序這個數組?即使這些值當前是連續的,它們也不會總是…

40. 是否可以接受PHP短標簽來使用?[PHP] (Are PHP short tags acceptable to use?)

coding-style,php-shorttags

這裏是根據官方文檔的信息:有四個不同的開始和結束標簽的對可以在PHP中使用。其中兩個,<?php?>和<…

41. 如何將ereg表達式轉換為preg在PHP?[PHP] (How can I convert ereg expressions to preg in PHP?)

preg-replace,preg-match,pcre,ereg

因為POSIX正則表達式(ereg)從PHP 5.3.0開始棄用,我想知道一個簡單的方法來將舊表達式轉換為PCRE(Perl Compatible Regular Expressions)(preg).Per example,I …

42. 如何在MVC中構建模型?[PHP] (How should a model be structured in MVC?)

oop,model-view-controller,architecture,model

我隻是掌握了MVC框架,我經常想知道多少代碼應該在模型中。我傾向於有一個數據訪問類,具有這樣的方法:public function CheckUsername($ …

43. 我的PDO語句不工作[PHP] (My PDO Statement doesn’t work)

mysql,pdo

這是我的PHP sql語句,它返回false同時var dumping $ password_md5 = md5($ _ GET [‘password’]); $ sql = $ dbh-> prepare(’INSERT INTO users(full_name,e_mail,username,password, … ..

44. 如何實現基本的“長輪詢”?[PHP] (How do I implement basic “Long Polling”?)

http,comet

我可以找到很多關於長輪詢如何工作的信息(例如,這個和這個),但沒有簡單的例子如何在代碼中實現這一切。我可以找到是cometd,它依賴於Dojo JS …

45. 我可以將數組綁定到IN()條件嗎?[PHP] (Can I bind an array to an IN() condition?)

arrays,pdo,prepared-statement,where-in

我很想知道是否可以使用PDO將值數組綁定到占位符。這裏的用例是嘗試傳遞一個值的數組用於IN()條件。我不是很…

46. mysql擴展已被棄用,將來會被刪除:using mysqli or PDO instead [duplicate][PHP] (The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead [duplicate])

mysql,deprecated

當我嘗試從PHP連接到MySQL服務器時,我看到以下錯誤:Deprecated:mysql擴展已過時,將來會被刪除:use mysqli or PDO instead in / path / …

47. 如何將JavaScript變量傳遞給PHP?[PHP] (How to pass JavaScript variables to PHP?)

javascript,variables

我想使用表單中的隱藏輸入將JavaScript變量傳遞給PHP。但我不能得到$ _POST [‘hidden1’]的值到$ salarieid。有什麽不對?這裏是代碼:<script …

48. mysqli或PDO – 有什麽優點和缺點? [關閉][PHP] (mysqli or PDO – what are the pros and cons? [closed])

mysql,pdo,mysqli,database-abstraction

在我們的地方,我們分開使用mysqli和PDO之類的東西,如準備語句和事務支持。一些項目使用一個,一些其他。我們沒有什麽現實的可能性…

49. PDO準備語句是否足以防止SQL注入?[PHP] (Are PDO prepared statements sufficient to prevent SQL injection?)

security,pdo,sql-injection

讓我們說我有這樣的代碼:$ dbh = new PDO(“blahblah”); $ stmt = $ dbh-> prepare(’SELECT * FROM users where username =:username’); $ stmt-> execute(array :username’=> $ _REQUEST [‘…

50. 使用GMail SMTP服務器從PHP頁麵發送電子郵件[PHP] (Send email using the GMail SMTP server from a PHP page)

email,smtp,gmail

我試圖通過GMail的SMTP服務器從PHP頁麵發送電子郵件,但我得到這個錯誤:身份驗證失敗[SMTP:SMTP服務器不支持身份驗證(代碼:250,響應:mx.google ….

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/1522.html,未經允許,請勿轉載。