我正在尝试使用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中运行良好,仅在实时网站上显示错误。
答案 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