2017-05-05 8 views
0

어떻게 끝에서 주문에 따라 요소를 얻을 수 있습니까?PHPQuery로 끝에서 요소를 얻는 방법?

예를 들어 끝에서 두 번째 항목을 가져와야합니다.

<?php 
    $html = <<<EOD 
<div style="text-align: center;" class="navigation"> 
     <span class="pagination"> 
      <span>« novější</span> | 
      <span>1</span> | 
      <a href="?listType=&amp;sort=&amp;page=1">2</a> | 
      <a href="?listType=&amp;sort=&amp;page=2">3</a> | 
      <a href="?listType=&amp;sort=&amp;page=3">4</a> | 
      <a href="?listType=&amp;sort=&amp;page=1">starší »</a> 
     </span> 
     </div> 
EOD; 

    $dom = PHPQuery::newDocument($html); 
    var_dump($dom->find('.navigation > .pagination > *')->eq(-2)->text()); 
    var_dump($dom->find('.navigation > .pagination > *:last-child(2)')->text()); 

하지만 그 대신 4의 코드는 반환

string(0) "" 
string(11) "starší »" 
+0

이'출력으로 starší' 하시겠습니까? –

+0

왜 : $ dom-> find ('. navigation> .pagination> * : eq (-2)') -> text()? jQuery에서는 last-child (2)가 PHPQuery에서 인수를 사용합니까? 마지막 사례 인 "star"가 반환됩니다. – Picard

답변

0

희망이 당신을 도울 것입니다. 여기서 우리는 원하는 출력을 얻기 위해 DOMDocumentDOMXPath을 사용하고 있습니다.

<?php 
ini_set('display_errors', 1); 
$html = <<<EOD 
<div style="text-align: center;" class="navigation"> 
     <span class="pagination"> 
      <span>« novější</span> | 
      <span>1</span> | 
      <a href="?listType=&amp;sort=&amp;page=1">2</a> | 
      <a href="?listType=&amp;sort=&amp;page=2">3</a> | 
      <a href="?listType=&amp;sort=&amp;page=3">4</a> | 
      <a href="?listType=&amp;sort=&amp;page=1">starší »</a> 
     </span> 
     </div> 
EOD; 
$domObject= new DOMDocument(); 
$domObject->loadHTML($html); 

$domQuery= new DOMXPath($domObject); 
$results=$domQuery->query('//span[@class="pagination"]/a'); 
$contents=array(); 
foreach ($results as $result) 
{ 
    $contents[]=$result->textContent; 
} 
print_r(array_reverse($contents)); 

출력 :

Array 
(
    [0] => starší » 
    [1] => 4 
    [2] => 3 
    [3] => 2 
)