Здравствуйте, попробую объяснить суть:
пхп 7.3.5
домпдф последней версии с
https://github.com/dompdf/
1. хочу скачать википедию.
1.1. берем статьью, например $url = '
https://ru.wikipedia.org/wiki/Хост';
1.2. выкачиваем нужные ссылки на смежные статьи из нужного div-a в статье п. 1.1.:
получается так:
1.3. далее хочу в цикле по каждой ссылке с рисунка создать пдф, но получается лишь сделать на 1ю ссылку
вот код весь:
<?php
// reference the Dompdf namespace
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
use Dompdf\Options;
//download image
/*function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
//$data = file_get_contents_curl( $url );
//$fp = 'logo-1.png';
//file_put_contents( $fp, $data );
//echo "File downloaded!"
*/
// instantiate and use the dompdf class
//get HTML by URL
$url = 'https://ru.wikipedia.org/wiki/Хост';
$html = file_get_contents($url);
$dom = new DOMDocument();
$dom->loadHTML($html);
//get all a-tags from div.mw-body-content
$links = [];
$xPath = new DOMXPath($dom);
$anchorTags = $xPath->evaluate("//div[@class=\"mw-body-content\"]//a/@href");
foreach ($anchorTags as $anchorTag) {
$links[] = $anchorTag->nodeValue;
}
foreach($links as $link) {
//decode url to cyrillic
$linkDecoded = urldecode($link);
//if url contains unneeded words, delete them
if ( (strpos($linkDecoded, 'Категори') === false) && (strpos($linkDecoded, 'Википедия') === false) &&
(strpos($linkDecoded, 'index.php') === false) && (strpos($linkDecoded, 'Файл') === false) &&
(strpos($linkDecoded, '#') === false) ) {
//if $linkDecoded[0] === '/' -> add 'https://ru.wikipedia.org'
if ($linkDecoded[0] === '/') {
$linkDecoded = 'https://wikipedia.ru.org' . $linkDecoded . '<br>';
// 5 === len(wiki/); https://stackoverflow.com/questions/11290279/get-everything-after-word
$title = substr($linkDecoded, strpos($linkDecoded, 'wiki/') +5);
echo $linkDecoded;
//DOMpdf -> pdf
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans');
//не было тут его, если что - убрать
$html = file_get_contents($url);
$dompdf = new Dompdf($options);
$dompdf->loadHtml($html);
//(Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
//title is basename === https://wikipedia.ru.org/wiki/ -> Протокол_передачи_данных
$dompdf->stream($title);
}
}
}
кто подскажет как сделать пдф со всех ссылок с рисунка?