Home Backend Development PHP Tutorial php怎么调用python脚本?

php怎么调用python脚本?

Jun 06, 2016 pm 08:14 PM
php python

php怎么调用python脚本?

php调用python脚本

起初是为了实现一个小需求,想要在JQuery执行的AJAX异步请求时在服务器端调用执行Python脚本。而Windows服务器端部署的WEB环境是Apache+PHP,在AJAX异步请求时根本不能直接调用Python脚本。

因为web开发语言是php而非Python的Django和Flask等开发框架。AJAX是可以调用执行服务器端的脚本文件,但它的本质仍是HTTP的请求。

所以就只能在HTTP请求中想办法调用Python脚本,也就在PHP程序中调用执行python脚本。

这里就要用到PHP的内置函数exec() 和system() ;

PHP的exec() 和system() 函数区别:

(1)system()

原型:string system (string command [, int return_var])

system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。

(2)exec()

原型:string exec (string command [, string array [, int return_var]])

exec ()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。

可以看出两个函数的区别就是PHP在调用执行外部命令后,system()函数将执行的结果输出并返回给PHP程序。而 exec() 函数在调用执行外部命令后不会将结果输出,只是返回结果。

程序代码实现和对比:

(1)in.php程序使用exec()函数代码及解析:

1.webp.jpg

(2)test.py程序代码:

2.webp.jpg

(3)PHP程序执行后效果1:

3.webp.jpg

这样就利用exec()函数实现了对python脚本的调用,下面说一下将in.php程序中的exec()函数替换成system()函数后的执行效果。

(4)in.php程序使用system()函数代码及解析:

5.webp.jpg

(5)PHP程序执行后效果2:

6.webp.jpg

可以看出使用system()函数时,执行python程序时不但返回结果,而且将结果输出了,而exec()函数只是返回结果,没有输出。

扩展应用:(php web开发数据调用)

想要在网页上显示其它网站上的数据内容时,都需要网站提供数据的调用接口直接调用,如果没有接口,就需要用爬虫将数据爬回来后保存到数据库,在用程序从数据库中取出数据展示出来。(当然也可以用到php的curl库进行数据爬取后进行展示,但是个人认为在编程语言中做爬虫最简单并且强大的还是Python),而如果在PHP程序中直接调用python脚本进行爬虫,然后再将数据展示到网页上,这样就可以省去插入数据到数据库和从数据库读取数据的过程,这种做法对一些实时数据的爬取还是比较有用的,但是一定会影响网页的加载速度。下面将以前写的一个爬虫爬到的数据直接展示到web网页上供大家参考。

(1)php程序代码:

<?PHP
$output=exec(&#39;python test1.py&#39;);
echo $output;
?>
Copy after login

(2)python爬虫代码:

import requests
import json
class WeatherSpider(object):
    def __inti__(self):
        pass
    def request(self,url):
        headers = {
        &#39;User-Agent&#39;:&#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36&#39;,
        &#39;Referer&#39;: &#39;http://www.weather.com.cn/weather40d/101060201.shtml&#39;
        }
        return requests.get(url,headers=headers)
    def create_url(self):
        year = &#39;2016&#39;
        for i in range(1,2):
            month = str(i) if i > 9 else "0" + str(i)
            url = "http://d1.weather.com.cn/calendar_new/" + year + "/101060201_" + year + month + ".html"
            self.get_data(url)
    def get_data(self,url):
        respone = self.request(url).content
        json_str = respone.decode(encoding=&#39;utf-8&#39;)[11:]
        weathers = json.loads(json_str)
        data = ""
        for weather in weathers:
            data = data+weather.get(&#39;date&#39;)+&#39;星期&#39;+weather.get(&#39;wk&#39;)+weather.get(&#39;hmax&#39;)+weather.get(&#39;hmin&#39;)+weather.get(&#39;hgl&#39;)+"<br>"
        print (data)
if __name__ == &#39;__main__&#39;:
    jl_weather = WeatherSpider()
    jl_weather.create_url()
Copy after login

(3)web网页爬虫展示:

6.webp (1).jpg

推荐教程:PHP视频教程

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The Future of PHP: Adaptations and Innovations The Future of PHP: Adaptations and Innovations Apr 11, 2025 am 12:01 AM

The future of PHP will be achieved by adapting to new technology trends and introducing innovative features: 1) Adapting to cloud computing, containerization and microservice architectures, supporting Docker and Kubernetes; 2) introducing JIT compilers and enumeration types to improve performance and data processing efficiency; 3) Continuously optimize performance and promote best practices.

PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP: Is It Dying or Simply Adapting? PHP: Is It Dying or Simply Adapting? Apr 11, 2025 am 12:13 AM

PHP is not dying, but constantly adapting and evolving. 1) PHP has undergone multiple version iterations since 1994 to adapt to new technology trends. 2) It is currently widely used in e-commerce, content management systems and other fields. 3) PHP8 introduces JIT compiler and other functions to improve performance and modernization. 4) Use OPcache and follow PSR-12 standards to optimize performance and code quality.

The 2-Hour Python Plan: A Realistic Approach The 2-Hour Python Plan: A Realistic Approach Apr 11, 2025 am 12:04 AM

You can learn basic programming concepts and skills of Python within 2 hours. 1. Learn variables and data types, 2. Master control flow (conditional statements and loops), 3. Understand the definition and use of functions, 4. Quickly get started with Python programming through simple examples and code snippets.

How to start the server with redis How to start the server with redis Apr 10, 2025 pm 08:12 PM

The steps to start a Redis server include: Install Redis according to the operating system. Start the Redis service via redis-server (Linux/macOS) or redis-server.exe (Windows). Use the redis-cli ping (Linux/macOS) or redis-cli.exe ping (Windows) command to check the service status. Use a Redis client, such as redis-cli, Python, or Node.js, to access the server.

How to read redis queue How to read redis queue Apr 10, 2025 pm 10:12 PM

To read a queue from Redis, you need to get the queue name, read the elements using the LPOP command, and process the empty queue. The specific steps are as follows: Get the queue name: name it with the prefix of "queue:" such as "queue:my-queue". Use the LPOP command: Eject the element from the head of the queue and return its value, such as LPOP queue:my-queue. Processing empty queues: If the queue is empty, LPOP returns nil, and you can check whether the queue exists before reading the element.

H5: Tools, Frameworks, and Best Practices H5: Tools, Frameworks, and Best Practices Apr 11, 2025 am 12:11 AM

The tools and frameworks that need to be mastered in H5 development include Vue.js, React and Webpack. 1.Vue.js is suitable for building user interfaces and supports component development. 2.React optimizes page rendering through virtual DOM, suitable for complex applications. 3.Webpack is used for module packaging and optimize resource loading.

What is the impact of Redis persistence on memory? What is the impact of Redis persistence on memory? Apr 10, 2025 pm 02:15 PM

Redis persistence will take up extra memory, RDB temporarily increases memory usage when generating snapshots, and AOF continues to take up memory when appending logs. Influencing factors include data volume, persistence policy and Redis configuration. To mitigate the impact, you can reasonably configure RDB snapshot policies, optimize AOF configuration, upgrade hardware and monitor memory usage. Furthermore, it is crucial to find a balance between performance and data security.

See all articles