2017-05-05 5 views
0

最後からどのように注文するのですか?PHPQueryで要素を最終的に取得するには?

たとえば、最後から2番目の項目を取得する必要があります。

<?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()? last-child(2)はPHPQueryで引数を取るのですか?jQueryでは最後の子が返され、あなたのケースでは「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 
) 
関連する問題