{% else-1 %}
Задача: изменить имя игры при установки с Worms на Worms

                        
<?php 




/*

Задача: изменить имя игры при установки с Worms на Worms snippets.pp.ru

*/



//исходный файл

$file = 'Worms.jar';



//создаем объект

$z = new ZipArchive();



//открываем архив с возможностью перезаписи

if (!$z->open($file, ZIPARCHIVE::OVERWRITE)) die('Не удалось открыть архив');



//далее извлекаем MANIFEST.MF

$mf = '';

$manifest = 'META-INF/MANIFEST.MF';

$fp = $z->getStream($manifest);

if(!$fp) {

//манифест еще может быть здесь Meta-inf/Manifest.mf

$manifest = 'Meta-inf/Manifest.mf';

$fp = $z->getStream($manifest);

if (!$fp) {

die('не удалось извлечь манифест');

}

}



//читаем данные

while (!feof($fp)) {

$mf .= fread($fp, 2000);

}

fclose($fp);



echo $mf;



/* Получаем вот это



Manifest-Version: 1.0

Ant-Version: Apache Ant 1.6.2

Created-By: 1.4.2_06-b03 (Sun Microsystems Inc.)

MIDlet-Name: Worms Forts Etty 2D

MIDlet-Vendor: THQ.Etty

MIDlet-1: Worms Forts, /Icon_15x15.png, CMIDlet

MIDlet-Version: 1.0.1

MIDlet-Icon: /Icon_15x15.png

MicroEdition-Configuration: CLDC-1.0

MicroEdition-Profile: MIDP-2.0



*/



//дополняем название игры

$mf = preg_replace('`MIDlet-Name:s+([^
]+)`i', 'MIDlet-Name: 1 snippets.pp.ru', $mf);



//и теперь самое главное! заменяем файл манифеста в архиве

//разумеется у архива должны быть права на запись

$z->addFromString($manifest, $mf);

$z->close();
0 26 0
Без комментариев...