2013-06-05 64 views
0

使用Eclipse/xdebug n Windows 2008服務器。昨天我能夠成功調試一個php文件。今天,一個非常類似的php文件,它跳過了線條,然後就被遺忘了。 代碼片段:xdebug在調試時跳過了行

//$data = file_get_contents('php://input'); 
$data = '[{"ARDivisionNo":"01","CustomerNo":"ABF","ContactCode":"ARTIE JOHN","CustomerName":"American Business Futures","fname":"Artie ","lname":"Johnson","EmailAddress":"[email protected]","Billing_Address1":"2131 N. 14th Street","Billing_Address2":"Suite 105","Billing_Address3":"Accounting Department","Billing_City":"Irvine","Billing_State":"CA","Billing_Zip":"92618","UDF_FC_ENABLED":"Y","UDF_FC_CUSTOMERID":2.0,"UDF_FC_ADDRESS_BOOK_ID":3.0,"TelephoneNo1":"","FaxNo":""}]'; 
$json = json_decode($data, true); 

Foreach ($json as $i => $row) { 
    $customers_id = tep_db_prepare_input($row['UDF_FC_CUSTOMERID']); 
    $customers_firstname = tep_db_prepare_input($row['fname']); 

(我的JSON粘貼用於調試目的 - 這在昨天的其他文件工作) 在該文件中,第一個奇怪的是調試器實際停止在註釋掉「$ data = file_get_contents('php:// input');「線。 在下一個「$ data =」行之後,它跳轉到「$ customers_id =」行。此時$ data在變量窗口中顯示爲空。 有什麼錯誤/如何解決的任何想法?

回答

2

很可能Xdebug看起來是一個不同於源代碼的文件。你確定你在開始調試之前先保存了文件?

有幾種情況,Xdebug做跳行,因爲它沒有看到任何斷點。這是因爲PHP本身並不總是給出這種可能性。它通常在沒有{和}的if/else語句上。爲了找出到底是怎麼回事,你可以通過添加爲php.ini進行遠程調試日誌:

xdebug.remote_log=/tmp/xdebug.log 

的Xdebug會寫所有的通信數據包中該日誌爲你去看看。也許這提供了一個線索。