백엔드 개발 PHP 튜토리얼 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;
?>
로그인 후 복사

(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()
로그인 후 복사

(3)web网页爬虫展示:

6.webp (1).jpg

推荐教程:PHP视频教程

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP의 미래 : 적응 및 혁신 PHP의 미래 : 적응 및 혁신 Apr 11, 2025 am 12:01 AM

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.

PHP vs. Python : 차이점 이해 PHP vs. Python : 차이점 이해 Apr 11, 2025 am 12:15 AM

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

2 시간의 파이썬 계획 : 현실적인 접근 2 시간의 파이썬 계획 : 현실적인 접근 Apr 11, 2025 am 12:04 AM

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

PHP : 죽어 가거나 단순히 적응하고 있습니까? PHP : 죽어 가거나 단순히 적응하고 있습니까? Apr 11, 2025 am 12:13 AM

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

Redis로 서버를 시작하는 방법 Redis로 서버를 시작하는 방법 Apr 10, 2025 pm 08:12 PM

Redis 서버를 시작하는 단계에는 다음이 포함됩니다. 운영 체제에 따라 Redis 설치. Redis-Server (Linux/MacOS) 또는 Redis-Server.exe (Windows)를 통해 Redis 서비스를 시작하십시오. Redis-Cli Ping (Linux/MacOS) 또는 Redis-Cli.exe Ping (Windows) 명령을 사용하여 서비스 상태를 확인하십시오. Redis-Cli, Python 또는 Node.js와 같은 Redis 클라이언트를 사용하여 서버에 액세스하십시오.

Redis 대기열을 읽는 방법 Redis 대기열을 읽는 방법 Apr 10, 2025 pm 10:12 PM

Redis의 대기열을 읽으려면 대기열 이름을 얻고 LPOP 명령을 사용하여 요소를 읽고 빈 큐를 처리해야합니다. 특정 단계는 다음과 같습니다. 대기열 이름 가져 오기 : "큐 :"와 같은 "대기열 : my-queue"의 접두사로 이름을 지정하십시오. LPOP 명령을 사용하십시오. 빈 대기열 처리 : 대기열이 비어 있으면 LPOP이 NIL을 반환하고 요소를 읽기 전에 대기열이 존재하는지 확인할 수 있습니다.

H5 : 도구, 프레임 워크 및 모범 사례 H5 : 도구, 프레임 워크 및 모범 사례 Apr 11, 2025 am 12:11 AM

H5 개발에서 마스터 해야하는 도구 및 프레임 워크에는 vue.js, React 및 Webpack이 포함됩니다. 1.vue.js는 사용자 인터페이스를 구축하고 구성 요소 개발을 지원하는 데 적합합니다. 2. 복잡한 응용 프로그램에 적합한 가상 DOM을 통해 페이지 렌더링을 최적화합니다. 3. Webpack은 모듈 포장에 사용되며 리소스로드를 최적화합니다.

메모리에 대한 Redis 지속성의 영향은 무엇입니까? 메모리에 대한 Redis 지속성의 영향은 무엇입니까? Apr 10, 2025 pm 02:15 PM

Redis Persistence는 추가 메모리를 차지하고 RDB는 스냅 샷을 생성 할 때 메모리 사용량을 일시적으로 증가시키고 AOF는 로그를 추가 할 때 계속 메모리를 차지합니다. 영향 요인에는 데이터 볼륨, 지속성 정책 및 Redis 구성이 포함됩니다. 영향을 완화하려면 RDB 스냅 샷 정책을 합리적으로 구성하고 구성 최적화, 하드웨어 업그레이드 및 메모리 사용을 모니터링 할 수 있습니다. 또한 성능과 데이터 보안 사이의 균형을 찾는 것이 중요합니다.

See all articles