定制 scarletsfiction/scarletsquery 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

scarletsfiction/scarletsquery

Composer 安装命令:

composer require scarletsfiction/scarletsquery

包简介

ScarletsQuery is a high performance HTML or XML query selector/parser for PHP that almost like jQuery.

README 文档

README

Written by Software License Build Status Tweet

ScarletsQuery

ScarletsQuery is a high performance HTML or XML query selector/parser for PHP that almost like jQuery.

Installation instruction

Clone/download this repository and include ScarletsQuery.php

Install with composer

composer require scarletsfiction/scarletsquery

Available Methods

This library query selector is designed like jQuery's queryselector.
But there are different method to obtain the data.

MarkupLanguage

This class will handle every selector query and parse Markup Language.

MarkupLanguage::parseText($string);

Parse HTML/XML to structured array as MarkupLanguageElementCollection

MarkupLanguageElementCollection

This class have a collection of Element Tree, you can also obtain the value just like an array $collection[0] and it will return MarkupLanguageElement.

$dom->length;

Return length of Element Collection

$dom->view;

Return raw array of the Element Collection

$dom->selector($query);

Return the result as MarkupLanguageElementCollection

$dom->parent();

Return parent of all result as MarkupLanguageElementCollection

$dom->content($index = false);

Return content of all result as Array If $index specified, it will return the content as String

MarkupLanguageElement

This class have a collection of Element Tree, you can also obtain the value just like an array $collection[0] and it will return MarkupLanguageElement.

$dom->view;

Return raw array of the Element

$dom->selector($query);

Return the result as MarkupLanguageElement

$dom->parent();

Return the element's parent MarkupLanguageElement

$dom->hasClass($class);

Return true if found and vice-versa

$dom->next($jump = 1);

Return the next sibling element as MarkupLanguageElement

$dom->content();

Return the content as String

$dom->attr($property);

Return element property as String or null if not found

Example Usage

<ul>
  <li class='account'>
    <span active id="name">Alex</span>
    <span active id="1">1a</span>
  </li>
  <li class="account">
    <span active id='nickname'>Steven</span>
    <span active id="2">2b</span>
  </li>
  <li class="profile">
    <span active id="name">Elisabeth</span>
    <span active id="3">3c</span>
  </li>
  <li class="account">
    <span active id="name">Luffy</span>
    <span active id="4">4d</span>
  </li>
</ul>

And below is the PHP script

$html = file_get_contents('sample.html');
$dom = Scarlets\Library\MarkupLanguage::parseText($html);

// Select element that have 'name' id and get these content
$dom->selector('#name')->content();
/* Output
    Array
    (
        [0] => Alex
        [1] => Elisabeth
        [2] => Luffy
    )
*/

/*
  1. Select element that have 'ul' tag
  2. Select the child with '3' id
  3. Select the element before it { next(-1) }
  4. Get the content
*/
$dom->selector('ul #3')[0]->next(-1)->content();
/* Output
    Elisabeth
*/

// Select 'ul' tag and the child with 'li' tag
$contents = $dom->selector('ul li');

// Iterate over the result
for ($i=0; $i < $contents->length; $i++) {

    // Check if the element has 'profile' class
    if($contents[$i]->hasClass('profile')){

        // Select the child with 'span' tag
        // And get the second content
        print_r($contents[$i]->selector('span')->content(1));
    }
}
/* Output
    3c
*/

Contribution

If you want to help in ScarletsQuery, please fork this project and edit on your repository, then make a pull request to here.

Keep the code simple and clear.

License

ScarletsQuery is under the MIT license.

Help improve this framework by support the author \(≧▽≦)/

统计信息

  • 总下载量: 108
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-08-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固