php 读取(解析)html文档,并将读取到的文档转为数组(数组保留html嵌套格式)

html-css08

php 读取(解析)html文档,并将读取到的文档转为数组(数组保留html嵌套格式),第1张

可以使用正则表达式来解决这个问题

具体的代码很多不详细写了,举个例子给题主吧

<?php

 

$htmlStr = '<li>首页</li>'

preg_match_all('/<li>.*?<\/li>/', $htmlStr , $res)

$ret = preg_replace('/(<li>|<\/li>)/', '', $res[0][0])

//输出res

//var_dump($res) 

echo $ret

最终输出的结果为:首页

在这个例子上题主所需要的值基本都可以用正则算法过滤出来

希望能帮到题主

如果可以,还请采纳

1.strip_tags() 函数:可以过滤掉HTML和PHP标签,返回一个全新的字符串!

用法:

string strip_tags ( string 要处理的字符串 [, string 想保留的标签] )

比如: 标签,就这样写,strip_tags($str, “”) ,如果要保留多个标签,则标签之间用空格隔开。

2.用 strpos , substr 混合处理

当我们要截取的字符串,有唯一的标识时,通常可以用这个办法,比如取一个带唯一id的标签abc,只要找到和,中间的内容就都出来了。

3.PHP DOMDocument

DOMDocument 提供的方法是输出没有任何标签的纯文本,如果你只需要文本数据,那用这个方法最简单拉

利用php解析html没有现成的方法,需要利用第三方插件PHP Simple HTML DOM Parser,它可以以类似jQuery的方式通过css选择器来返回指定的DOM元素,功能十分强大。

1、首先要在程序的开始引入simple_html_dom.php这个文件

参考代码:include_once('simple_html_dom.php')

2、PHP Simple HTML DOM Parser提供了3种方式来创建DOM对象

参考代码如下:

// Create a DOM object from a string

$html = str_get_html('<html><body>Hello!</body></html>')

// Create a DOM object from a URL

$html = file_get_html('http://www.google.com/')

// Create a DOM object from a HTML file

$html = file_get_html('test.htm')

得到DOM对象后就可以进行各种操作了

// Find all anchors, returns a array of element objects

$ret = $html->find('a')

// Find (N)th anchor, returns element object or null if not found (zero based)

$ret = $html->find('a', 0)

// Find lastest anchor, returns element object or null if not found (zero based)

$ret = $html->find('a', -1)

// Find all <div>with the id attribute

$ret = $html->find('div[id]')

// Find all <div>which attribute id=foo

$ret = $html->find('div[id=foo]')