Архивация при помощи Archive_Tar

  • Автор темы Соколов Станисл
  • Дата начала

Соколов Станисл

Guest
Архивация при помощи Archive_Tar

PHP:
$tar_object = new Archive_Tar("price.tar", true);
$tar_object->setErrorHandling(PEAR_ERROR_PRINT);

$v_list[0]="test.xls";
$v_list[1]="/vhosts/we.mediagid.ru/htdocs/price/";
//$v_list[2]="file.log";
$tar_object->create($v_list);
так пытаюсь заархивировать, но после разархивирования данные в файле портятся
Кто нить сталкивался с этим?
 

Макс

Старожил PHPClub
версии пхп, апачи, Archive_Tar ?
Опиши сам процесс, как ты проверяешь ?

ЗЫ
у меня что-то похожее было, но это было несколько лет назад с какой-то старой версией класса.
 

Соколов Станисл

Guest
php 4.3.4
Archive_Tar 1.0
апаче 1.3.29
PHP:
$tar_object = new Archive_Tar("price.tar", true); 
$tar_object->setErrorHandling(PEAR_ERROR_PRINT); 
$v_list[0]="test.xls"; 
$v_list[1]="/vhosts/we.mediagid.ru/htdocs/price/"; 
$v_list[2]="file.log"; 
$tar_object->create($v_list);
Этот код описан в документации, так что вроде все номано, а на самам деле он архивирует xls файл а после разархивирования в экселе видим следущее


Модель
 Характеристики
 Цена  FlexCam USB2 *цветная матрица ПЗС 1/4" /5,2 мм/350 линий 810 FlexCam ? 7цветная матрица ПЗС 1/4" / 5,7 мм /400 линий/310 линий  788

-~{}~ 20.04.04 18:02:

Кстати у меня еще одна проблема не могу вставить картинку в этот xls файл
почему та она растягивается по горизонтали
PHP:
$worksheet->insertBitmap
/*******************************************/
(0,0,'/vhosts/we.mediagid.ru/htdocs/img/hat/price1.bmp');
/*******************************************/
$worksheet->writeString(10, 0, 'Модель', $format_zag);
$worksheet->writeString(10, 1, 'Характеристики', $format_zag);
$worksheet->writeString(10, 2, 'Цена', $format_zag);
while ($a_row=mysql_fetch_array($result))
{
$br_model=$a_row[brend]." ".$a_row[model];
$worksheet->setColumn(0,3,50);
$worksheet->writeString($i, 0, $br_model, $format);
$worksheet->writeString($i, 1, $a_row[ful], $format);
$worksheet->writeString($i, 2, $a_row[price], $format);
 

sokol

Zavolga.Net
Соколов Станисл
Принципиально решать задачу с помошью Archive_Tar?
Если нет, то можно позаимствовать код из phpMyAdmin.

У Archive_Tar есть одна нехорошая проблема (вернее хорошая, потому он и назван Type Archive), при добалвении нового файла имя которго совпадает с уже имеющимися в архиве не происходит замены, там так и продолжают существовать два файла с одинаковым названием.
 

Соколов Станисл

Guest
sokol
А не подскажешь где мона посмотреть на этот код, мне важен результат а не метод решения
 

sokol

Zavolga.Net
Отправил по почте на info[nospam]mediagid.ru
Но работает только в режиме генерации, для чтения можно использовать стандартные ф-ии PHP. Я его немного модифицировал, но интерфейс не менял.
 

Соколов Станисл

Guest
Огромное спасиба, но вот тока чет не очень получается...
PHP:
$file_xls='test.xls';
$file_arx='test.zip';
$zipfile= new ZipFile();
$zipfile->addFile($file_xls, $file_arx);
$file_xls=$zipfile->file();
 

Соколов Станисл

Guest
Archive_Tar 1.1 нашел а Archive_Tar 1.5 нету:(
 

sokol

Zavolga.Net
Соколов Станисл
Пример использования... можно было поюзать поиск по слову zipfile!

PHP:
$zipfile = new zipfile(); 
$zipfile -> addFile($file_contents_1, $filename_in_zip_arhive_1); 
$zipfile -> addFile($file_contents_2, $filename_in_zip_arhive_2); 
.. 
$zipfile -> addFile($file_contents_n, $filename_in_zip_arhive_n); 

$fp = fopen("file.zip","wb"); 
fputs($fp,$zipfile -> file()); 
fclose($fp);
-~{}~ 22.04.04 13:13:

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

$zipfile -> addFile($file_contents_1, $filename_in_zip_arhive_1);

вот и все.
 
Сверху