PHP正则匹配Html内容,并通过浏览器弹框下载Excel

一、我结合之前自己写的2篇,写了这一篇

PHP打印Excel表格并下载  去看看

PHP正则匹配html标签      去看看

二、浏览器输入地址,访问,弹出Excel下载框

三、下载完成后Excel的内容

四、完整代码

<?phpnamespace app\index\controller;class Ablog extends Base
{/*** 开始方法*/public function start(){$data = $this->getData();$this->downExcel($data);}/*** 浏览器弹框下载Excel* @param $data 存放到表格中的数据*/public function downExcel($data){//打开请求头$filename = "博文信息(".date("Ymd").")";//设置浏览器信息header("Content-type:application/vnd.ms-excel;charset=UTF-8");header("Content-Disposition:filename=".$filename.".xls");ob_clean(); //清空缓冲区echo '<meta http-equiv="Content-Type" content="text/html; charset=GBK" />';$content = '<table border="1" cellspacing="0">';    // width="70%"$content .='<tr >';//style="font-size: 16px;font-weight: 800;"$content .='<th align="center" height="30" width="120">'.mb_convert_encoding("类型",'GBK').'</th>';$content .='<th align="center" height="30" width="120">'.mb_convert_encoding("标题",'GBK').'</th>';$content .='</tr>';foreach ($data as $k => $v){$content .='<tr>';$content .='<td height="30" align="center">'.mb_convert_encoding($v['type'],'GBK').'</td>';$content .='<td height="30" align="center">'.mb_convert_encoding($v['title'],'GBK').'</td>';$content .='</tr>';}$content .='</table>';echo $content;exit();}//正则匹配html中的数据public function getData(){$url  = "https://blog.csdn.net/cungudafa";$html = file_get_contents($url);//匹配是原创还是转载,匹配标题$pattern = '/<span class="article-type type-1 float-none">([^\<]+)<\/span>([^\<]+)<\/a>/';preg_match_all($pattern, $html, $result);if (empty($result[0])){exit('匹配内容失败!');}//每一个()对应一个数组,默认第0个是匹配所有内容,所以匹配的结果里有3个数组
//        $allHtml = $result[0];
//        var_export($allHtml);die(); //打印看下效果//$allType 和 $allTitle 数量一致$allType = $result[1];$allTitle = $result[2];//处理数据$data = [];foreach ($allType as $key => $value){$data[] = ['type' => $value,'title' => trim($allTitle[$key])    //获取标题,去除空格];}return $data;}
}

PHP正则匹配Html内容,并通过浏览器弹框下载Excel相关推荐

  1. php 正则匹配内容,php读取、正则匹配邮件内容的方法

    本篇文章主要介绍php读取.正则匹配邮件内容的方法,感兴趣的朋友参考下,希望对大家有所帮助. 本文实例讲述了PHP处理postfix邮件内容的方法.具体如下: //从输入读取到所有的邮件内容 $ema ...

  2. html正则表达式怎么写用户名非空,js通过正则匹配没有内容的空标签

    js 如何正则匹配没有内容的空标签并移除掉? 例如 等等 正则 /]*?)?>\s*?/ig html=' '+ '\n '+ '\n'+ '\n '+ '\n '+ '\n '+ '\n'+ ...

  3. 怎么禁止浏览器弹框记住/保存密码及不自动填充密码

    一.本文解决的问题: 1.不会在浏览器弹框提示保存密码 2.用户名和密码框不自动填充已保存的信息 3.单击用户名框时不下拉选择历史输入过的信息 测试浏览器:IE,谷歌,火狐 二.现象及问题: 1.登录 ...

  4. 阻止微信浏览器/QQ浏览器弹框“在浏览器打开”

    阻止微信浏览器/QQ浏览器弹框"在浏览器打开" 相信许多移动端工程师对下面这张图中出现的东西记忆深刻: 微信浏览器和QQ浏览器有个自带的特殊功能,就是长按会出现上图所示的弹框.有时 ...

  5. java匹配出某单词除外_java正则匹配 指定内容以外的 内容

    今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...

  6. php 匹配括号的个数,php 正则匹配括号内容 PHP实现正则匹配所有括号中的内容

    正则表达式:(?<=[)[^]]+ 注:以匹配中文括号中内容为例,如果匹配非中文括号,则需要在括号前增加转义符 PHP实现示例: $strSubject = "abc[111]abc[ ...

  7. 下载文件时,响应Response设置,浏览器弹出下载框

    在你潇洒的写下InputStream转到response的时候,需要先设置下Response,否则浏览器并不会弹出下载框 预处理 "Content-Type", "app ...

  8. php正则 替换div标签内容,PHP 正则匹配标签内容,根据字符串长度进行替换

    写了一个函数 /** * @param string $html html文本数据 * @param array $rule 处理的规则, [ '需要处理的标签' => 限制的字符数量 ] * ...

  9. @ResponseBody返回JSON数据,360安全浏览器弹出下载页面

    文章目录 问题重现 解决方法 成功解决 问题重现 Controller中使用@ResponseBody返回JSON数据. @Controller public class StudentControl ...

  10. 常用JS正则匹配函数

    //校验用户名:只能输入1-30个字母 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) retur ...

最新文章

  1. Scrum Master的职业发展路线
  2. python内置函数有哪些_Python集合有哪些内置函数可以使用,这些内置函数有什么功能...
  3. Serializable在C#中的作用及其优点
  4. 三:Java之Applet
  5. linux内核打印前有buildroot,buildroot-linux内核
  6. 烂泥:perl中CPAN的安装
  7. 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
  8. 自己动手编译android ffmpeg
  9. Python numpy.ones_like函数方法的使用
  10. Tableau基础-第一章(初学者)
  11. pyinstaller说明(windows、mac、linux)
  12. 学大伟业2018-2019学年第二学期《自主招生集训课程》
  13. DayDayUp:2021,再见了,无论是躺平还是内卷—愿大家改变不可接受的,接受不可改变的—心若有向往,何惧道阻且长
  14. 电脑中休眠和待机的区别
  15. 一行代码搞定Android弧形卫星动画菜单(附Demo)
  16. 国家开放大学-农村社会学-形考作业3社会问题的调查报告
  17. Cadence Orcad Capture修改图纸大小的2种常用方法图文教程及视频演示
  18. _()---由此知度娘和google的冷暖
  19. AU2009大会介绍附课程名称
  20. python字典(dictionary)

热门文章

  1. 连续年份高精度人口密度分布数据
  2. 面向对象9:方法的重写、super关键字、子类对象的实例化过程
  3. python 两个list 求交集,并集,差集
  4. storm流式处理框架
  5. 浪潮服务器怎么获取cpu信息,浪潮获取cpu、内存、硬盘等信息(redfish协议+restfull协议)...
  6. vue脚手架实现选项卡_从零一步步实现一个前端脚手架
  7. linux内核驱动摄像头图片,详解linux 摄像头驱动编写
  8. 2018计算机java二级题库6_2018年计算机二级考试JAVA试题及答案六
  9. oracle为表空间增加数据文件_只读数据文件损坏恢复实验记录
  10. apache 添加虚拟机