Используйте ссылку на файл изображения для отображения случайного баннера - PullRequest
0 голосов
/ 29 апреля 2020

Не уверен, что это даже уместно, но я пытаюсь понять, как веб-сайт ротатора баннеров использует стандартный html код изображения, чтобы вернуть случайный баннер?

<a target=_blank href=http://intellibanners.com/click.php?cid=campaign1>
    <img border=0 src=http://intellibanners.com/campaign1.jpg>
</a>

В В приведенном выше примере html будет отображать случайное изображение из этой кампании.

Это началось с какой-то прихоти, чтобы посмотреть, смогу ли я настроить что-то похожее для работы с изображениями другого размера, но теперь это сводит меня с ума ... пытаясь понять, как go из URL-адреса изображения к вызову базы данных отправить обратно другое изображение !?

Не повезло в поиске идей или примеров, возможно потому, что я не знаю, какие процессы или функции мне на самом деле нужно искать?

Я думаю, что для всех вызовов изображений должна быть какая-то перезапись URL, которая перенаправляет на скрипт обработчика ...

Этот скрипт выполняет вызов базы данных, получает случайное изображение из назначенная кампания, обновляет статистику и т.д. c ...

И, возможно, ответ заголовка php возвращает соответствующий файл изображения?

Но большая часть этого нова для меня, и я ' Я не уверен, где / как искать руководство или примеры, чтобы начать меня.

Если у кого-то есть какие-либо идеи по этому поводу или даже какие-либо формулировки / функции, которые мне нужны, которые могут помочь мне попасть туда в моем собственном поиске, это было бы очень признательно!

(я также установил и протестировал около 12 различных скриптов ротатора, надеясь найти тот, который работает так же, но и там не повезло).

Спасибо!

Мэтт

1 Ответ

1 голос
/ 29 апреля 2020

Я написал скрипт php, который предполагает наличие нужных папок в root вашего сайта. Затем вы можете вызвать его простым способом в любом месте вашего сайта. Вот мой скрипт:

rotate.php

<?php
  ##########################################################
  # Simple Script Random Images Rotator • 1.4 • 04.01.2020 #
  # Alessandro Marinuzzi [alecos] • https://www.alecos.it/ #
  ##########################################################
  function rotate($folder) {
    if ((file_exists($_SERVER['DOCUMENT_ROOT'] . "/$folder")) && (is_dir($_SERVER['DOCUMENT_ROOT'] . "/$folder"))) {
      $list = scandir($_SERVER['DOCUMENT_ROOT'] . "/$folder");
      $fileList = array();
      $img = '';
      foreach ($list as $file) {
        if ((file_exists($_SERVER['DOCUMENT_ROOT']  . "/$folder/$file")) && (is_file($_SERVER['DOCUMENT_ROOT']  . "/$folder/$file"))) {
          $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
          if ($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png') {
            $fileList[] = $file;
          }
        }
      }
      if (count($fileList) > 0) {
        $imageNumber = time() % count($fileList);
        $img = $folder . '/' . $fileList[$imageNumber];
      }
      return $img;
    } else {
      mkdir($_SERVER['DOCUMENT_ROOT'] . "/$folder", 0755, true);
    }
  }
?>

Теперь вы можете создать файл index.php, где вы хотите, и поместить эту строку:

<?php include("your_path/rotate.php"); ?>

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign1">
    <img border="0" src="/<?php echo rotate('campaign1'); ?>">
</a>

другой, как это:

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign2">
    <img border="0" src="/<?php echo rotate('campaign2'); ?>">
</a>

и так ...

Вам нужно только создать нужные папки в root под названием campaign1 , campaign2 ... et c ...

затем в каждую папку поместите баннеры с изображениями текущей кампании ...

например: в папку campaign1 поместите изображение как 001.png, 002,png, 003.png, 004.jpg, 005.jpg ... (где эти имена файлов соответствуют баннерам вашей кампании).

например: в папке campaign2 поместите изображение как 001.png, 002,png, 003.png, 004.jpg, 005.jpg, 006.gif, 007.png, 008.jpg ... (где эти имена файлов соответствуют баннерам вашей кампании).

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

Мой сценарий превратит все в желаемый вывод, например:

campaign1:

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign1">
    <img border="0" src="/campaign1/002.jpg">
</a>

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign1">
    <img border="0" src="/campaign1/007.jpg">
</a>

campaign2:

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign2">
    <img border="0" src="/campaign2/004.png">
</a>

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign2">
    <img border="0" src="/campaign2/005.gif">
</a>
* 10 55 * Увидимся и протестируем все на вашем сайте localhost ... для меня отлично работает на PHP 7.4.5 и Apache 2.4.43.

Сценарий сделает все остальное!

Надеюсь, это поможет вам!

...