因为博客之前都是用PHP写的后端,现在想应用一下Python爬虫到的豆瓣数据,于是就需要在PHP中得到Python的运行结果。

建立联系

首先,将PHP和Python建立起联系的,就是在PHP中使用shell_exec()函数:

<?php$output = shell_exec('python ./test.py');echo $output;
?>

中文乱码

如果$output里的中文字符出现了乱码,则说明Python传来的字符串不是UTF-8编码。

此时先用mb_detect_encoding(), 得到$output的编码格式:

$codeType = mb_detect_encoding($output, array("ASCII","UTF-8","GB2312","GBK","BIG5"));

比如我得到的是EUC-CN。

再用iconv()将原编码转为UTF-8:

if($codeType == "EUC-CN")$output = iconv("EUC-CN","UTF-8",$output);

如此便解决了中文乱码。

用Json传递信息

对于Python爬虫得到的数据,一般还是比较多且复杂的,所以用json传递给PHP是比较好的选择。

首先是Python的json转换,使用json.dumps():

import json
data = {'movieName': movieName, 'movieYear': movieYear, 'movieArea': movieArea}
toPHP = json.dumps(data, ensure_ascii=False)

之后在PHP方接受信息后,使用json_decode()进行解码:

$output = json_decode($output, true);

如此便可愉快地使用Python带来的数据啦~

PHP接收Python的传值相关推荐

  1. python函数传值还是地址_Python传值与传址

    1. 传值与传址的区别 传值就是传入一个参数的值,传址就是传入一个参数的地址,也就是内存的地址(相当于指针).他们的区别是如果函数里面对传入的参数重新赋值,函数外的全局变量是否相应改变:用传值传入的参 ...

  2. 页面之间url传值,传循环数据里的值成功传值成功接收(动态数据传值)

    参考 js页面之间传参方式集合 实现思想:window.location 涉及知识点:escape(),unescape(),split() 效果图及实现的代码(贴重点): 传值的页面(实战传参.ht ...

  3. 使用EL表达式接收url的传值

    2019独角兽企业重金招聘Python工程师标准>>> url :  updateObject.jsp?id=40288af83635763d013635765fef0001 接收代 ...

  4. python函数传值还是地址_python中给函数传参是传值还是传引用

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

  5. jsp a标签传值到action中,action接收不到传值

    因为需求,今天在action中加了一个marker属性,尝试了很多方法 set,get方法也生成了,但是就接收不到值. 这时我注意到action中有我之前使用ajax请求数据返回json格式数据,不以 ...

  6. MVC架构接收jsp页面传值

    一.jsp页面提交请求方式 1.发送ajax方式: get提交:参数可以用请求路径?a=1&b=2&c=3...方式 post提交:参数可以new 对象,然后用对象的属性进行传参. 2 ...

  7. 关于Outlook接收Python email模块发送携带中文名附件乱码或变成.dat解决办法

    前言 由于近期在整理发送网络邮件,在使用Python3的email模块发送携带中文附件是,发现Outlook接收到的邮件是乱码,并且后缀变成了.dat,通过网上搜索找到了解决方式,解决方式如下: 解决 ...

  8. python 反向传值_Django中reverse反转并且传递参数的方法

    在写项目的过程中,有些函数不可避免的需要传入参数进去,所以我们在使用reverse进行反转时也需要传递参数.这个时候我们就可以使用 'reverse()' 中的 kwargs 参数了,它将传入一个字典 ...

  9. Python 传值和传址 copy/deepcopy

    传值:被调函数局部变量改变不会影响主调函数局部变量 传址:被调函数局部变量改变会影响主调函数局部变量 Python参数传递方式:传递对象引用(传值和传址的混合方式),如果是数字,字符串,元组则传值:如 ...

最新文章

  1. 清华《摸鱼学导论》开班啦!1000多学子在线摸鱼,无期末考试
  2. 响应式布局设备分界点
  3. Hive2.1.0集成Tez
  4. 通过人与人的交互,反思软件系统与软件系统之间的集成交互问题
  5. c语言for循环 wdtcn,MSP430F149的DS18B20C语言程序
  6. SAP标准培训课程C4C10学习笔记(三)第三单元
  7. php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
  8. 【NOI2015】【codevs4600】【BZOJ4195】自动程序分析,我太弱了
  9. Python Tuple:一文彻底粉碎元组
  10. Python3.x:生成器简介
  11. QTcpSocket使用QDataStream发送和保存图片文件
  12. python爬虫怎么赚钱-利用Python爬虫轻松挣外快的几个方法(值得收藏)
  13. css3弹性伸缩和使用
  14. 【BZOJ 3669】 [Noi2014]魔法森林 LCT维护动态最小生成树
  15. lintcode,翻转二叉树
  16. android仿微信红包动画,如何在Android中实现一个硬币转动微信红包动画效果
  17. ubuntu1804+CUDA10+cudnn7.4.2+TensorFlow2+Pytorch1.3 9700K+双路RTX 2080TI
  18. php用哪个ui框架好,常用的前端UI框架有哪些
  19. MobileNetV3 论文
  20. Qt编写安防视频监控系统5-视频回放

热门文章

  1. 什么是Echarts?Echarts如何使用?
  2. [OpenGL] VAO、VBO、EBO
  3. vue+element(项目中的使用)
  4. js如何二维数组排序
  5. php cli 错误日志,ThinkPHP5.0.*版本 cli模式下php每隔段时间就出错
  6. 破损的键盘(刘汝佳-算法入门经典第六章)
  7. http 400错误提示解决办法
  8. 中英文对照 —— 十二星座
  9. 美团在本地生活终于迎来了真正对手
  10. 自编码器及其几种变种