Вывод изображений из папки сайта

Тема в разделе "PHP", создана пользователем alexz15, 15 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    Здравствуйте, появилась необходимость получить список картинок из папки другого сайта, а затем вывести их в браузер. Папка имеет доступ для чтения (пример, sayt.ru/14/), в этой папке находятся изображения.
    Начал мудрить с file_get_contents и mod rewrite, но ничего толком не получилось. Может есть более простой способ? Спасибо.
     
  2. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Тебе изображения нужно выводить в браузер или список файлов?
    Воспользуйся каким-нить файл-менеджером. Поройся на форуме их тут достаточно.
    Если же сам хочешь, то file_get_contents ни к чему...
    Просто получаешь список файлов в дире и:
    - если нужны сами изображения то в src тега img прописывай путь к файлу с полученным именем
    - если список файлов, то просто выводи списпом имена.

    Чтение названий файлов из каталога выглядит примерно так:
    PHP:
    $dir "/tmp/";

    // Открыть заведомо существующий каталог и начать считывать его содержимое
    if (is_dir($dir)) {
        if (
    $dh opendir($dir)) {
            while ((
    $file readdir($dh)) !== false) {
                print 
    "Файл: $file : тип: " filetype($dir $file) . "\n";
            }
            
    closedir($dh);
        }
    }
    Добавлено через 6 минут
    Если список файлов доступен свободно, то можно к примеру парсить страничку с этим списком...
     
  3. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    opendir не получается. Есть папка на другом сайте, в ней находятся одни картинки. Как можно парсить эту страницу?
     
  4. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Дай хоть ссылочку на сайт чтоль... хоть глянуть как там выглядит этот список. Можно в личку
     
  5. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    http://p222.ru/73/
    http://p222.ru/74/
    и тд.
     
  6. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Парсим примерно так:

    PHP:
    $uri 'http://p222.ru/73/';  //требуемый урл
    //создаем паттерн для поиска пытаясь вырезать нежелательные ссылки
    $pt '#<A HREF=\"([^\?|/|=].*?)\"#'
    $str file_get_contents($uri); //берем хтмлку
    preg_match_all($pt$str$arr); //ищем что нам нужно
    $arr_val = array();
    //в цикле мутим картинки
    foreach (array_unique($arr[1]) as $key => $val) {
        echo 
    '<img src="'.$uri.$val.'"><br/>';
    }
     
    alexz15 нравится это.
  7. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    Огромное спасибо, то что надо :ay:
    Еще вопрос, как сформировать две пост кнопки "назад - вперед" в зависимости какую страницу парсим? Например, сейчас страница 73, надо что бы было две кнопки на 72 и 74 страницу в пост запросе.
     
  8. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Передавай номер просматриваемой странички GET`ом и соответсвенно в кнопках +1 и -1 ;)

    Например, адрес странички Перейти по ссылке
    Тогда код будет следующим:
    PHP:
    $page $_GET['page'];
    /* тут вся мура с выводом картинок
    ....
    */
    $prev $page -1;
    $post $page +1;
    //и шлепаем ссылки
    echo '<a href="http://bla.bla.ru/images/?page='.$prev.'">Назад</a>';
    echo 
    '<a href="http://bla.bla.ru/images/?page='.$post.'">Вперед</a>';
    Ессесно тут нужно будет поставить проверку на существование страницы... ну типа чтобы не получилось page=-1 к примеру...
     
    alexz15 нравится это.
  9. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    Все работает. Собрал все в один файл, посмотрите плз, правильно ли я проверяю на существование папки?:
    PHP:
    <?php
    $page 
    $_GET['page'];
    /* Проверяем, является ли переменная числом */
    if (!preg_match("|^[\d]+$|"$page)) {
    exit (
    '<center>Ничего нет<br><a href="http://bla.bla.ru/?page=1">Перейти на первую страницу</a></center>');
    }

    $uri 'http://p222.ru/'.$page.'/';  //требуемый урл
    $pt '#<A HREF=\"([^\?|/|=].*?)\"#'//создаем паттерн для поиска пытаясь вырезать нежелательные ссылки

    // пробуем открыть папку
    if (@file_get_contents($uri)) {
    $str file_get_contents($uri); //берем хтмлку
    preg_match_all($pt$str$arr); //ищем что нам нужно
    $arr_val = array();
    foreach (
    array_unique($arr[1]) as $key => $val) { //в цикле мутим картинки
        
    echo '<img src="'.$uri.$val.'" border="0" width="100" height="100" title="Анимированный аватар">';
    }
    $prev $page -1;
    $post $page +1;

    //и шлепаем ссылки
    echo '<center><a href="http://bla.bla.ru/?page='.$prev.'">Назад</a> | ';
    echo 
    '<a href="http://bla.bla.ru/?page='.$post.'">Вперед</a></center>'

    } else {
    echo 
    '<center>Ничего нет<br><a href="http://bla.bla.ru/?page=1">Перейти на первую страницу</a></center>';
    }
    ?>
     
  10. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Да вроде всё норм....
     
    alexz15 нравится это.
Статус темы:
Закрыта.