Answer the question
In order to leave comments, you need to log in
How to parse phpquery correctly?
Hello!
here is my parser code from the site:
<?php
header('Content-type: text/html; charset=utf-8');
require 'phpQuery.php';
function print_arr($arr){
echo '<pre>' .print_r($arr, true). '</pre>';
}
$url = 'http://elicense.kz/LicensingContent/SimpleSearchLicense?GlobalNumberEquality=1&NikadNumberEquality=1&RequestNikadNumberEquality=1&RequestGlobalUniqueNumberEquality=1&NumberEquality=1&SeriesEquality=1&IinEquality=1&BinEquality=1&RnnEquality=1&LicensiatEquality=1&LicensiarEquality=1&ActivityTypeEquality=256&ActivityTypeStr=%D0%BC%D0%BE%D0%BD%D1%82%D0%B0&DateIssueEquality=1&StatusEquality=1&StatusStr=0&isExtended=true%2Cfalse&lang=ru';
$file = file_get_contents($url);
$doc = phpQuery::newDocument($file);
// $table = $doc->find('.DefaultTablde tr:eq(1) td:eq(1)')->text();
// echo $table;
foreach ($doc->find('.DefaultTablde') as $row) {
$row = pq($row);
$number = $row->find('tr:eq(1) td:eq(1)')->html();
print_arr($number);
}
Answer the question
In order to leave comments, you need to log in
Error in foreach loop.
$doc->find('.DefaultTablde') naturally finds only one table.
You can do, for example, like this:
<?php
set_time_limit(100);
header('Content-type: text/html; charset=utf-8');
require '.phpQuery/phpQuery.php';
function print_arr($arr){
echo '<pre>' .print_r($arr, true). '</pre>';
}
$url = 'http://elicense.kz/LicensingContent/SimpleSearchLicense?GlobalNumberEquality=1&NikadNumberEquality=1&RequestNikadNumberEquality=1&RequestGlobalUniqueNumberEquality=1&NumberEquality=1&SeriesEquality=1&IinEquality=1&BinEquality=1&RnnEquality=1&LicensiatEquality=1&LicensiarEquality=1&ActivityTypeEquality=256&ActivityTypeStr=%D0%BC%D0%BE%D0%BD%D1%82%D0%B0&DateIssueEquality=1&StatusEquality=1&StatusStr=0&isExtended=true%2Cfalse&lang=ru';
$file = file_get_contents($url);
$doc = phpQuery::newDocument($file);
// $table = $doc->find('.DefaultTablde tr:eq(1) td:eq(1)')->text();
// echo $table;
foreach ($doc->find('.DefaultTablde tr') as $row) {
$row = pq($row);
$number = array();
$number[] = $row->find('td:eq(1)')->text();
$number[] = $row->find('td:eq(2)')->text();
$number[] = $row->find('td:eq(7)')->text();
$number[] = $row->find('td:eq(8)')->text();
print_arr($number);
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question