首页 > 编程语言 >php第三方库:用simple_html_dom解析html(php)

php第三方库:用simple_html_dom解析html(php)

时间:2023-05-19 15:22:39浏览次数:48  
标签:string dom blog html php data

一,第三方库的地址:

https://github.com/voku/simple_html_dom

二,安装库:simple_html_dom:

1,安装
[lhdop@blog parsehtml]$ composer require voku/simple_html_dom
Info from https://repo.packagist.org: #StandWithUkraine
…
2,安装完成后查看安装成功的文件:
[lhdop@blog parsehtml]$ ls
composer.json  composer.lock  vendor
[lhdop@blog parsehtml]$ ls vendor/
autoload.php  composer  symfony  voku
[lhdop@blog parsehtml]$ ls vendor/voku/
simple_html_dom
[lhdop@blog parsehtml]$ ls vendor/voku/simple_html_dom/
build  CHANGELOG  composer.json  LICENSE  README_API.md  README.md  src

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/
         或: https://gitee.com/liuhongdi

说明:作者:刘宏缔 邮箱: [email protected]

三,安装库时报错的处理:

1,报错:
[lhdop@blog parsehtml]$ composer require voku/simple_html_dom
/usr/bin/env: ‘php’: No such file or directory
报错原因:composer没找到php 2,解决:把php添加到path中, 在/etc/profile中添加即可,例:
[root@blog composer]# vi /etc/profile
在末尾添加:
export PHP_HOME=/usr/local/soft/php7
export PATH=$PATH:/usr/local/bin:$PHP_HOME/bin
添加后使用效:
[root@blog composer]# source /etc/profile

四,使用simple_html_dom的例子

 1,代码:
<?php
//引用HtmlDomParser类
use voku\helper\HtmlDomParser;
//包含composer安装的目录下的autoload.php
require_once 'vendor/autoload.php';

//被解析的html代码
$one = '<img class="rich_pages wxw-img" data-backh="433" data-backw="578" data-cropselx1="0" data-cropselx2="578" data-cropsely1="1" data-cropsely2="1000" data-galleryid="" data-ratio="0.75" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/dr04j7dPGur6ansRPUjbwFtXwDRONx8yk7icBj5IdUOrUOMyhVrcANuuB0oYLWZ97nbWquUmR5fWU1a8KUGeZPA/640?wx_fmt=jpeg" data-type="png" data-w="1200" style="width: 100%;height: auto;">';

//解析
$dom = new HtmlDomParser($one);
$imgs = $dom->find('img');
//取第一个
$v = $imgs[0];
//得到属性
$attrsImg = $v->getAllAttributes();
var_dump($attrsImg);
?>
2,测试效果
[lhdop@blog parsehtml]$ /usr/local/soft/php7/bin/php parsedemo.php
array(14) {
  ["class"]=>
  string(18) "rich_pages wxw-img"
  ["data-backh"]=>
  string(3) "433"
  ["data-backw"]=>
  string(3) "578"
  ["data-cropselx1"]=>
  string(1) "0"
  ["data-cropselx2"]=>
  string(3) "578"
  ["data-cropsely1"]=>
  string(1) "1"
  ["data-cropsely2"]=>
  string(4) "1000"
  ["data-galleryid"]=>
  string(0) ""
  ["data-ratio"]=>
  string(4) "0.75"
  ["data-s"]=>
  string(7) "300,640"
  ["data-src"]=>
  string(135) "https://mmbiz.qpic.cn/mmbiz_jpg/dr04j7dPGur6ansRPUjbwFtXwDRONx8yk7icBj5IdUOrUOMyhVrcANuuB0oYLWZ97nbWquUmR5fWU1a8KUGeZPA/640?wx_fmt=jpeg"
  ["data-type"]=>
  string(3) "png"
  ["data-w"]=>
  string(4) "1200"
  ["style"]=>
  string(25) "width: 100%;height: auto;"
}

五,查看php的版本

[lhdop@blog ~]$ /usr/local/soft/php7/bin/php --version
PHP 7.4.2 (cli) (built: Apr 20 2022 16:49:58) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
 

标签:string,dom,blog,html,php,data
From: https://www.cnblogs.com/architectforest/p/17415239.html

相关文章

  • html和css
    Web第一天一、html和CSS1.B/S软件的结构JavaSE:C/SClientServerB/SBrowserServer2.前段开发流程3.网页的组成部分页面由三部分组成!分别是内容(结构)、表现、行为。内容(结构),是我们在页面中可以看到的数据。我们称之为内容。一般内容我们使用html技术来展示。表现,......
  • HTML 简介
    网页我们接下来是进行的网页开发,这里首先介绍下网页的相关概念:什么是网页?网页是指在因特网根据一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合。网页是网站中的一"页",通常是HTML格式的文件,它要通过浏览器来阅读。网页是构成网站的基本元素,它通常由图片、......
  • 转载【环境搭建】docker+nginx部署PHP
      目的使用docker容器完成nginx的安装以及部署PHP网页步骤一、安装nginx1.拉取Nginx镜像dockerpullnginx//拉取镜像dockerimages//查看本地镜像这里注意需要记一下nginx的IMAGEID,我这里的ID是605c2.创建Nginx容器dockerrun--nam......
  • Ext中的get、getDom、getCmp、getBody、getDoc的区别
    Ext中包含了几个以get开头的方法,这些方法可以用来得到文档中DOM、得到当前文档中的组件、得到Ext元素等,在使用中要注意区别使用。1、get方法get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象,Ext.Element类是Ext对DOM的封装,代表DOM的元素,可以为......
  • html基础
    一、div样式1、style设置css样式(扩展了解style标签)2、align设置div盒子内的内容居中、居左、居右3、id 引人外部对应#(井号)选择符号样式4、class 引人外部对应.(句号)选择符号样式5、title设置div(标题)鼠标经过时显示文字(扩展了解 title标签)3、id案例<!DOCTYPEhtml......
  • html+css重点内容
    复习yuanhtml1.web组成html-结构层css-表现层js-行为交互2.html:标签元素标记分类:单标签:<标签名:属性=“属性值”属性=“属性值”>/加不加都可以 双标签:<标签名:属性=“属性值”></标签名> 常用单标签:brhrimginput 常用双标签:divph6-h1spana3.元素类型: ......
  • grafana+ prometheus+php 监控系统实践
    背景团队在开发流媒体服务,需要实现一个监控在线人数的功能,可以看到历史有多少人在线,当前有多少人在线的功能。如果用mysql等关系型数据库来实现,可以用事件记录日志,然后通过PHP加上一些绘图的插件来实现,但这种方式并不好,首先用关系型数据库随着时间累积,会存在数据量越来越大,导致查......
  • Grafana+prometheus+php 自动创建监控图
    背景在grafana+prometheus+php监控系统实践文章当中已经实现了我们的第一个监控图表,现在我们有了一个新需求,需要对多个节点实现不同的监控,以及一个汇总的监控;按照我们之前手动创建仪表盘的方法,每新增一个节点都需要手动去修改prometheus配置,并且需要去grafana系统当中创建一个仪......
  • 使用PHPCS+GIT钩子保障团队开发中代码风格一致性实践
    一、背景笔者在6月份加入新团队,新团队这边刚组建起来,基础一些东西还处于待完善状态,比如笔者组内同学约定使用PSR-2的编码风格规范,但是并不是所有人都严格按照PSR-2来提交代码。最大的原因就是口头的约束力极为有限,而团队中大家使用的编辑器不统一,有使用phpstorm,也有使用VSCode更有......
  • Postman+Newman生成HTML接口测试报告
    NewMan是官方提供的专门用于posman进行自动化的命令行工具环境配置:Node.js:Newman是基于Node.js,所以安装NewMan之前需要保证本地有安装Node.jsNewMan:npminewman-g,安装成功后输入newman-v来检查版本,显示出版本即表示安装成功html格式报告的插件:npminstall-gnewman......