1

我收到这样的警告信息

警告:file_get_contents() [function.file-get-contents]:流不支持查找

这是代码

$f=file_get_contents('https://api.facebook.com/method/stream.publish?message='.$facebook_message1[0].'%20'.$facebook_message1[1].'%20'.$facebook_message1[2].'%20'.$facebook_message1[3].'%20'.$facebook_message1[4].'%20'.$facebook_message1[5].'%20'.$facebook_message1[6].'%20'.$facebook_message1[7].'%20'.$facebook_message1[8].'%20'.$facebook_message1[9].'%20'.$facebook_message1[10].'%20'.$facebook_message1[11].'%20'.$facebook_message1[12].'%20'.$facebook_message1[13].'%20'.$facebook_message1[14].'%20'.$facebook_message1[15].'%20'.$facebook_message1[16].'%20'.$facebook_message1[17].'%20'.$facebook_message1[18].'%20'.$facebook_message1[19].'%20'.$facebook_message1[20].'&attachment={"name":"'.$url.'","href":"'.$url.'","caption":"","description":"","media":[{"type":"image","src":"'.$facebook_image.'","href":"'.$cat.'"}]}&uid='.$user_id.'&access_token='.$access_token.'', NULL, NULL, 246);

$fID = substr_replace($f,"",-27);
4

2 回答 2

2

您的直接问题是您正在使用file_get_contents. 您应该简单地省略它并在稍后切断$fwith的相关部分,如下所示:substr

$f = substr($f, 246);

但是,还有许多其他问题:

  1. 的处理$facebook_message是残酷的。保存您的理智并使用implode('%20', $facebook_message)而不是手动字符串连接。
  2. 在代码246中使用幻数是一个非常糟糕的主意。-27你是如何产生这些价值观的?显然,它们指的是由某些东西分隔的结果字符串的一部分,因此通过编写找到分隔符的代码来记录它。您当前的代码将在 facebook 对其返回值格式进行任何小的更改时中断,即使该更改纯粹是技术性的并且从语义的角度来看没有任何区别。
于 2011-10-21T14:47:24.187 回答
1

你已经告诉 file_get_contents 用最后一个参数来抵消 246 - 你不能用 HTTP url 做到这一点。您将获取整个响应,然后使用

$f = substr($f, 246);

从 246 开始提取部分。

于 2011-10-21T14:47:22.527 回答