2013-07-06 3 views
0

Допустим, у меня есть переменная и инстанцированный:Добавить файл из строки в новую папку ZipArchive

$css = 'body {color:red;}';

В настоящее время я строю свой почтовый файл следующим образом:

ini_set("max_execution_time", 300); 
    // create object 
    $zip = new ZipArchive(); 
    // open archive 
    if ($zip->open("my-archive.zip", ZIPARCHIVE::CREATE) !== TRUE) { 
     die ("Could not open archive"); 
    } 
    // initialize an iterator 
    // pass it the directory to be processed 
    $jsFiles = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("../js")); 
    $cssFiles = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("../css")); 
    $images = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("../_design")); 
    // iterate over the directory 
    // add each file found to the archive 
    foreach ($jsFiles as $key=>$value) { 
     $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key"); 
    } 
    foreach ($cssFiles as $key=>$value) { 
     $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key"); 
    } 
    foreach ($images as $key=>$value) { 
     $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key"); 
    } 
    // close and save archive 
    $zip->close(); 
    echo "Archive created successfully."; 

Lets скажем, у меня уже есть файл под названием color.css, расположенный в /css/main/color.css/, и мне нужна моя новая строка $css для замены всего этого NEW файл в архив, как я мог это сделать? Я посмотрел на ZipArchive::addFromString, но я не мог понять, как это можно разместить в определенной папке. Это единственный файл, который должен меняться в моем каталоге.

Любая помощь будет отличной.

ответ

0

Если вы посмотрите пример № 2 на http://www.php.net/manual/en/ziparchive.addfromstring.php, вы увидите, что первый параметр ZipArchive :: addFromString может быть любым путем в вашем zip-архиве.

Поэтому в вашем случае вызов будет выглядеть следующим образом:

$zip->addFromString("css/main/color.css",$css); 
+0

Ааа, конечно, плохо попробовать это! –

Смежные вопросы