php读取jar信息自动生成jad文件
上传jar手机游戏客户端时,因为有些手机如三星的某些机型只能安装jad文件,所以在后台上传需弄一个根据JAR文件自动生成JAD的功能。一般在JAR的文件包内,会有一个游戏信息文件,一般会在META-INF/MANIFEST.MF里,我们只需要读取到这个文件的内容,然后增加一些其它信息,生成JAD文件里就行了。这里需要用到PHP的zip扩展来读取JAR文件内容。
一、安装php zip扩展
wget http://pecl.php.net/get/zip-1.10.2.tgz
tar zxvf zip-1.10.2.tgz
cd zip-1.10.2
/opt/php528fpm/bin/phpize
./configure --with-php-config=/opt/php528fpm/bin/php-config
make
make install
cp /opt/php528fpm/lib/php/extensions/no-debug-non-zts-20060613/zip.so /opt/php528fpm/ext/
vi /opt/php528fpm/lib/php.ini
extension=zip.so //增加zip.so扩展
/opt/php528fpm/sbin/php-fpm restart //重启PHP
二、读取JAR里的文件内容生成JAD
$jar_file = "test.jar";
$jar_content = zip_open($jar_file);
if(!empty($jar_content)){
$jar_size = filesize($jar_file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_name($zip_entry) == "META-INF/") {
if (zip_entry_open($zip, $zip_entry, "r")) {
$jad_content = "MIDlet-Jar-Size: $jar_size\r
MIDlet-Jar-URL: $jar_file\r\n";
$jad_content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$jad_file = str_replace('jar','jad',$jar_file);
$handle = fopen($jad_file, "w");
fwrite($handle, $jad_content);
zip_entry_close($zip_entry);
}
}
}
}
相关文档:
今天碰到个奇怪的问题,一个ajax页面在本地测试服务器运行一切正常,传到公网服务器上就死活说 javascript错误。
打开代码一看,是javascript的那一行使用了一个json的reponseText,DEBUG一下,原来回传是空的。
看看后台PHP,貌似没什么问题(本来以为是URL问题)然后上网搜一下,原来是PHP的json_encode函数在5.2下才有 ......
<?php
$HotSong="爱情转移|菊花台|离歌|月亮之上|隐形的翅膀|中国话|求佛|秋天不回来|发现爱|难道爱一个人有错吗|千里之外|连哭都是我的错";
function HotSo($HotSong){
$HotSo='';
echo($HotSong);
$b=explode('|',$HotSong);
foreach ($b as $v) {
$HotSo.="<a href="song.php?song=".urlencode($v)."" mce_ ......
面向对象编程的方法中,为了实现对象间的松耦合,其中一种简单的原则就是将应用策略与功能实现分离。常常用到的设计模式有factory、facade等,而当中的核心编程技术就是callback技术。
所谓callback技术,简单的说就是将函数的作为一个参数传递给另外一个函数,并被该函数所调用。
php下,实现工厂模式的有一下。几个关键 ......
<?php
class
CacheException
extends
Exception {}
/**
* 缓存抽象类
*/
abstract
class
Cache_Abstract {
/**
&nbs ......
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] &n ......