第一步:抓取页面代码
$url = 'http://www.baidu.com';//可以是本地页面的链接
//获取文档的内容(包括html代码)
$result = file_get_contents($url);
第二步:筛选需要的标签
在需要导出的标签范围外用一个特殊的命名标签包起来,便于正则匹配;如果是导出整个html,则可省略该步骤,直接echo “$result”;注意引号一定要加;
$regex="/\<exportword\>[\s\S]*?\<\/exportword\>/i";
if(preg_match_all($regex, $result, $matches)){
$word = "<html>".$matches[0][0]."</html>";
//file_put_contents('./test.txt', $word);//可用于抓取测试查看
echo $word;
}
第三步:打开缓冲区
ob_start();
header("Cache-Control: public");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
第四步:判断浏览器类型
$filename = date('Y-m-d H:i:s') . '.doc';
if (strpos($_SERVER["HTTP_USER_AGENT"],'MSIE')) {
header('Content-Disposition: attachment; filename=' . $filename);
}else if (strpos($_SERVER["HTTP_USER_AGENT"],'Firefox')) {
Header('Content-Disposition: attachment; filename=' . $filename);
} else {
header('Content-Disposition: attachment; filename=' . $filename);
}
第五步:输出到浏览器
//不使用缓存
header("Pragma:no-cache");
//设置过期时间
header("Expires:0");
//输出
ob_end_flush();