#php #html #curl #xhtml #xampp
#php #HTML #curl #xhtml #xampp
Вопрос:
Я пытаюсь изучить использование curl, но пока не понимаю, как это работает в полной мере. Как я могу использовать curl (или другие функции) для доступа к одной (верхней) записи данных таблицы. Пока я могу получить только весь веб-сайт. Как я могу повторить только всю таблицу и, в частности, первую запись. Мой код:
<?php
$ch = curl_init("http://www.w3schools.com/html/html_tables.asp");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
Комментарии:
Ответ №1:
Использование curl — хорошее начало, но этого будет недостаточно, как предположил хэнки, вам нужно также использовать DOMDocument
, а также вы можете включить DOMXpath
.
Пример кода:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.w3schools.com/html/html_tables.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
libxml_use_internal_errors(true);
$html = curl_exec($ch); // the whole document (in string) goes in here
$dom = new DOMDocument();
$dom->loadHTML($html); // load it
libxml_clear_errors();
$xpath = new DOMXpath($dom);
// point it to the particular table
// table with a class named 'reference', second row (first data), get the td
$table_row = $xpath->query('//table[@class="reference"]/tr[2]/td');
foreach($table_row as $td) {
echo $td->nodeValue . ' ';
}
Должен выводить:
Jill Smith 50
Комментарии:
1. Как мне повторить это в том же формате, то есть Джилл будет слева, Смит посередине и 50 справа от той же строки?
2. @user3517904 о, хорошо, просто опустите
<br/>
или замените его на' '
(пробел)3. @user3517904 уверен, что нет проблем!