file_get_contents():stream不支持寻求PHP

时间:2016-11-26 09:07:26

标签: php file-get-contents

我正在尝试使用file_get_contents()从伪名称生成器站点(https://fakena.me/fake-name/)中仅获取名称,但是我收到以下警告:

< p>

file_get_contents() stream does not support seeking 

我不需要页面的全部内容。我只需要此网站中的名称部分:https://fakena.me/fake-name/


我的代码:

$name= file_get_contents('https://fakena.me/fake-name/', NULL, NULL, 849, 32);

它在localhost中运行良好,仅在实时网站上显示错误。

3 个答案:

答案 0 :(得分:3)

您可以在documentation

中阅读相关内容
  

远程文件不支持寻找(偏移)。试图   寻找非本地文件可能适用于小偏移,但这是   不可预测,因为它适用于缓冲流。

您可以执行的操作是在您检索页面内容后使用substr

$part = substr($name, 849, 32);

答案 1 :(得分:0)

这基本上是最新版本中的抵销问题

在这里,我们需要将$ offset值从-1 t0 1更改

  public static function file_get_html( $url, $use_include_path = false, $context = null, $offset = 1, $maxLen = -1, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT )
        {
    }

答案 2 :(得分:0)

您为什么要抓取网站?大量免费的API可用于假名生成器。

TRY:  https://uinames.com/api/

您将获得JSON格式的输出。使用json_decode()对其进行解码,并用于您的目的,并且与抓取相比它要快。

可选参数

要返回的名称数,介于1到500之间:

https://uinames.com/api/?amount=25 

将结果限制为男性或女性:

https://uinames.com/api/?gender=female

特定地区的结果:

https://uinames.com/api/?region=germany

名称中至少需要包含字符数:

https://uinames.com/api/?minlen=25

名称中最多可包含字符:

https://uinames.com/api/?maxlen=75

对于JSONP,请指定一个回调函数以将结果包装在其中:

https://uinames.com/api/?callback=example