アプリ版:「スタンプのみでお礼する」機能のリリースについて

基本的な質問になりますが、以下のphpファイルをブラウザからアクセスすると、Array ( )と表示されて実行できていません。やりたいことはブラウザでアクセスした際に、apiで取得した情報をtest.txtへ出力するという単純な動作です。コマンドラインから実施するとうまくいきますがブラウザからアクセスするとうまくいきません。考えられる原因をどなたか教えていただけないでしょうか。
#ちなみにMacで動作確認しています。

<?php

$url = 'http GET https://www.googleapis.com/discovery/v1/apis/';
$exec = exec($url ."> test.txt",$arr);
print_r($arr);

?>

質問者からの補足コメント

  • すいません、第三引数を以下のように設定し直しました。

    ■test.php
    <?php
    $url = 'http GET https://www.googleapis.com/discovery/v1/apis/';
    $exec = exec($url ."> test.txt",$arr,$tmp);
    print_r($arr);
    var_dump( $tmp );
    ?>

    ■コマンドライン実行時の出力
    $ php access2.php
    Array
    (
    )
    int(0)

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/09/26 18:29
  • うれしい

    自己解決しました。
    httpコマンドをフルパスで書くと動くようになりました。大変失礼しました。ご助言頂いてありがとうございます。

      補足日時:2015/09/26 20:22

A 回答 (3件)

コマンドラインで実行すると何が出力されるのでしょうか?


また、execの第三引数を指定して、コマンドのリターンコードを確認してください。
この回答への補足あり
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

コマンドラインで実行すると、

$ php test.php
Array
(
)

という表示され、test.txtに以下が出力されます。以下のような内容です(長いので省略)。
ちなみにコマンドはhttpieを使っています。

$ more test.txt
{
"kind": "discovery#directoryList",
"discoveryVersion": "v1",
"items": [
{
"kind": "discovery#directoryItem",
"id": "adexchangebuyer:v1.2",
"name": "adexchangebuyer",
"version": "v1.2",
"title": "Ad Exchange Buyer API",


第三引数を設定以下のように設定し、ブラウザでアクセスすると以下の表示です。

■test.phpファイル
<?php
$url = 'http GET https://www.googleapis.com/discovery/v1/apis/';
$exec = exec($url ."> test.txt",$arr,$tmp);
print_r($arr);
echo $tmp;
?>

■ブラウザでアクセス後の表示
Array ( ) 127

お礼日時:2015/09/26 18:21

test.txtのありかが、想定と違うのではないですか?


あなたの想定しない場所に作られている。
    • good
    • 0
この回答へのお礼

わかりにくくてすいません。
ブラウザからアクセスするとtest.txtファイルは作成されるのですが、中身がありません。これはexecでhttpコマンドを叩くどうさが働いていないのでは?と思っています。

スクリプトを見た感じは動きそうだ、という見解ということでよろしいでしょうか?
もう少し悩んでみます。

お礼日時:2015/09/26 20:10

>コマンドラインで実行すると、



>$ php test.php
>Array
>(
>)

>という表示され、

とお書きですが、質問文では、
>Array ( )と表示されて
と同じ結果ですよね?
なにが問題なんでしょうか?リターンコードも0だし、正常終了しているとしか思えません。
    • good
    • 0
この回答へのお礼

ブラウザからアクセスしてもtest.txtへリダイレクトされません。
またリダイレクトを外したスクリプトにすると、コマンドラインにAPI取得したデータが出力されるのですが、ブラウザからアクセスすると、Array ( )のみの表示で、取得するはずのデータが表示されないのです。

お礼日時:2015/09/26 19:17

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