Я пытаюсь скопировать две таблицы с определенного адреса веб-сайта и скопировать их на свой веб-сайт, но я не знаю, как это сделать.
Я заглянул в Simple-HTML-Dom и фактически заставил его работать локально на моей машине — до некоторой степени. Хотя у меня есть пара проблем с этим подходом.
Хотя я заставил его работать, он не был идеальным. Я также перетащил какой-то случайный текст и скопировал 5 таблиц вместо 2.
Я бы предпочел использовать другой метод — без использования сторонних скриптов?
Таблицы, которые я пытаюсь скопировать, можно найти здесь:
Мне нужны только таблицы, содержащие данные за 2017 и 2016 годы (с заголовками).
Заголовки таблицы
Содержание таблицы
Заголовки таблицы
Содержание таблицы
Это было бы для моего сайта WordPress.
Я не знаю, можно ли что-то запрограммировать в PHP для достижения этой цели, или другую библиотеку, которую WordPress изначально поддерживает без использования сценариев SQL / сторонних производителей или чего-либо подобного.
Благодарю вас
////
— ОГРОМНОЕ ОБНОВЛЕНИЕ —
Итак, я играл и пытался отладить код, и я почти там!
Мне удалось скопировать только первую таблицу (вторая таблица будет легкой).
Последняя часть пытается добавить классы в строку createElements? Это возможно??
Вот мой почти законченный код.
<h1 class="roeheader">Monthly Industrial Euro Rate:</h1>
[insert_php]
$url = "https://www.gov.uk/government/publications/rates-and-allowances-monthly-euro-conversion-rates-for-calculating-duty/monthly-euro-conversion-rates-for-calculating-duty";
$html = file_get_contents($url);
libxml_use_internal_errors(true);
$doc = new \DOMDocument();
if($doc->loadHTML($html))
{
$result = new \DOMDocument();
$result->formatOutput = true;
$table = $result->appendChild($result->createElement("table"));
$thead = $table->appendChild($result->createElement("thead"));
$tbody = $table->appendChild($result->createElement("tbody"));
$xpath = new \DOMXPath($doc);
$newRow = $thead->appendChild($result->createElement("tr"));
foreach($xpath->query("//table[1]/thead/tr/th[position()>0]") as $header)
{
$newRow->appendChild($result->createElement("th", trim($header->nodeValue)));
}
foreach($xpath->query("//table[1]/tbody/tr") as $row)
{
$newRow = $tbody->appendChild($result->createElement("tr"));
foreach($xpath->query("./td[position()>0 and position()<5]", $row) as $cell)
{
$newRow->appendChild($result->createElement("td", trim($cell->nodeValue)));
}
}
echo $result->saveXML($result->documentElement);
}
[/insert_php]
Я пытаюсь изменить эту строку:
$newRow->appendChild($result->createElement("td", trim($cell->nodeValue)));
К этому:
$newRow->appendChild($result->createElement("td class"roe"", trim($cell->nodeValue)));
Но это не работает ?? Страница просто отказывается загружаться? Я думаю, это из-за двойной цитаты.
Спасибо
Теперь вы можете просмотреть таблицы и просмотреть HTML и CSS за ними и скопировать их на свой веб-сайт, чтобы сделать их точно такими же. Хороший плагин WordPress для создания таблиц https://wordpress.org/plugins/tablepress/. Пожалуйста, дайте мне знать, если у вас есть дополнительная информация.
Других решений пока нет …