perlのプログラムから同一サーバー内のphpを実行してその結果を取得したいのですが、うまくいきません。
print.phpというファイルの中身が
<?
echo "<div>1234567890</div>";
?>
だとして、これをブラウザで見た場合のソースは
<div>1234567890</div>
となるわけで、この1234567890をperlのプログラム内で表示するために
main.cgiというプログラム内で
$data = '/***/www/print.php';
open(FH,$data);
@list = <FH>;
foreach $data_line ( @list ) {
if ($data_line =~/<div>/ ){
$data_line =~ s/<div>//i;
$data_line =~ s/<\/div>//i;
print = $data_line;
}
}
close(FH);
のような処理をすると
echo "1234567890";
という実行前のphpの中身が表示されてしまいます。
表示したい結果はこの場合ブラウザでphpを実行した時のソースからdivタグをperl側で抜き取った
1234567890
なのですが、同じ事をperlの書き換えで実現する上手い方法があればご教授いただけますと助かります。
No.3ベストアンサー
- 回答日時:
>$data = '/***/www/print.php';
>open(FH,$data);
これだと、PHPの実行結果ではなくて、もろ、print.phpを開いています。
なので、www/print.phpをPHPで実行した処理結果で、置換処理等を行わないといけないです。
○PHPをコマンドラインから実行
http://phpspot.net/php/man/php/features.commandl …
http://www.spencernetwork.org/memo/tips-6.php
○Perlのファイル操作http://www.ipc.hokusei.ac.jp/~z00104/perl/fileha …
あたりを参考にして、
$PHP = '!/usr/bin/php'; #PHPのパス
$PHP_FILE='/***/www/print.php';#実行するPHP
open FH, "$PHP -q $PHP_FILE|";
@list = <FH>;
close FH;
ってな具合でいけるのではないかと、思います。
PHPはないので、未確認ですが。
あと検索は、「php コマンドライン」や「perl パイプ」あたりでしてみてはいかがでしょうか。
No.4
- 回答日時:
NO3、ちょっと間違いがあります。
$PHP = '!/usr/bin/php'; #PHPのパス
びっくりマークはいらないですね。
$PHP = '/usr/bin/php'; #PHPのパス
No.2
- 回答日時:
>perlに「php」という命令があるということですか?
・・・・・
こういう形と同じ事を言ってるんだけど・・・
system "ls -1"
サーバ側にcli版phpが無いとできない
system "php print.php"
No.1
- 回答日時:
php print.php
みたいな形で呼んで結果を取り込んだらだめなのかな?パイプとか。
systemだかexecだかで呼ぶんじゃなかったっけ?
この回答への補足
>php print.php
>みたいな形で呼んで結果を取り込んだらだめなのかな?パイプとか。
perlに「php」という命令があるということですか?
検索したのですが、ちょっとうまくひっかけることができなかったので
もう少しつっこんだ感じでお伺いできますでしょうか。
要するにperlで結果を取り込んでその後divを置換で消すとか、単純な処理を考えています。
phpはあくまでサブルーチン的に別処理の結果を吐き出すためだけに使用しています。
>systemだかexecだかで呼ぶんじゃなかったっけ?
これを使うとどういう形で返ってくるのか、自分の知識ではいまいち心元ないです。実行させるのはいいとして、結果の受け取りにまた手続きがいるというか、何か変数を用意すればそれに入ってくれるのかなど、です。
元のプログラムにもあるように1行ずつ変数に入れて、必要な部分だけ抜き取って加工してprintで表示させたい思惑です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PerlかPHP
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
FTPにて553エラー
-
プロバイダで定められたPerlへ...
-
ApacheでのCGIについての質問
-
Namazuのインデックスが作成で...
-
ラジオボタンのグループ化
-
CGI経由PDFダウンロードでエラー
-
同じ階層内を意味する「./」を...
-
cgiにアクセスしても画面が真っ白
-
掲示板のスレッドが消えた!?
-
C# ファイル削除のエラーコード
-
ニフティでメールフォームを使...
-
CGIでソースがそのままでてしま...
-
ASPからJavaScriptへの受け渡し...
-
CGIカウンターの画像が表示され...
-
歌詞画ってどうやって作るの?
-
なぜかカウンターのパーミッシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIに関して
-
CGI内でphpを含むhtmlを読込みたい
-
CGIとPHPの違いってなんですか?
-
perlからphpを実行して結果を得...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
VBAでサーバーにアクセスするに...
-
CGIでソースがそのままでてしま...
-
ラジオボタンのグループ化
-
ASP(IIS?)のエラーについて
-
FTPにて553エラー
-
VBScriptで、ファイルから任意...
-
ASPから既存のexcelブックを開...
-
ASPからJavaScriptへの受け渡し...
-
SFTPなどは使わないホームペー...
-
ApacheでのCGIについての質問
-
ユーザの所属するグループを取...
-
特定のCGIだけ、作動するかわり...
-
PyCharmでのCGIを使ったWebサー...
おすすめ情報