2017-06-22 37 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