gpt4 book ai didi

php - 使用 fsockopen 检索页面将数字添加到返回的字符串

转载 作者:行者123 更新时间:2023-12-03 12:01:31 24 4
gpt4 key购买 nike

这很奇怪,在某些页面上它会很好地返回 HTML,而在其他页面上它会在返回的字符串的开头和结尾添加数字( $out )。

function lookupPage($page, $return = true) {
$fp = fsockopen("127.0.0.1", 48580, $errno, $errstr, 5);
if (!$fp) {
return false;
}
else {
$out = "";
$headers = "GET /" . $page . " HTTP/1.1\r\n";
$headers .= "Host: www.site.com\r\n";
$headers .= "Connection: Close\r\n\r\n";
fwrite($fp, $headers);
stream_set_timeout($fp, 300);
$info = stream_get_meta_data($fp);
while (!feof($fp) && !$info['timed_out'] && ($line = stream_get_line($fp, 1024)) !== false) {
$info = stream_get_meta_data($fp);
if ($return) $out .= $line;
}
fclose($fp);
if (!$info['timed_out']) {
if ($return) {
$out = substr($out, strpos($out, "\r\n\r\n") + 4);
return $out;
}
else {
return true;
}
}
else {
return false;
}
}
}

例如...
3565
<html>
<head>
...
</html>
0

最佳答案

它被称为 Chunked Transfer Encoding

它是 HTTP 1.1 协议(protocol)的一部分,您正在以 HTTP 1.0 的方式对其进行解码。您可以检查这些值并根据需要修剪它们。它们只显示响应的长度,因此浏览器知道它具有完整的响应。

也可以看看 file_get_contents

关于php - 使用 fsockopen 检索页面将数字添加到返回的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com