php檢查語法錯誤命令,php檢查語法錯誤命令是什麼

本文目錄一覽:

如何查看php代碼語法錯誤

錯誤抑制符去掉錯誤信息,eval和echo一樣並不是函數,不能使用變數函數的方法調用比如:$func = 『eval』$func()這樣的調用就是無效的。它會提示沒有eval函數,如果你自己定義這麼一個函數也是有問

錯誤抑制符去掉錯誤信息,eval和echo一樣並不是函數,不能使用變數函數的方法調用比如:

$func = 『eval』

$func()這樣的調用就是無效的。它會提示沒有eval函數,如果你自己定義這麼一個函數也是有問題的。因為eval是一個關鍵字。

eval調用和include差不多,如果被包含文件中沒有明確return就返回null。如果直接eval我們需要檢查的文件會造成被檢查的文件內代碼被執行,這可不是我們想要的,我們只需要檢查一下這個文件的語法是否正確。 我們可以在要檢查的文件之前添加return 語句,讓代碼提前跳出,那麼後面的代碼就不會執行了。好的,就這麼干。代碼如下:

?PHP

if(!function_exists(‘PHP_check_syntax’)) {

function PHP_check_syntax($file_name,

$error_message = null) {

$file_content = file_get_contents($file_name);

$check_code = “return true; ?”;

$file_content = $check_code .

$file_content . ” ?PHP “;

if(!@eval($file_content)) {

$error_message = “file: ” .

realpath($file_name) . ” have syntax error”;

return false;

}

return true;

}

}

if(!PHP_check_syntax(“file.PHP”, $msg)) {

echo $msg;

}

else {

echo “Woohoo, OK!”;

}

?PHP

foreach:: a = b

?

因為Parse error 是沒法被 set_error_handler處理函數處理的。這個異常沒辦法catch到。所以才使用了@來抑制錯誤。這帶來的問題就是我們無法得到詳細的錯誤信息。 不過目前我需要的功能也只是檢查語法是否正確。不正確的話重新編譯模板文件,就這麼簡單,至於語法錯誤,在顯示網頁的時候自然會看得到。

PHP檢查語法錯誤最好的辦法就是這個被遺棄的PHP_check_syntax這個方法回到PHP中。下次再研究下他們是出於什麼原因把這個函數去掉的。

在PHP中檢查PHP文件是否有語法錯誤的方法

PHP中try{}catch{}語句,任何調用 可能拋出異常的方法的代碼都可以使用try語句。Catch語句用來處理可能拋出的異常。.另外檢測PHP語法一般編輯器都已經有語法檢測功能,比如

Zend Studio(PHP集成開發環境),也自帶調試功能

sumlime text 2 怎麼自動檢查php語法錯誤

sumlime text 2要實現自動檢查php語法錯誤需要安裝 sublimelinter 和 sublimelinter-php 兩個插件。

1、配置SublimeLinter

打開 SublimeLinter 的配置文件,Preferences-Package Settings-SublimeLinter-Settings – User,進行如下配置 1. 運行模式:”sublimelinter”: “save-only”,

SublimeLinter 的運行模式,總共有四種,含義分別如下:

true – 在用戶輸入時在後台進行即時校驗;

false – 只有在初始化的時候才進行校驗;

“load-save” – 當文件載入和保存的時候進行校驗;

“save-only” – 當文件被保存的時候進行校驗;

推薦設置為 「save-only」,這樣只在編寫完代碼,保存的時候才校驗,Sublime Text 運行會更加流暢。

校驗引擎

“sublimelinter_executable_map”:

   {

       “php”: “C:\\xampp\\php\\php.exe”  // windows下要使用\\

   }

2、檢查方法:

php實際開發怎麼處理錯誤

在php開發過程中,由於不知道向誰求助而心慌意亂地判斷以為自己不適合學php。其實錯誤在每個人學習過程中都會碰到的,千萬不要妄自菲薄。很多錯誤在報錯的代碼提示中已經告訴我們了,仔細看,不會就百度。現總結一些常見的php錯誤,以共享php新人。

Php常見錯誤提示

一、Fatal error: Call to undefined function……

函數不存在,可能的原因:

1、系統不存在這個函數且你也沒自定義

2、有人會問,我在別的機器上就不報錯。那是因為環境不同,這個函數在本機沒開,怎麼開?你百度函數名字,就能查到這個函數屬於哪個dll,去php.ini里開啟。

實例講解:PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解決辦法

在一台處理網路支付的伺服器遷移的時候,發現不能支付。

PHP環境:

PHP版本為5.3.3

系統為Red Hat 4.1.2-54

查看apache的錯誤日誌,發現是加密文件中一個函數bcmul()報錯:

複製代碼 代碼如下:PHP Fatal error: Call to undefined function bcmul() in /php_rsa.php on line xxx

解決辦法:

使用如下命令:

複製代碼 代碼如下:yum install php-bcmath

就安裝好了。

如果出現下面這種情況:

複製代碼 代碼如下:

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.yun-idc.com

* extras: mirrors.yun-idc.com

* rpmforge:

* updates: mirrors.yun-idc.com

Setting up Install Process

Resolving Dependencies

— Running transaction check

— Package php-bcmath.x86_64 0:5.1.6-40.el5_9 set to be updated

— Processing Dependency: php-common = 5.1.6-40.el5_9 for package: php-bcmath

— Running transaction check

— Package php-common.x86_64 0:5.1.6-40.el5_9 set to be updated

— Processing Conflict: php53-common conflicts php-common

— Finished Dependency Resolution

php53-common-5.3.3-13.el5_9.1.x86_64 from installed has depsolving problems

— php53-common conflicts with php-common

Error: php53-common conflicts with php-common

You could try using –skip-broken to work around the problem

You could try running: package-cleanup –problems

package-cleanup –dupes

rpm -Va –nofiles –nodigest

就需要使用yum update 之後再yum install php53-bcmath就好了

順便了解了一下,bcmath這個函數是PHP數學擴展中的一個。可以使用 bcscale() 來設置全局默認的小數位數,具體用法如下:

複製代碼 代碼如下:string bcmul ( string $left_operand , string $right_operand [, int $scale ] )

例子:

?php echo bcmul(‘1.34747474747′, ’35’, 3); // 47.161 echo bcmul(‘2’, ‘4’); // 8 ?

此函數在php.ini中的選項:

複製代碼 代碼如下:

[bcmath]

; Number of decimal digits for all bcmath functions.

;

bcmath.scale = 0

二、syntax error, unexpected T_STRING, expecting……

嚴重語法錯誤,例如syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’ in F:\phpnow\htdocs\index.php on line 4

後邊標著行號,自己去檢查那一行的標點就行

如果是 第三行 echo 1 後邊沒加;,報錯會報 on line 4 ,on line 4,就是第四行

實例講解:

其實,這是一個非常容易解決掉的問題。在我看來,似曾相識,呵呵,最近學JavaScript可是學會了使用var聲明變數。

其實,在PHP中根本不需要使用var聲明的,但是當一個變數作為一個類的成員變數的時候,使用var還是沒有問題的。

在外部使用var就報錯Parse error: syntax error, unexpected T_VAR in…,例如我的出錯信息:

Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34

我在測試:在一個類的內部,使用一個自己定義的類對象作為這個類的成員時,出錯了。

Address類對應的address.inc代碼:

?php class Address { var $road; function Address(){} function setRoad($road){ $this-road = $road; } } ?

Person類及其測試代碼為person.php如下:

?php require(“address.inc”); class Person { var $name; var $address; function Person(){ } function display(){ echo “Name : “.$this-name.”BR”; echo “Road : “.$this-address-road.”BR”; } } var $p = new Person(); $p-address = new Address(); $p-address-setRoad(“Chagnchun Road”); $p-name = “Shirdrn”; $p-display(); ?

測試輸出現異常:

Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34

就是因為在person.php代碼中使用var聲明變數,PHP中是不能這樣的,只要使用「$」符號起始就表示這個字元後面的是一個PHP變數。

呵呵:-)

其它網友的補充方法:

問題解決:syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 前兩天開始自己php之旅,做一個很普通的網站,結果我們的php是5.0版本,伺服器是4.0版本,納悶死咯。 昨天忙了一天,今天早上一來,在一篇文章發現了,解決方法。Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ ,如果有「public」,就將「public」去掉。就不會出錯,如果「public」 是定義變數的話,將「public」 改為「var」。

三、Parse error: syntax error, unexpected T_VARIABLE in XXX.php on line XXX

這條語句是PHP常見的報錯,一般是在XXX行的上一行,或者是XXX行,缺少分號。或者在雙引號中使用雙引號,且沒有轉義等等。

解決方法:找到XXX.php的XXX行,按照上面的分析,找到自己的錯誤,改正即可。

貼士:作為編程人員,要做到代碼嚴謹,思維清晰,並且細心。人非聖賢孰能無過,但盡量避免這些因為粗心出現的錯誤,這樣才能成為合格的程序員。

四、Parse error: syntax error, unexpected ‘X’ in XXX.php on line XXX

這條語句依然是PHP常見的報錯,報錯原因是在XXX.php的XXX行,出現了PHP無法識別的字元。常常是因為function,if等需要『{‘、『}’的地方沒有閉合,或者在編程的時候,不小心在『;’的後面誤打了幾個字元。

解決方法:找到XXX.php的XXX行,刪除多出的字元,添加缺少的字元即可。

五、syntax error, unexpected $end

邏輯忘了閉合 這個報錯還有個特徵,他會提示你最後一行代碼報錯,譬如你一共30行,他就告訴你 on line 30,這時候你別檢查第三十行,你要把30行挨個,檢查一遍,看看哪個標籤沒閉合。

一共3000行,他就告訴你 on line 3000,這時候你別檢查這3000行了,如果你程序排版很亂,在3000行里找哪個括弧是個很麻煩的事……我教你一招:ctrl+a ctrl+d alt+f4

好了,你現在可以重寫了。

另一種思路:

Parse error: syntax error, unexpected $end in script.php on line xx

調試了一會後發現產生錯誤的行是文件中間某行

//$str .= “?\n”;

想起來了 PHP 解釋器允許的結尾標記那行還可以用單行注釋,即 //$str .= “?\n”; 被解釋成結尾標記前有注釋,注釋的內容是 //$str .= “,而 ? 後面的 \n”; 會被解釋作 PHP 塊外的內容按 HTML 輸出出去!結果是給 $str .= “?\n”; 這行添加 // 成注釋後,反而多了個 ? 的結束標記,造成原來真正的結束標記成了意料之外的(unexpected)了。

解決辦法就是直接刪掉這一行即可。

PHP 開始和結束標記所在行別寫其它東西,是個好習慣。

六、Notice:Undefined varialbe:……

這是一個比較常見的錯誤,解決方法:error_reporting調整錯誤級別,

以上就是為大家分享的PHP常見的6個錯誤提示,給大家提供了大概的解決思路和方向,希望對大家的學習有所幫助。

PHP語法錯誤,咋整

Warning: mysql_close(): 2 is not a valid MySQL-Link resource in /usr/local/apache2/htdocs/mysql.php on line 15

代碼第15行錯誤,mysql_close 傳遞進來的參數不是一個有效的 MYSQL 連接資源。

可能的原因是 MYSQL 連接錯誤或者已經關閉。

PHP語法錯誤

這個是模板文件編譯後出現的語法錯誤,可以檢查模板文件有沒有寫法問題。

可以按提示的

D:\phpStudy\WWW\My\Runtime\Cache\Home\8dc23e4b59412263cf65a712c686eabb.php  LINE: 513

這個文件和行,對應找出模板文件出問題的地方,再檢查修復

原創文章,作者:SPAP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139709.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SPAP的頭像SPAP
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Git config命令用法介紹:用正確的郵箱保障開發工作

    本文將詳細介紹如何使用git config命令配置Git的全局和本地用戶信息,特別是如何正確使用用戶郵箱,保障Git操作的正常進行。 一、git config命令介紹 Git中的每…

    編程 2025-04-29
  • Python命令大全及說明

    Python是一種高級編程語言,由Guido van Rossum於1989年底發明。它具有良好的語法結構和面向對象的編程思想,具有簡潔、易讀、易學的特點,是初學者以及專業開發人員…

    編程 2025-04-29
  • Python SSH 遠程執行命令

    Python SSH 遠程執行命令是指在一個伺服器上執行遠程另一個伺服器上命令。如果你需要在本地機器上執行命令,或者在遠程機器上執行本地命令,你都可以使用 SSH。在 Python…

    編程 2025-04-29
  • 剖析命令執行函數

    在編程開發過程中,命令執行函數是非常常見的一個概念。它是指接受一個命令字元串,並將其解析執行,返回相應的結果或錯誤信息的函數。本文將從多個方面對命令執行函數進行詳細的闡述,包括其定…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python中獲取用戶輸入命令的方法解析

    本文將從多個角度,分別介紹Python中獲取用戶輸入命令的方法,希望能夠對初學者有所幫助。 一、使用input()函數獲取用戶輸入命令 input()是Python中用於獲取用戶輸…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27

發表回復

登錄後才能評論