phar的本质是一种压缩文件,会以序列化的形式存储用户自定义的meta-data。Phar文件结构stub:phar文件标识,以 __HALT_COMPILER();?>结尾manifest:压缩文件的属性等信息,以序列化的形式存储自定义的meta-datacontents:压缩文件的内容signature:签名,在文件末尾测试首先将php.ini中的phar.readonly置为Off,否则无法生成phar文件,而且这个参数是无法通过ini_set()进行修改的。生成phar文件 class TestObject { } @unlink("phar.phar"); $phar = new Phar("phar.phar"); //后缀名必须为phar $phar->startBuffering(); $phar->setStub(""); //设置stub $o = new TestObject(); $o ->data = 'th1e'; $phar->setMetadata($o); //将自定义的meta-data存入manifest $phar->addFromString("test.txt", "test"); //添加要压缩的文件 //签名自动计算 $phar->stopBuffering();?>打开文件可以看到,以序列化储存的文件构造利用代
………………………………