@rusgayfer

Как вывести рандомный мем?

Делаю такой запрос
$url = 'http://admem.ru/';
$page = file_get_contents($url);
preg_match("/<div class=\"post-img\" style=\"height: 500px;\"><noindex>(.*)<\/noindex><\/div>/", $page, $photo);


Теперь смотрю вывод, но там пусто. Как сделать правильно
print_r($photo);
  • Вопрос задан
  • 2308 просмотров
Решения вопроса 1
Lopar
@Lopar
системный администратор
Ватермарк вшит в картинку. Просто сайт сверстан так, что поверх ватермарка кидается белый фон. Надо отрезать 20 пикселей снизу.

Попробуйте такую конструкцию:
/**
 * @param string $imagePath - строка, представляющая путь к обрезаемому изображению
 */
function cropImage($imagePath)
{
    list($width, $height) = getimagesize($imagePath);
    $height -= 20;
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->cropImage($width, $height, 0, 0);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

// Проверяем
cropImage('http://admem.ru/content/images/1391115824.jpg');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
dima9595
@dima9595
Junior PHP
1. Если API позволяет получать рандомный мем, то нужно изучать API. В ином случае только по вашему примеру.
2. Если изображения имею вотемарк и через API нельзя получить оригинал, то к сожалению, ни как.
Ответ написан
@rusgayfer Автор вопроса
Придумал сделать так, но это не то. Хочу по другому.

$rand = rand(1391093637, 1391119653);
$photo = "http://admem.ru/content/images/{$rand}.jpg";
echo "<img src=\"{$photo}\" width=\"604px\" height=\"624px\">";


Как можно получить рандомный мем и без ватермака?
Ответ написан
Комментировать
Tesla
@Tesla
Регулярка с потолка взята?

Берете страницу http://admem.ru/rndm и парсите https://www.phpliveregex.com/p/ok9
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы