気まぐれSE日記

地方でエンジニアしてます

PHPで外部のPHPを呼び出す

仕事でまさにこれと同じ症状になってしまいはまってしまいました。
http://sb.xrea.com/showthread.php?t=12153


具体的にはexec関数でPHPスクリプトを呼ぶことはできないということです。今日初めてハマり初めて知りました。


どうするとなるのか?こんなコードです。

1.hoge.phpと言うファイルを超簡単な内容で作成。

<?php
    
    echo "OKOKOKOKOK";
    
?>


2.test.phpを今度は作成し、先ほどのhoge.phpをexec関数で呼んでみる。

<?php

 echo exec("php hoge.php");

?>

すると、実行に失敗して何も表示されない。パスが通ってないのかと思ってコマンドもファイルも絶対パスで指定してもやはり失敗して何も表示されない。ただし、コマンドライン(cgi版)のphpの場合は成功する。


で、どうしたらいいものかと思っていてひらめいたていうか、普通気付くだろの世界ですが。
すごく簡単な回避方法は単純にtest.phpにincludeしてhoge.php呼んでやればいいてことでした。

<?php

 include("hoge.php");

?>

実行結果はOKOKが出力され成功します。
ただし、やはりバックグラウンドで実行できないって事ですかね。