可以壓縮/解壓縮zip檔
1. opf檔的預視
$archive = new PclZip($path.'/'.$file);
header("Content-type: image/png");
$list = $archive->extract(PCLZIP_OPT_BY_NAME,'Thumbnails/thumbnail.png' ,PCLZIP_OPT_EXTRACT_IN_OUTPUT);
PCLZIP_OPT_EXTRACT_IN_OUTPUT 這個選項讓資料直接輸出,這樣就可以用
<img scr = '....php?file=...>方式顯示預視圖
2.如果writer只有一張圖
$archive = new PclZip($path.'/'.$file);
$list = $archive->listContent();
$filename;
for ($i=0; $i<sizeof($list); $i++) {
if (substr($list[$i]['filename'],0,8)=='Pictures') {
$filename = $list[$i]['filename'];
break;
}
}
if ($filename) {
header("Content-type: image/png");
$list = $archive->extract(PCLZIP_OPT_BY_NAME,$filename ,PCLZIP_OPT_EXTRACT_IN_OUTPUT);
}
類似的方法可以把圖顯示出來
3. 顯示sb2檔中的程式碼
$archive = new PclZip($path.'/'.$file);
$json = $archive->extract(PCLZIP_OPT_BY_NAME,'project.json' ,PCLZIP_OPT_EXTRACT_AS_STRING);
$obj = json_decode($json[0]['content']);
foreach($obj->{'children'} as $child) {
echo $child->{'objName'} ;
echo ':<br>';
foreach ($child->{'scripts'} as $script) {
showoneblock($script[2]);
echo "<br><br>";
}
}
function showoneblock($block) {
foreach($block as $b) {
foreach($b as $c) {
if (is_array($c)) {
echo '{<br>';
showoneblock($c);
echo '}';
} else {
echo $c.' ';
}
}
echo "<br>";
}
}