Php html不打印输出文本

Php html不打印输出文本,php,python,html,Php,Python,Html,我有两个代码,其中一个是我用来测试一些php函数的简单代码。我试图将JSON字符串打印到我的html中,其中一个代码正常工作,而另一个则不正常 假设我们有两组代码:first.php&first.py,second.php&second.py first.php如下所示: <?php exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection

我有两个代码,其中一个是我用来测试一些php函数的简单代码。我试图将JSON字符串打印到我的html中,其中一个代码正常工作,而另一个则不正常

假设我们有两组代码:first.php&first.py,second.php&second.py

first.php如下所示:

<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/first.py", $output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['rightCoordinate'] ."</h3>";
echo "<h3>" . $someOutput['leftCoordinate'] ."</h3>";?>
<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/second.py C:/xampp/htdocs/w3layout/finalproject/uploads/10.PNG 10.PNG 2>&1",$output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['theWidth'] ."</h3>"; ?>
exec("python -W ignore second.py", $output);
second.php如下所示:

<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/first.py", $output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['rightCoordinate'] ."</h3>";
echo "<h3>" . $someOutput['leftCoordinate'] ."</h3>";?>
<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/second.py C:/xampp/htdocs/w3layout/finalproject/uploads/10.PNG 10.PNG 2>&1",$output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['theWidth'] ."</h3>"; ?>
exec("python -W ignore second.py", $output);
当我在命令提示符下运行它们时,第一个结果是:

{"leftCoordinate": 4, "rightCoordinate": 10}
当我把它放在我的html中时,它会打印出4和10

第二个命令在命令提示符下显示此结果:

{"leftCoordinate": 34.47790487855673, "rightCoordinate": 251.67991018295288, "lowerCoordinate": 208.6769086420536, "upperCoordinate": 388.4499931335449, "numInjuries": 1, "theWidth": 327, "theHeight": 503}
但它不会以html格式打印任何结果


有什么需要更改的吗?

这可能不是一个有用的答案,因为您的代码似乎没有任何问题

我将以下内容放在second.py的顶部:

import json

x_min = 34.47790487855673
x_max = 251.67991018295288
y_min = 208.6769086420536
y_max = 388.4499931335449
count = 1
im_width = 327
im_height = 503
并删除second.php中的绝对路径:

exec("second.py 10.PNG 10.PNG 2>&1",$output);
现在
php second.php
显示了
327

这是在Windows10上使用PHP7.3.1和Python3.7.4实现的


编辑:在Ubuntu 19.04/PHP7.2.19/Python2.7.16上尝试了它,得到了相同的结果。

这可能不是一个有用的答案,因为您的代码似乎没有任何问题

我将以下内容放在second.py的顶部:

import json

x_min = 34.47790487855673
x_max = 251.67991018295288
y_min = 208.6769086420536
y_max = 388.4499931335449
count = 1
im_width = 327
im_height = 503
并删除second.php中的绝对路径:

exec("second.py 10.PNG 10.PNG 2>&1",$output);
现在
php second.php
显示了
327

这是在Windows10上使用PHP7.3.1和Python3.7.4实现的


编辑:在Ubuntu 19.04/PHP 7.2.19/Python 2.7.16上进行了尝试,得到了相同的结果。

根据您的评论,问题在于Python脚本生成了一个警告,然后将其传递给PHP脚本

忽略警告的一种方法是添加带有值
ignore
-W
选项。PHP脚本中的行将如下所示:

<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/first.py", $output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['rightCoordinate'] ."</h3>";
echo "<h3>" . $someOutput['leftCoordinate'] ."</h3>";?>
<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/second.py C:/xampp/htdocs/w3layout/finalproject/uploads/10.PNG 10.PNG 2>&1",$output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['theWidth'] ."</h3>"; ?>
exec("python -W ignore second.py", $output);

根据您的评论,问题在于Python脚本生成了一个警告,然后将该警告传递给PHP脚本

忽略警告的一种方法是添加带有值
ignore
-W
选项。PHP脚本中的行将如下所示:

<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/first.py", $output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['rightCoordinate'] ."</h3>";
echo "<h3>" . $someOutput['leftCoordinate'] ."</h3>";?>
<?php
exec("C:/Users/hln/Anaconda3/envs/tensorflow1/python.exe C:/tensorflow1/models/research/object_detection/second.py C:/xampp/htdocs/w3layout/finalproject/uploads/10.PNG 10.PNG 2>&1",$output);
$someOutput = json_decode($output[0], true);
echo "<h3>" . $someOutput['theWidth'] ."</h3>"; ?>
exec("python -W ignore second.py", $output);

当我在第二个代码上回显计数($someOutput)时,它给我0当我在第二个代码上回显计数($someOutput)时,它给我0嘿,非常感谢你的回答!但是$output也保存了tensorflow创建的警告消息,所以我想要的outputvalues实际上保存在数组的末尾。如果我只想将这7个值保存在$output中,您对应该更改什么有什么建议吗?对不起,我是Python新手。也许禁用警告的建议之一可能有效。找到它,请参阅我的其他答案。嘿,非常感谢您的回答!但是$output也保存了tensorflow创建的警告消息,所以我想要的outputvalues实际上保存在数组的末尾。如果我只想将这7个值保存在$output中,您对应该更改什么有什么建议吗?对不起,我是Python新手。也许禁用警告的建议之一可能有效。找到它,请参阅我的其他答案。