PHP проблемка

X
На сайте с 11.08.2014
Offline
3
399

скачал тут 1000 игр для сеги, а они все в зип архивах, решил распаковать по средствам PHP

но наткнулся на 1 проблемку .

ВОт собственно сам код

<?php

if ($head=opendir('./gamezip/')){

while (false != ($file = readdir($head))) {

list($name)=explode(".",$file);

$res = $name->open('$name.zip');

if ($res === TRUE) {

$name->extractTo('./game/');

$name->close();

echo 'woot!';

} else {

echo 'doh!';

}

}

}

?>

Кто шарит помогите чем сможете, а главное поясните в чем мой косяк , Ошибка в этой строке $res = $name->open('$name.zip');

после команды list $name имеет формат Имя игры без окончания ZIP но по другому я не знаю как пустить файлы в оборот.

TF-Studio
На сайте с 17.08.2010
Offline
334
#1

7zip -> ctrl+a -> extract all

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
X
На сайте с 11.08.2014
Offline
3
#2

То слишком просто...... мсье нужно изврашение.

Vladimir-AWM
На сайте с 07.02.2010
Offline
50
#3

<?php


include("zip.lib.php");

$name_zip = glob("gamezip/*.zip");

foreach ($name_zip as $th_zip) {

$zip = new ZipArchive;
if ($zip->open($th_zip) === TRUE) {
$zip->extractTo('gamezip/');
$zip->close();
echo 'Архив '.$th_zip.' распакован<br />';
} else echo 'Не удалось распаковать архив '.$th_zip.'<br />';

}

?>

Скачать исходники (с zip.lib.php) - https://yadi.sk/d/okKHfs8JcvJzo

ЖЖ Ферма (http://goo.gl/GSN1es), Твиттер Групп (http://goo.gl/z4dP6J), Многопоточная пинговалка (http://goo.gl/7y40HR), Магазин аккаунтов (http://goo.gl/Wqv19X), Индивидуальные прокси (http://goo.gl/3Njiyj).
J
На сайте с 20.02.2014
Offline
120
jkm
#4

Функция readdir возвращает лишь имя файла, а не полный путь к файлу.

И неплохо проверять, что открываешь файл, а то каждый каталог содержит, как минимум, ссылку на себя '.' и родительским каталог '..'

http://php.net/manual/en/ziparchive.extractto.php



$srcdir = './gamezip/';
$zip = new ZipArchive;
if ($head=opendir($srcdir)){
while (false != ($file = readdir($head))) {
$file = $srcdir.$file;

if (!is_file($file)) continue;

$res = $zip->open($file);
if ($res === TRUE) {
$zip->extractTo('./game/');
$zip->close();
echo 'woot!';
} else {
echo 'doh!';
}
}
}
X
На сайте с 11.08.2014
Offline
3
#5

Спасибо большое

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий