За последние 24 часа нас посетили 17224 программиста и 1688 роботов. Сейчас ищут 1255 программистов ...

Работа с Zip-архивами

Тема в разделе "PHP для новичков", создана пользователем Конкурент, 19 июн 2014.

  1. Конкурент

    Конкурент Новичок

    С нами с:
    15 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Код (PHP):
    1. <?php
    2. if (isset($_GET["extract"])) {
    3. $filename = 'archive.zip';
    4. $dir = './';
    5. if(substr(strrchr($filename, '.'), 1) == 'zip') {
    6. $zip = new ZipArchive;
    7. if ($zip->open('$filename') === TRUE) {
    8. $zip->extractTo($dir);
    9. $zip->close();
    10. echo 'ok';
    11. }
    12. else {
    13. echo 'ошибка';
    14. }
    15. }
    16. }
    17. echo '[url="?extract"]extract[/url]';
    18. ?>
    Почему не извлекает файлы, а показывает: "ошибка"?
     
  2. nskrazor

    nskrazor Новичок

    С нами с:
    19 июн 2014
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Новосибирск
    Код (Text):
    1. if (isset($_GET["extract"])) {
    2.     $filename = 'archive.zip';
    3.     $dir = './';
    4.     if(substr(strrchr($filename, '.'), 1) == 'zip') {
    5.         $zip = new ZipArchive;
    6.         if ($zip->open($filename) === TRUE) {
    7.             $zip->extractTo($dir);
    8.             $zip->close();
    9.             echo 'ok';
    10.             exit;
    11.         }
    12.     }
    13. }
     
  3. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Код (Text):
    1. pathinfo($filename, PATHINFO_EXTENSION);
    Разве не приятнее чем
    выглядит?
     
  4. Конкурент

    Конкурент Новичок

    С нами с:
    15 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Сейчас посмотрю.

    Добавлено спустя 11 минут 14 секунд:
    Но файлы все равно не извлекает.
     
  5. nskrazor

    nskrazor Новичок

    С нами с:
    19 июн 2014
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Новосибирск
    Я же написал тебе кусок кода, вот эту строку замени $zip->open($filename) без кавычек и всё извлечёт(проверял).
     
  6. Конкурент

    Конкурент Новичок

    С нами с:
    15 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Ах вот оно что?
    Спасибо, проверил.
    Проблема решена!
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    '$filename' - когда в одинарные кавычки заключена строка, то имена переменных автоматически не раскрываются. на будущее. А здесь кавычки просто не нужны.