SSIを使用すると、これをHTMLファイルに含めるだけで、CGIスクリプトの出力が次のページに表示されます。
<!--#include virtual="script.cgi"-->
今、私は同等のことをしようとしていますが、HTMLファイルの代わりに、PHPファイル内にあります。私はこれを一日中研究してきました、そしてすべての解決策は私に以下の問題を与えています。うまくいくはずだと思ったものから始めて、あいまいなものから始めて、それぞれをリストします...
1) <?php include("script.cgi"); ?>
結果: 実行されません。これにより、CGIファイルのコンテンツ全体が単なるテキストファイルであるかのように出力されます。
2) <?php virtual("script.cgi"); ?>
結果: Fatal error: Call to undefined function virtual() in test.php on line #
。
私が読んだすべてがこれがそれを行うための適切な方法であることを示しているので、これは私を悩ませます。私はPHPの専門家ではありませんが、どうすれvirtual
ば「未定義の関数」になることができますか?これは、公式のPHPドキュメントにPHPバージョン5で有効であると記載されています。
3) <?php exec("script.cgi"); ?>
結果: 空白。何もない。
4)
<?php
$fd = fopen("script.cgi", "r");
fpassthru($fd);
?>
結果: 実行されません。これにより、CGIファイルのコンテンツ全体が単なるテキストファイルであるかのように出力されます。
5)<?php echo system("script.cgi"); ?>
結果: 混合。実行されますが、CGIスクリプトの「結果」が2回出力され、その前に「Content-type:text/html」が付きます。これはわかりません。
Content-type: text/html resultresult
そして、削除することによってecho
...
<?php system("script.cgi"); ?>
、結果...
Content-type: text/html result
6)<?php print("/usr/bin/perl script.cgi"); ?>
結果:実行されません。printステートメント()の後に含まれているものを単に出力し/usr/bin/perl script.cgi
ます。(私は驚かないが、フォーラムの誰かがこれが彼らのために働いたと主張した。)
では、CGIファイルの結果を実行して含めるには、何をする必要がありますか?これは簡単なはずですが、他に何を試すべきかわかりません。
ファイルを編集するためのアクセス権を持つApache/Linuxサーバー(cPanel)を使用していhtaccess
ます。PHPバージョン5.2.17を実行しています。
はい、ブラウザでCGIファイルをプルアップすると、実行されて結果が表示されるため、サーバーがCGIファイルを実行するように構成されていることがわかります。