php调用python脚本

主要参考两篇文章php

PHP中的换行详解html

利用PHP调试Pythonpython

Python小窥 - 写给Python的入门者shell

这两篇文章结合起来进行测试,主要过程以下测试

cd /var/www/html
mkdir script
nano script/test.py
#粘贴代码
nano test002.php
#粘贴代码

期间主要遇到的问题有
php文件里面的路径/script/test.py,改成script/test.py,做者显然在根目录添加的目录this

php换行的实现,想实现,原本用\n,结果失败,因而用<br>,搞定,实现结果以下图spa

继续修改,发现对于连续迭代语句没法正常打印数据,具体还没查询缘由,猜想是因为python自己报错,能够本地运行脚本测试。调试

另外的测试是中文支持状况,发现中文的时候网页所有空白,显然就是报错了,原本觉得是php对中文支持的很差,因而修改了,添加了中文支持,发现状况依旧,因而本地测试python的中文支持状况,发现不支持,按照报错信息code

Non-ASCII character '\xe8' in file test.py on line 9, but no encodi

查询解决方法。原来须要开头添加utf8的支持,添加行注释搞定,最终的php脚本内容为htm

<?php
#header("Content-type: text/html; charset=utf-8");
$output = shell_exec('python script/test.py');

$array = explode(',', $output);

foreach ($array as $value) {
#echo "\n";
echo $value;
echo "<br>";
}
?>

 

python内容为

# coding=utf-8
print 'this is a Python program with PHP,'
#print '\n'
print "22,"
print "21,"
print "26,"
print "22,"
print "21,"
print 'Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five $
print '要求:打印1到100,遇到3的倍数,只打印“Fizz”,遇到5的倍数,打印“Buzz”,同时遇到3,5的倍数,打印“FizzBuzz”,'
for x in range(1,101):print"Fizz"[x%3*4:]+"Buzz"[x%5*4:]or x
print ","
for x in range(1,11):print"qiangge_is_god"[x%3*14:]+"i_can't_believe_it"[x%5*18:]or x
print ","
False = True
if False:
    print "Hello"
else:
    print "World"
print ','

 最后显示的效果图

 

相关文章
相关标签/搜索