首页后端开发PHPphp 将html转换成数组

php 将html转换成数组

时间2023-11-30 03:24:07发布访客分类PHP浏览572
导读:使用PHP将HTML转换成数组HTML是一种用于描述网页结构的标记语言,而PHP是一种用于服务器端编程的脚本语言。PHP提供了丰富的函数和方法来处理HTML,包括将HTML转换成数组的功能。通过将HTML转换成数组,我们可以更方便地对网页进...

使用PHP将HTML转换成数组

HTML是一种用于描述网页结构的标记语言,而PHP是一种用于服务器端编程的脚本语言。PHP提供了丰富的函数和方法来处理HTML,包括将HTML转换成数组的功能。通过将HTML转换成数组,我们可以更方便地对网页进行分析、提取数据或者进行其他操作。

假设我们有一个包含一张书籍列表的HTML代码:

div class="book">
    h2>
    PHP编程指南/h2>
    p>
    作者: 张三/p>
    p>
    价格: $19.99/p>
    /div>
    div class="book">
    h2>
    JavaScript入门教程/h2>
    p>
    作者: 李四/p>
    p>
    价格: $18.99/p>
    /div>
    

我们可以使用PHP的DOMDocument类来将上述HTML代码转换成数组。以下是一个示例代码:

$html = 'div class="book">
    h2>
    PHP编程指南/h2>
    p>
    作者: 张三/p>
    p>
    价格: $19.99/p>
    /div>
    div class="book">
    h2>
    JavaScript入门教程/h2>
    p>
    作者: 李四/p>
    p>
    价格: $18.99/p>
    /div>
    ';
    $dom = new DOMDocument();
    $dom->
    loadHTML($html);
    $books = array();
    foreach ($dom->
getElementsByTagName('div') as $div) {
    if ($div->
getAttribute('class') === 'book') {
    $book = array();
    $book['title'] = $div->
    getElementsByTagName('h2')[0]->
    nodeValue;
    $book['author'] = $div->
    getElementsByTagName('p')[0]->
    nodeValue;
    $book['price'] = $div->
    getElementsByTagName('p')[1]->
    nodeValue;
    $books[] = $book;
}
}
    print_r($books);
    

以上代码首先创建了一个空数组$books来存储书籍信息。然后,使用DOMDocumentloadHTML方法将HTML代码加载进来。接着,通过getElementsByTagName方法寻找所有的元素,并通过getAttribute方法判断是否具有class属性,并且class属性值为"book"。如果是,则将书籍的标题、作者和价格存储到$book数组中,再将$book数组存储到$books数组中。最后,通过print_r函数打印出$books数组的内容。

运行以上代码,将得到如下结果:

Array([0] =>
     Array([title] =>
     PHP编程指南[author] =>
     作者: 张三[price] =>
     价格: $19.99)[1] =>
     Array([title] =>
     JavaScript入门教程[author] =>
     作者: 李四[price] =>
     价格: $18.99))

上述结果为一个二维数组,每个元素代表一本书籍的信息,包括标题、作者和价格。

通过将HTML转换成数组,我们可以方便地对网页进行数据提取和处理。无论是爬虫程序还是数据分析工作,这个功能都极为实用。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: php 将html转换成数组
本文地址: https://pptw.com/jishu/561327.html
java重载重写和覆盖 java里面堆和栈

游客 回复需填写必要信息