当前位置:首页 > PHP教程 > php应用 > 列表

phpQuery让php处理html代码像jQuery一样方便

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-05 21:04:56 浏览: 评论:0 

这篇文章主要介绍了phpQuery让php处理html代码像jQuery一样方便,需要的朋友可以参考下.

简介:如何在php中方便地解析html代码,估计是每个phper都会遇到的问题。用phpQuery就可以让php处理html代码像jQuery一样方便。

项目地址:https://code.google.com/p/phpquery/

github地址:https://github.com/TobiaszCudnik/phpquery

DEMO

下载库文件:https://code.google.com/p/phpquery/downloads/list

我下的是onefile版:phpQuery-0.9.5.386-onefile.zip

官方demo:https://code.google.com/p/phpquery/source/browse/branches/dev/demo.php

然后在项目中引用。

html文件test.html:

  1. <div class="thumb" id="Thumb-13164-3640" style="position: absolute; left: 0px; top: 0px;"> 
  2.     <a href="/Spiderman-City-Drive"> 
  3.         <img src="/thumb/12/Spiderman-City-Drive.jpg" alt=""> 
  4.         <span class="GameName" id="GameName-13164-3640" style="display: none;">Spiderman City Drive</span> 
  5.         <span class="GameRating" id="GameRating-13164-3640" style="display: none;"> 
  6.             <span style="width: 68.14816px;"></span> 
  7.         </span> 
  8.     </a> 
  9. </div> 
  10. <div class="thumb" id="Thumb-13169-5946" style="position: absolute; left: 190px; top: 0px;"> 
  11.     <a href="/Spiderman-City-Raid"> 
  12.         <img src="/thumb/12/Spiderman-City-Raid.jpg" alt=""> 
  13.         <span class="GameName" id="GameName-13169-5946" style="display: none;">Spiderman - City Raid</span> 
  14.         <span class="GameRating" id="GameRating-13169-5946" style="display: none;"> 
  15.             <span style="width: 67.01152px;"></span> 
  16.         </span> 
  17.     </a> 
  18. </div> 

php处理:

  1. <?php 
  2.     include('phpQuery-onefile.php'); 
  3.     
  4.     $filePath = 'test.html'
  5.     $fileContent = file_get_contents($filePath); 
  6.     $doc = phpQuery::newDocumentHTML($fileContent); 
  7.     phpQuery::selectDocument($doc); 
  8.     $data = array
  9.         'name' => array(), 
  10.         'href' => array(), 
  11.         'img' => array() 
  12.     ); 
  13.     foreach (pq('a'as $t) { 
  14.         $href = $t -> getAttribute('href'); 
  15.         $data['href'][] = $href
  16.     } 
  17.     foreach (pq('img'as $img) { 
  18.         $data['img'][] = $domain . $img -> getAttribute('src'); 
  19.     } 
  20.     foreach (pq('.GameName'as $name) { 
  21.         $data['name'][] = $name -> nodeValue; 
  22.     } 
  23.     var_dump($data); 
  24. ?> 

上面的代码中包含了取属性和innerText内容(通过nodeValue取)。

输出:

  1. array (size=3) 
  2.   'name' => 
  3.     array (size=2) 
  4.       0 => string 'Spiderman City Drive' (length=20) 
  5.       1 => string 'Spiderman - City Raid' (length=21) 
  6.   'href' => 
  7.     array (size=2) 
  8.       0 => string 'http://www.gahe.com/Spiderman-City-Drive' (length=40) 
  9.       1 => string 'http://www.gahe.com/Spiderman-City-Raid' (length=39) 
  10.   'img' => 
  11.     array (size=2) 
  12.       0 => string 'http://www.gahe.com/thumb/12/Spiderman-City-Drive.jpg' (length=53) 
  13.       1 => string 'http://www.gahe.com/thumb/12/Spiderman-City-Raid.jpg' (length=52) 

强大的是pq选择器,语法类似jQuery,很方便。

Tags: phpQuery jQuery

分享到: