8

私は PHP スクリプト (news-generator.php) を持っています。これを含めると、一連のニュース項目を取得して出力します。現在、Web サイト (CGI) に Python を使用しています。PHPを使っていたとき、「ニュース」ページで次のようなものを使用しました。

<?php
print("<h1>News and Updates</h1>");
include("news-generator.php");
print("</body>");
?>

(簡単にするために例を省略しました。)

Python にスクリプト (news-generator.php) を実行させ、クロスプラットフォームで動作する出力を返す方法はありますか? そうすれば、私はこれを行うことができます:

page_html = "<h1>News and Updates</h1>"
news_script_output = php("news-generator.php") //should return a string
print page_html + news_script_output
4

5 に答える 5

11
import subprocess

def php(script_path):
    p = subprocess.Popen(['php', script_path], stdout=subprocess.PIPE)
    result = p.communicate()[0]
    return result

# YOUR CODE BELOW:
page_html = "<h1>News and Updates</h1>"
news_script_output = php("news-generator.php") 
print page_html + news_script_output
于 2009-06-29T20:58:16.833 に答える
7

PHPはプログラムです。subprocessを使用して任意のプログラムを実行できます。

難しい部分は、PHP が期待する CGI 環境全体をシミュレートすることです。

于 2009-06-29T20:57:03.560 に答える
1

トピックから外れているかもしれませんが、php スクリプトによって作成された vars などにアクセスできる方法でこれを行いたい場合 (ニュース項目の配列など)、php スクリプトの exec を実行するのが最善の方法です。ただし、php から json でエンコードされた項目の配列を文字列として返し、json でそれらを python 側でデコードし、そこで html の生成と反復を行います。

于 2009-06-30T18:00:02.253 に答える
0

最良の答えは、apache で両方のページを別々にレンダリングしてから、javascript を使用してそのページを div にロードすることだと思います。ajax の読み込みがわずかに遅くなりますが、心配する必要はありません。

1ページで複数の言語を実行するオープンソースのウィジェットがありますが、それが何と呼ばれていたか思い出せません。

于 2009-06-29T21:18:56.420 に答える