Код (PHP): <?php if (isset($_GET["extract"])) { $filename = 'archive.zip'; $dir = './'; if(substr(strrchr($filename, '.'), 1) == 'zip') { $zip = new ZipArchive; if ($zip->open('$filename') === TRUE) { $zip->extractTo($dir); $zip->close(); echo 'ok'; exit; } else { echo 'ошибка'; exit; } } } echo '[url="?extract"]extract[/url]'; ?> Почему не извлекает файлы, а показывает: "ошибка"?
Код (Text): if (isset($_GET["extract"])) { $filename = 'archive.zip'; $dir = './'; if(substr(strrchr($filename, '.'), 1) == 'zip') { $zip = new ZipArchive; if ($zip->open($filename) === TRUE) { $zip->extractTo($dir); $zip->close(); echo 'ok'; exit; } } }
Я же написал тебе кусок кода, вот эту строку замени $zip->open($filename) без кавычек и всё извлечёт(проверял).
'$filename' - когда в одинарные кавычки заключена строка, то имена переменных автоматически не раскрываются. на будущее. А здесь кавычки просто не нужны.