【问题标题】:In PHP, How to search and match a specific string with JSON data?在 PHP 中,如何使用 JSON 数据搜索和匹配特定字符串?
【发布时间】:2011-02-14 04:05:35
【问题描述】:

我有一堆字符串,我想知道它们是否存在于 JSON 响应中。

我使用了以下代码,但它不起作用。我不想遍历 JSON 数据。

 $url  = "https://graph.facebook.com/me/feed?access_token=".$session['access_token'];
 $page=file_get_contents($url);
 $json_a = json_decode($page,true);

 $pos = strpos($page, $mystring);
 if($pos == true)
 {
     do something
 }

$page 不包含带有 JSON 提要内容的字符串。如何将 JSON 转换为字符串以便我可以检查 $mystring ?

编辑:

这很奇怪。 当我使用网址https://graph.facebook.com/me/feed?access_token=".$session['access_token']

我得到空数据,但是当我使用“https://graph.facebook.com/me/friends?access_token=".$session['access_token'];

一切都很好,我得到了我所有朋友的名单。我无法理解我哪里出错了?

这是链接http://developers.facebook.com/docs/reference/api/ 我为个人资料提要(墙)使用了确切的 url 格式:https://graph.facebook.com/me/feed?access_token=...

【问题讨论】:

  • 您说 $page 不包含 JSON 字符串,如果您想对其进行 json_decode ,它应该包含。检查 file_get_contents 的返回值,因为它在错误时返回 false。

标签: php json pattern-matching


【解决方案1】:

JSON IS 一个字符串,直到您通过 decode 函数运行它并将其转换为 php 结构。你应该可以做到

if (strpos($page, "your search string") !== FALSE) {
    echo "hey, it's in there"; 
}

如果您的 $page 出现空白,那么您的 file_get_contents 调用会以某种方式失败。

【讨论】:

  • 我使用了 echo file_get_contents($url);我得到的输出是 {"data":[]} 而不是嵌入其中的实际数据
  • 不...这是一个表示对象的 JSON 字符串,具有一个键值对。键是“数据”,值是空数组。
  • 我认为您的问题与原始问题有很大不同。可能值得创建一个新的。
  • 这个答案虽然消除了一些基本疑问。将打开一个新问题来解决问题。
  • 嗯,{"data":[]} 是一个有效的 json 表示,这是从 Facebook 回来的。因此,您的访问令牌有问题,并且 facebook 返回“Nothing”(不过,如果他们有一个错误部分来解释原因,那就太好了)
猜你喜欢
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
相关资源
最近更新 更多