2

Web サイト用に安らかな Web サービスを構築しようとしています。次のコードを使用した php mysql クエリがあります。

function mysql_fetch_rowsarr($result, $taskId, $num, $count){
  $got = array();
  if(mysql_num_rows($result) == 0)
    return $got;
  mysql_data_seek($result, 0);
  while ($row = mysql_fetch_assoc($result)) {
    $got[]=$row;
}
  print_r($row)
  print_r(json_encode($result));
  return $got;  

上記のコードで print_r($data) を使用して次を返します

Array ( [0] => Array ( [show] => Blip TV Photoshop Users TV [region] => UK [url] => http://blip.tv/photoshop-user-tv/rss [resourceType] => RSS / Atom feed [plugin] => Blip TV ) [1] => Array ( [show] => TV Highlights [region] => UK [url] => http://feeds.bbc.co.uk/iplayer/highlights/tv [resourceType] => RSS / Atom feed [plugin] => iPlayer (UK) ) ) 

返されるjsonは次のとおりです。

 [{"show":"Blip TV Photoshop Users TV","region":"UK","url":"http:\/\/blip.tv\/photoshop-user-tv\/rss","resourceType":"RSS \/ Atom feed","plugin":"Blip TV"},{"show":"TV Highlights","region":"UK","url":"http:\/\/feeds.bbc.co.uk\/iplayer\/highlights\/tv","resourceType":"RSS \/ Atom feed","plugin":"iPlayer (UK)"}]

次のコードを使用していくつかの項目を配列に追加し、それを json に変換して json を返します。

 $got=array(array("resource"=>$taskId,"requestedSize"=>$num,"totalSize"=>$count,"items"),$got);

次のコードを使用して json に変換し、それを返します。

 $response->body = json_encode($result);
 return $response;

これにより、次のjsonが得られます。

[{"resource":"video","requestedSize":2,"totalSize":61,"0":"items"},[{"show":"Blip TV Photoshop Users TV","region":"UK","url":"http:\/\/blip.tv\/photoshop-user-tv\/rss","resourceType":"RSS \/ Atom feed","plugin":"Blip TV"},{"show":"TV Highlights","region":"UK","url":"http:\/\/feeds.bbc.co.uk\/iplayer\/highlights\/tv","resourceType":"RSS \/ Atom feed","plugin":"iPlayer (UK)"}]]

API のコンシューマーは、次の形式の json を必要としていますが、この方法で取得する方法がわかりません。私は見つけることができるすべてを検索して試しましたが、まだ取得できません。そして、私はxmlフォーマットを取得しようとさえしていません

 {"resource":"video", "returnedSize":2, "totalSize":60,"items":[{"show":"Blip TV Photoshop Users TV","region":"UK","url":"http://blip.tv/photoshop-user-tv/rss","resourceType":"RSS / Atom feed","plugin":"Blip TV"},{"show":"TV Highlights","region":"UK", "url":"http://feeds.bbc.co.uk/iplayer/highlights/tv","resourceType":"RSS / Atom feed","plugin":"iPlayer (UK)"}]}

これに関するすべての助けに感謝します。読み取り専用アクセスでデータベースのコピーをセットアップし、役立つすべてのソースコードを提供できます。私はちょうど今PHPを学んでいることを警告します.基本的なfortran 77でプログラミングすることを学んだので、PHPはかなり面倒です.かなり肥大化していると思います。

OK 上記の json エンコーディングについては回答済みです。API コンシューマーは、特殊文字 "/" も URL であるためエスケープしないことを望んでいます。json_encode で「 JSON_UNESCAPED_SLASHES 」を試したところ、次のエラーが発生しました。

 json_encode() expects parameter 2 to be long
4

1 に答える 1

0

あなたの$result行は次のようになります

$result=array(
    "resource"=>$taskId,
    "requestedSize"=>$num,
    "totalSize"=>$count,
    "items" => $got
);
于 2012-04-11T23:48:33.417 に答える