出産前後の痔にはご注意!

お世話になります。
PHPでcurlを使用して外部のサーバ上にあるプログラムを実行しようとしています。

$command = "curl -m 10 http://~~?param=~~~";
$result = shell_exec(command);

このようにプログラム上で記述しているのですが、うまく動作しません。
正常な動作としては、処理を行った後に「TRUE」という文字列が返ってくるはずなのですが、
画面上に$resultの値を出力してみると、「~~~</body></html>」と、
なぜかHTMLタグが返ってきており、正常な処理が行われません。

ためしにコマンドライン上より
curl -m 10 http://~~?param=~~~
を実行すると、「TRUE」という文字が表示されてきちんと動作しますので、外部に置いてある
プログラムの問題ではなく、こちらで作成したPHPでの記述の仕方に問題があると思われるのですが
どこを修正するべきか、アドバイス等いただけないでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

そりゃそうでしょ


http://jp2.php.net/manual/ja/function.shell-exec …

一部抜粋
--------------------------
シェルによりコマンドを実行し、文字列として出力全体を返す
--------------------------

コマンドの可否を返すとは書いてないね。
返値によって判定するしか無いんじゃない?

この回答への補足

ご回答ありがとうございます。
少々説明が不足しておりましたが、外部プログラムでは成功すれば
return "TRUE";
失敗すれば
return "FALSE"
のように、"TRUE"または"FALSE"という「文字列」を返すようなプログラムになっています。
ですので、実行結果としてPHPプログラム内で実行した場合にも"TRUE"または"FALSE"という文字列を
取得したいのですが、これはPHPプログラム内で取得するのは不可能でしょうか?
恐縮ですがご指導いただけるとうれしいです。
よろしくお願い致します。

補足日時:2008/03/10 15:22
    • good
    • 0
この回答へのお礼

すみません、間違いです。
echo "TRUE"
となっている値を取得したいのです。
しかし、ブラウザ上で行うと返ってくる値はHTML...
よろしくお願い致します

お礼日時:2008/03/10 17:17

>>curl -m 10 http://~~?param=~~~


>ブラウザ上で行うと返ってくる値はHTML...
ところでこの「~~?」は何?
「xxx.php?」とか?
どっちにしてもCURLで持ってくるのはHTMLって前提が有るようだからそういう加工されちゃうんじゃない?

こんな風になってる?
<html><body>TRUE</body></html>

だとしたら「~~?」側で「text/plain」で吐いてみたらどうかな
    • good
    • 0
この回答へのお礼

お礼が大変遅くなり、申し訳ございません。
どうやら外部サーバ上で、受付するIPアドレスを制限していたようです。
お手数おかけし申し訳ございません。ありがとうございました。

お礼日時:2008/10/18 17:48

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング