首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中获取html正文的某些部分

问如何在php中获取html正文的某些部分
EN

Stack Overflow用户
提问于 2014-01-15 17:32:15
回答 2查看 319关注 0票数 0

我只想获取HTML正文的一些行,并且我正在使用PHP和c URL (例如,前10行)。通过获取某些部分,我的意思是我不想下载整个文件并获取其中的某些部分。

有没有办法只从服务器本身获取HTML文件的某些部分?通过在curl或PHP中进行一些设置。

EN

回答 2

Stack Overflow用户

发布于 2014-01-15 17:36:15

如果服务器支持,您可以发出range请求。

在您的HTTP请求标头中添加:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Range: 0-1500',
    ));

…获取前1500个字节,这可能是也可能不是前10行,这取决于行的长度。

这样做的问题(除了可能缺乏服务器的支持)是您需要知道文档中的哪些字节,然后必须从部分HTML而不是整个HTML文档中提取数据。

票数 2
EN

Stack Overflow用户

发布于 2014-01-15 22:10:24

您可以使用CURL从URL下载部分内容:

下面是一个实现该功能的函数:

代码语言:javascript
复制
function curl_get_content($url,$range_start,$range_end)
{
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array ("Range: bytes=$range_start-$range_end"));
$data = curl_exec($ch);
curl_close($ch);
return $data;
}


curl_get_content("http://www.example.org/some-file.zip",0,5000) 

返回前5000个字节。

备注:

确定远程服务器是否支持HTTP206的

代码语言:javascript
复制
curl -I http://s0.cyberciti.org/images/misc/static/2012/11/ifdata-welcome-0.png

示例输出:

代码语言:javascript
复制
HTTP/1.0 200 OK
Content-Type: image/png
Content-Length: 36907
Connection: keep-alive
Server: nginx
Date: Wed, 07 Nov 2012 00:44:47 GMT
X-Whom: l3-com-cyber
Cache-Control: public, max-age=432000000
Expires: Fri, 17 Jul 2026 00:44:46 GMT
Accept-Ranges: bytes // It accepts !
ETag: "278099835"
Last-Modified: Mon, 05 Nov 2012 23:06:34 GMT
Age: 298127
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21133597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档