Intereting Posts
Помогите! PHP, пытающийся передать FTPS, создает пустые файлы исправление кода скребка изображений php, чтобы быть более гибким в разных ситуациях HTML в PDF против программного создания PDF через PHP Отправка на контроллер с помощью jquery ajax в CakePHP Как показать ajax загрузку gif анимации во время загрузки страницы? SimpleXML – добавить новый узел, используя ранее объявленное пространство имен – как? как организовать файлы, созданные динамически с помощью php? вызов функции php в отдельном файле из ajax не работает переменная php while loop для каждого третьего div Расширение Entity Doctrine для добавления бизнес-логики Форма не отображается правильно на правильной странице при использовании JS window.open () и submit (), чтобы открыть новое окно при нажатии кнопки и передать данные через POST Функция PHP как параметр по умолчанию Вызов функции контроллера в другом контроллере в CodeIgniter Как использовать корпус переключателя в шаблоне Mustache? Является urlencode () достаточно хорошим, чтобы остановить все атаки SQL-инъекций в 2011 году

исправление кода скребка изображений php, чтобы быть более гибким в разных ситуациях

Мне удалось создать какой-то код, который захватывает изображение с сайта ниже, где ссылка на изображение будет случайной каждый раз и отражает ее на другом сайте. Хотя это здорово, что это работает, я не могу скопировать этот формат на любой другой сайт. Я вижу, что изображение захватывается с помощью файла getElementbyId, но из исходного исходного кода существует много ссылок на «файл», поэтому я немного застрял. очень хорошо знал php.

То, что я пытаюсь сделать, реплицирует приведенный ниже результат, но на любом сайте с определенным изображением.

<?php $html = file_get_contents("http://commons.wikimedia.org/wiki/Special:Random/File"); $dom = new DOMDocument(); $dom->loadHTML($html); $remoteImage = $dom->getElementById("file")->firstChild->attributes[0]- >textContent; header("Content-type: image/png"); header('Content-Length: ' . filesize($remoteImage)); echo file_get_contents($remoteImage); ?> 

Попытка выяснить, как я могу воспроизвести это на этом сайте для ex https://pokemondb.net/pokedex/wartortle

где я пытаюсь вытащить wartortle.jpg

Моя первоначальная идея, если вы не знаете точно, что образ будет гипотетически назван, так как я хочу, чтобы это работало во время случайных условий, заключается в том, чтобы идентифицировать изображение с его тегом <div class = "colset">

Увы, включение «colset» вместо «файла», однако, не помогло.

Есть предположения?? Большое спасибо. Уилсон

Использование XPath всегда намного более гибко (хотя, вероятно, медленнее, чем другие решения). Используя предыдущий пример, вы можете использовать следующее, чтобы получить имя файла …

 <?php ob_start(); $doc = new DOMDocument; $doc->loadHTMLFile('https://pokemondb.net/pokedex/wartortle'); $xpath = new DOMXPath($doc); $query = "//li[@id='svtabs_basic_8']//img/@src"; ob_end_clean(); header('content-type: image/jpeg'); $entries = $xpath->query($query); foreach ($entries as $entry) { readfile((string)$entry->value); } 

Я добавил ob_start и ob_end_clean, чтобы удалить ошибки проверки xml.