В общем простой, незамысловатый парсер, который работает только в верхней части страницы. Гугл сказал, что надо использовать $start и $finish, но если я их прописываю вообще ничего не парсится. Сайт-донор имеет такую структуру:
<div class="firm-list-item firm-place-1">~контент который нужно забрать~</div>
<div class="firm-list-item firm-place-2">~контент который нужно забрать~</div>
<div class="firm-list-item firm-place-2">~контент который нужно забрать~</div>
Вот между 1 и 2 дивами контент забирается, а дальше нет.. Вот код самого парсера:
$title=file_get_contents($url);
$start = '<div class="firm-list-item firm-place-2">';
$finish = '<div class="firm-list-item firm-place-3">';
$pos=strpos($title,'<a class="firm-item-title" href=');
$title=substr($title,$pos);
$pos1=strpos($title,'</a>');
$title=substr($title,0,$pos1);
$title=preg_replace('<a class="firm-item-title" href="/firm/id/[0-9]+/">','',$title);
echo $title;
echo '<br>';
Подскажите, пожалуйста, в чем тут проблема(где написать $start и $finish?).
Воспользуйтесь библиотекой PHPQuery (https://github.com/punkave/phpQuery) проще будет.
require ('phpQuery/phpQuery.php');
function get_content_by_url($url_target) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_target);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'Google Bot');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url_target = 'http://example.site.com/';
$html_content = get_content_by_url($url_target);
$document = phpQuery::newDocument($html_content);
$found_items = $document->find('div.firm-list-item[class^="firm-place-"]');
$print = '';
foreach($found_items as $key => $item) {
$pq = pq($item);
$content_text = pq($item)->text(); // только текст
$content_html = pq($item)->html(); // весь html (контент)
$print .= '<li class="my_item">'. $content_html .'</li>';
}
$final_contentt = '<ul class="my_list">'. $print . '</ul>';
echo $final_contentt;
по идее должно работать.
Здравствуйте! У меня есть в таблице два поля time_1 и time_2 в них хранится время например 17:00:00 и 02:00:00 Мне нужно вывести те строки где реальное время...
Есть окно редактирования анкетных данных пользователя, в нем есть кнопка, по нажатию на которою должны обновляться данные пользователя в БД MySQL