• 締切済み

multiRequest関数で楽天API使用方法

multiRequest関数にて楽天含め2つのAPIを使用したいのですが、同時にmultiRequest関数で叩くと file_get_contents関数(楽天のコロンを取り除く為)でエラー表示が起きてしまいます。 以下、エラー表示部分 Warning: file_get_contents(<?xml version="1.0" encoding="UTF-8"?><Response><header:Header xmlns:header="http://...・・・・・・<reviewAverage>4.81</reviewAverage><pointRate>1</pointRate><pointRateStar in C:\xxxxx\xxxxx\search.php on line 306 以下、記述内容 $data = array( "http://api.rakuten.co.jp/rws/3.0/rest?developerId=xxxxx&operation=ItemSearch&version=2010-09-15&keyword=$word", "http://productsearch.linksynergy.com/productsearch?token=xxxxxx&keyword=$link_keyword", ); var_dump($data); $r = multiRequest($data); $data = file_get_contents($r[0]); $data= str_replace('itemSearch:ItemSearch', 'itemsearch', $data); $xml = simplexml_load_string($r); print_r($xml); ?>               ここまで。 尚、$xml = simplexml_load_string($r); の上2行を削除し、$xml = simplexml_load_string($r[1]); とした場合はもう1つのAPIの取得は出来ました。 また今、$dataと$rの変数が誤ってる事は存じております。 恐らく、file_get_contents関数の記述がおかしいのかとは思いますが、何がおかしいのか分かりません。 もしかしたら単純な事なのかもしれませんが、調べても全く出てこない為、分かる方がおりましたら、何卒お力添え頂けると助かります。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

noname#244856
noname#244856
回答No.1

$data = file_get_contents($r[0]); ではなく $data = $r[0]; でいいかと。 何故ファイルパスの部分に内容の文字列そのものをぶち込んでいるのかが分からない。

関連するQ&A

  • ヘッダーが付いた場合の、simplexml_load_fileでの取り出し方

    simplexml_load_file()を使って <?xml version="1.0" encoding="UTF-8" ?> - <Response> - <header:Header xmlns:header="http://test.com/"> </header:Header> - <Body> - <itemSearch:ItemSearch xmlns:itemSearch="http://test.com/"> <count>2000</count> <page>1</page> ...... この<count>2000</count> の「2000」を取り出すにはどうしたらよういのでしょうか? echo $Xml->Response->Body->itemSearch->count; このXML文書の構成様式が初めてで(ヘッダーが付いている)、いくらやっても 取得できないので宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Yahoo APIのXMLの取得について

    Yahoo APIのXMLで総数(totalResultsAvailable)を取得したいのですが、取得できません。 $url = "http://api.search.yahoo.co.jp/WebSearchService/xx/webSearch?appid=xxxxx&query=$query"; $xml= simplexml_load_file($url); $yahooxml=$xml->Result->Item ; $totalResults = $yahooxml->{totalResultsAvailable}; print_r ($totalResults); $urlは問題なく値が入ってるのですが、$totalResults ではSimpleXMLElement Object ( ) と返ってきてしまいます。どうすれば、$totalResults の値を取得できるのでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • simplexml_load_fileのエラー

    AmazonのAPIを使ったWebサイトを作っていて、simplexml_load_fileを使って外部サーバのXMLを読み込もうとしています。 ローカル・サーバ1ではうまくいきますが、サーバ2ではI/O warning : failed to load external entity となり読み込めません。 3つのサーバで使用しているプログラムは全く同じです。 PHPのバージョン、SimpleXMLのRevisionは下記の通り。 ローカル:5.2.5、1.151.2.22.2.35 サーバ1:5.2.9、1.151.2.22.2.46 サーバ2:5.2.9、1.151.2.22.2.46 調べていると、XML文字列の中に実体参照等パースエラーとなる文字が含まれているとこのようなエラーが出るとのことでしたが、該当するような文字列はありませんし、同じプログラムでも別のサーバであれば取得できるのでその可能性は考え辛いですが、この場合の対処方法として、file_get_contentsで一度文字列として受け取ってから、simplexml_load_stringでパースするとあったので、それも試しました。 しかし、simplexml_load_fileであれば数秒で取得できるものが、file_get_contentsだと4分以上かかりました。 できればsimplexml_load_fileで行いたいのですが、上記のような違いが出る可能性として考えられることは何かありますでしょうか。

    • 締切済み
    • PHP
  • Twitterフォロワー数 取得 API xml

    【 Twitterフォロワー数 取得 API xml 】 twitterのフォロワー数を取得しwebsiteに表示したいです。 下記のcodeを記述したのですが、 取得出来ない場合があります。 (Aのサイトですと表示されBのサイトですと表示されない) <?php $urlt = str_replace(0xefbbbf, '', file_get_contents('http://api.twitter.com/1/statuses/user_timeline.xml?id=□□□□□□')); $xmlt = simplexml_load_string($urlt); print $xmlt->status->user->followers_count; ?> ※上記の □□□□□□ 部分には 表示させたいtwitterのscreen_nameかidをいれます。 どうしてもわからずこちらに質問させて頂きました。。。 よろしくお願いいたします。。

    • 締切済み
    • PHP
  • simplexmlでルート要素の値を取得したい

    PHPでsimplexmlを用いていますが、XMLから値を取得する方法で、他のタグなどの情報は取り出せるのですが、ルート要素である以下の文章からtotalResultsの値である20だけを取り出したいですがうまくいきません。 <ResultSet totalResults="20" totalReturned="2"> 以下のようにあるところへ投げた結果のXMLを取得しています。 $file = file_get_contents( $url ); $xml = simplexml_load_string( $file ); お手数ですがよろしくお願いします。

    • ベストアンサー
    • PHP
  • APIで取得した情報の「次ページ」

    仕事で最近PHPの勉強をはじめ、将来的にはAPIを活用したサイトを作りたいのですが、次ページの表示の仕方がわかりません。 「次ページへ」 「前ページへ 次ページへ」 と表示したいのですがどのようにすれば、次ページや前ページを表示できるのでしょうか?? APIは価格comの商品検索です。 http://apiblog.kakaku.com/KakakuItemSearchV1.0.html プログラムの内容は、簡単に書きますが +++++++++++++++++++++++++++++++++++ $keyword = $_GET['Keyword']; $url = "​http://api.kakaku.com/Ver1/ItemSearch.asp?Keyword=".$keyword."CategoryGroup=pc&ResultSet=medium&SortOrder=pricerank&PageNum=1"; $a = simplexml_load_file($url) or die("XMLパースエラー"); echo "検索結果".$a->NumOfResult."件"; foreach ($a->Item as $b){ echo "製品名".$b->ProductName ; } +++++++++++++++++++++++++++++++++++ です。 これで最初の5件は表示されるのですが、ここから「次ページ」「前ページ」のリンクを出すにはどのようにするのでしょうか? ご返答よろしくお願いします。

    • 締切済み
    • PHP
  • simplexml_load_file でデータがうまく取得できない

    楽天ウェブサービスの楽天トラベルキーワード検索APIを、 PHP5でsimplexml_load_fileにより利用しているのですが、うまくゆきません。 ■楽天トラベルキーワード検索API http://webservice.rakuten.co.jp/api/keywordhotelsearch/ 1.現象 simplexml_load_fileで取得したデータをprint_rで表示させると、下記のように、ヘッダ(共通パラメーター)の部分が取得できません。 しかしながら、ブラウザからリクエストURLを直打ちすると、正常にデータが取得できていることがわかります。 ■print_rでの出力結果 -------------------------------------------------- SimpleXMLElement Object ( [Body] => SimpleXMLElement Object ( ) ) -------------------------------------------------- ■コーディング $xml = simplexml_load_file($restURL) or die("XMLパースエラー"); echo "<pre>"; print_r($xml); echo "</pre>"; ■ブラウザにリクエストURLを直打ちして出力した結果 -------------------------------------------------- <Response>  <header:Header>   <Args>    <Arg key="User-Agent" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6">true</Arg>    <Arg key="developerId" value="****">true</Arg>    <Arg key="affiliateId" value="****">true</Arg>    <Arg key="operation" value="KeywordHotelSearch">true</Arg>    <Arg key="version" value="2007-04-11">true</Arg>    <Arg key="keyword" value="アートホテルズ札幌">true</Arg> </Args> <Status>Success</Status> <StatusMsg/> </header:Header> <Body> <keywordHotelSearch:KeywordHotelSearch> <hotelSimple> …… -------------------------------------------------- なぜ、simplexml_load_fileで取得した場合がうまくいかないのか原因がわかりません。 ブラウザ直打ちの場合も、simplexml_load_fileの場合もリクエストURLは同一であることを確認しています。 ちなみに、楽天商品検索APIと楽天トラベル地区コードAPIは既に利用していますが、正常にデータが取得できています。 楽天商品検索APIと楽天トラベル地区コードAPIと、楽天トラベルキーワード検索APIとでの 出力結果の差異は、正常にデータ取得できているAPIの共通パラメーターと呼ばれる部分の名前が、 "<Header>"となっていることです。 楽天トラベル地区コードAPIの場合は、 " <header:Header xmlns:header="http://api.rakuten.co.jp/rws/rest/Header"> " です。 これが原因なのかなとも思いましたが、対処法がわかりません。 どなたかアドバイスをお願いいたします。

    • 締切済み
    • PHP
  • ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて

    ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて ツイッターのAPIを利用してアプリケーションを開発しています。 OAUTH認証でアクセストークンの取得まではできたのですが、 アクセストークンを使ってAPIにアクセスしたところページが 存在しないとの旨を伝えられました。 ↓実際のソース https://twitter.com/1/statuses/update.xml?in_reply_to_status_id=自分のID(アクセストークンで取得したもの)&oauth_consumer_key=OAUTHコンシューマキー&oauth_nonce=ランダム文字列&oauth_signature_method=HMAC-SHA1&oauth_timestamp=タイムスタンプ&oauth_token=アクセストークン&oauth_version=1.0&status=つぶやきたい内容&oauth_signature=署名 上記URLにheader()(リダイレクト)でアクセスしています。simplexml_load_file()や file_get_contents();だと何も取得できませんでした。 特に不安なのがin_reply_to_status_idの指定先と実際のリクエストの仕方が良く わからない事です。何とかして呟きたいのでご教示よろしくお願いいたします。

  • atomのパースについて

    いま、TwitterのAPIについて色々と研究しています。 searchのAPIで取得した、atom形式のファイルをパースしたいのです。たとえば、@twitterを含むものを検索して、その結果をパースして、表示したい場合は、 <?php $test=file_get_contents("http://search.twitter.com/search.atom?q=%40twitter"); $xml=simplexml_load_string($test); print($xml); ?> で良いのかと思っていたのですが、サイト上でphpファイルを実行しても、真っ白な画面が表示されるだけで上手くいきません。 どこがおかしいのでしょう? 基本的なところがわかっていない気がするのですが、どこがわかってないのかすら良くわからなくなってきました。 ご教示をお願い致します。

    • ベストアンサー
    • PHP
  • XML関数

    ちょっとした設定ファイルをXMLファイルで持ち、 DBのように扱いたいのです。 DBで言うselectは「simplexml_load_file()」で補うとして、 updateやinsertみたいなXMLファイルの内容を手軽に変更できるような XML関数はありますでしょうか? XML関数興味を持ち始めたばかりで、おかしな質問かもしれませんが ご回答の程、宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう