スポンサーリンク

wordpress(Xserver)のphpでpythonを実行させる

スクレイピングをXserver上で頑張ろうともがいたが、結局Xserverでは無理なことがわかった。技術的なことに時間を費やしても仕方ないので、とりあえず、別サーバーを検討して諦めることにした。

では、Xserverのwordpressでpythonを実行させるにはどうしたらいいのか?

ショートコードという方法を使います。

■phpファイル  (外観⇒テーマの編集⇒function.phpを編集。最終行がいいでしょう。)

<?php
// file name: call_python.php
    $fullPath ='python ./cgi-bin/call_from_php.py abcd';
    exec($fullPath, $outpara);
    var_dump($outpara[0]);
?>

■pythonファイル( ファイル名:call_from_php.py)

import sys

if __name__=='__main__':

 print 'parameter1 is ' + sys.argv[1]

一応行きました。。

■出力結果

parameter1 is abcd

が!!!

複数業にわたってテストすると、驚くべきことにphpの出力結果が、1行目にきて、その後に文章の投稿内容がきます。これを修正するためには、phpファイルの中の投稿を以下の関数を追加します。

function my_shortcode() {
 ob_start();

 ここにHTMLコードを書く 
 return ob_get_clean();

}

これで一応適切な場所に吐き出されると思います。