Intereting Posts
PHP – использование move_uploaded_file Только переменные могут передаваться по ошибке Почему существует постоянная PATH_SEPARATOR? отображаемая переменная изображения Ошибка создания Composer-проекта в локальном репозитории пакетов Вопрос MYSQL ON DUPLICATE KEY UPDATE Организация многомерного массива В PHP есть функция типа stristr, но для массивов? Является ли эта оболочка для PDO «хорошим кодом»? Существуют ли какие-либо потенциальные проблемы? Magento: мониторинг времени выполнения всех заданий cron? PHP: сохранение «объектов» внутри $ _SESSION pecl install cassandra throws: "error: Не удалось загрузить libcassandra" в phpunit, существует ли метод, аналогичный onconsecutivecalls для использования внутри метода «с»? Echo некоторый строковый и многомерный элемент массива в одной строке кода Как вы повторяете текущие свойства класса (не унаследованные от родительского или абстрактного класса)?

исправление кода скребка изображений 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.