2017-06-22 39 views
1

我有一個網站,顯示動態生成的GD圖像(從SQL中提取數據)。我需要查看這張圖片以查明我編碼中的不一致之處。這些不是錯誤,而只是簡單的變量,我不得不將其隔離。我發現最簡單的方法就是在代碼中的不同位置簡單地回顯變量。Echo /打印變量調試GD圖像似乎隱藏

問題在於GD圖像會覆蓋頁面,因此echo/print沒有顯示任何內容。按照我想要的方式調用變量/函數的唯一方法是單擊此圖像上的獨特點。所以圖片必須在那裏才能回顯正確的php變量。兩者必須同時在場。我可以回顯/打印的唯一方法是關閉圖像,但如果不能查看圖像,這些變量就會告訴我什麼。

我不想使用斷點/調試等,因爲我在共享主機上,並且無法訪問所需的擴展,我不想在本地運行服務器進行開發。

我拉圖像的img src =「image.php」標記,並且PHP存儲在名爲functions.php的外部文件中。將它集合在一起的index.html只是jquery/javascript。

如何在GD圖像仍顯示時回顯輸出?

+0

,如果你不能使用調試器,不能運行本地服務器(你怎麼樣,即使沒有本地服務器發展?這是奇怪)。您可以嘗試將日誌保存到數據庫/文件並在腳本運行後查看它們 –

+0

如果我可以寫代碼,那麼這將是完美的。讓我們來說明一下。特定代碼中的$ var => some_log.txt。這可能嗎? – user4779

+0

網頁的'查看源代碼'是否顯示所有消息? –

回答

0

你可以使用緩存ob_start()/ob_get_contents(),然後將腳本的輸出使用imagestring繪製這些日誌在圖像上,像這樣:

ob_start(); 
echo("Foo"); 
$out = ob_get_contents(); 
imagestring($image, 5, 0, 0, $out, imagecolorallocate($image, 255, 255, 255)); 
ob_end_clean(); 
+0

這聽起來很理想,但我不明白如何讓它工作不幸。由於圖像已經在單獨的文件image.php中繪製到functions.php中,所以缺少$ image變量。當我嘗試要求image.php然後functions.php不會加載。但以某種方式繪製變量會很好。 – user4779