php壓縮工具
既然你只是想學習如何打包.
那我重點就回答你這一塊,正好我剛剛用到;
$filename="./".date('YmdH').".zip";//最終生成的文件名(含路徑)
//生成文件
$zip=newZipArchive();//使用本類,linux需開啟zlib,windows需取消php_zip.dll前的注釋
if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){
exit('無法打開文件,或者文件創建失敗');
}
//$fileNameArr就是一個存儲文件路徑的數組比如array('/a/1.jpg,/a/2.jpg....');
foreach($fileNameArras$val){
$zip->addFile($val,basename($val));//第二個參數是放在壓縮包中的文件名稱,如果文件可能會有重復,就需要注意一下
}
$zip->close();//關閉
//下面是輸出下載;
header("Cache-Control:max-age=0");
header("Content-Description:FileTransfer");
header('Content-disposition:attachment;filename='.basename($filename));//文件名
header("Content-Type:application/zip");//zip格式的
header("Content-Transfer-Encoding:binary");//告訴瀏覽器,這是二進制文件
header('Content-Length:'.filesize($filename));//告訴瀏覽器,文件大小
@readfile($filename);//輸出文件;
㈡ phpcms中文本編輯器里上傳的圖片怎麼壓縮急!在線等!
如果是jpeg的圖片可以設置質量來進行保存 但是會出現圖片不清楚的情亮敏棚況,一敬則般的話拿世設置為90%就可以了。
㈢ php 調整圖片大小函數
PHP有這樣的函數嗎,我伏薯不太清楚,如果有,是不是要載入一系列的DLL呢,我建議不要用PHP的函數來做這個。
我建議使用「ImageMagick」工具來做這些事情,中文網站:http://www.imagemagick.com.cn/
ImageMagick可以做許許多多的功能:緩則它可以讀取、轉換、寫入多種格式的圖片。圖片切割、顏色替換、各種效果的應用,圖片的旋擾廳棚轉、組合,文本,直線,多邊形,橢圓,曲線,附加到圖片伸展旋轉。ImageMagick是免費軟體:全部源碼開放,可以自由使用,復制,修改,發布,它遵守GPL許可協議,可以運行於大多數的操作系統。ImageMagick的大多數功能的使用都來源於命令行工具。通常來說,它可以支持以下程序語言: Perl, C, C++, Python, PHP, Ruby, Java;現成的ImageMagick介面(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)是可利用的。這使得自動的動態的修改創建圖片變為可能。ImageMagick支持至少90種圖片格式:。
圖片轉換的核心文件是CONVERT.EXE,利用這個文件,使用PHP的SYSTEM調用,可以完成各種圖片文件的變換。我網站的程序裡面把用戶上傳圖片寬度大於800的調整為800的語句如下:
$imginfo=getimagesize($tmp_name);
if ($imginfo && $imginfo[0]>0){
//壓縮寬度超過800的圖片為800,10K以上的JPG圖片用30%進行壓縮
if ($imginfo[0]>800){
echo "你上傳的圖片幅面為 $imginfo[0] x $imginfo[1] ,將被壓縮到800個象素寬。<br>";
system('"C:\Program Files\ImageMagick-6.0.7-Q16\convert.exe"'." -sample 800 -quality 80 $tmp_name $tmp_name");
} elseif($imginfo[2]==2 && $src_size>10240) system('"C:\Program Files\ImageMagick-6.0.7-Q16\convert.exe"'." -quality 30 $tmp_name $tmp_name");
//壓縮BMP、TIFF文件為JPG格式
if ($imginfo[2]==6 || $imginfo[2]==7 || $imginfo[2]==8){
system('"C:\Program Files\ImageMagick-6.0.7-Q16\convert.exe"'." -quality 80 $tmp_name $tmp_name.jpg");
rename("$tmp_name.jpg",$tmp_name);
$ext='jpg';
}
}
㈣ 如何用PHP實現頁面的GZIP壓縮輸出
第一步,你需要對php的設置如下:
php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1
第二步,你需要在apache下增加如下設置:
AddOutputFilter DEFLATE html php js css
這樣就可以對html php js css進行gzip壓縮了。
第三步,你需要使用如下php壓縮html並輸出到客戶端的函數:
function compress_html($string) { return ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'), array(">\\1<",'','','','','','><'),$string))); }
上面的這個正則表達式,很強大的哦,經過我本人親自測試可使用。
通過以上方法,你就可以將你的html代碼壓縮然後輸出給客戶端了。不信你可以查看源代碼,就是一行,網頁瞬間壓縮很小。
㈤ PHP怎麼解壓ZIP文件
?php
$zip=zip_open("/tmp/test2.zip");
if($zip){
while($zip_entry=zip_read($zip)){
echo"Name:".zip_entry_name($zip_entry)." ";
echo"ActualFilesize:".zip_entry_filesize($zip_entry)." ";
echo"CompressedSize:".zip_entry_compressedsize($zip_entry)." ";
echo"CompressionMethod:".zip_entry_compressionmethod($zip_entry)." ";
if(zip_entry_open($zip,$zip_entry,"r")){
echo"FileContents: ";
$buf=zip_entry_read($zip_entry,zip_entry_filesize($zip_entry));
echo"$buf ";
zip_entry_close($zip_entry);
}
echo" ";
}
zip_close($zip);
}
?>
㈥ php如何壓縮一個文件夾裡面所有的文件到zip文件裡面
//函數:文件壓縮 //壓縮參數:需要壓縮的文件或文件夾(文件可為數組),壓縮後的zip文件名及存放路徑,壓縮類型1:文件夾2:文件,後續操作1:壓縮後下載;2:存放在伺服器上(默認為/@Upload下) //壓縮文件夾示例:Tozip("./","../".date("d-H-i-s").".zip",1,2); //壓縮文件示例: // $aaa=array("../1.txt","../2.txt"); // Tozip($aaa,"../2.zip",2);FunctionTozip($Path, $ZipFile, $Typ=1, $Todo=1){//IF(!is_writeable($Path)){Exit("文件夾不可寫!");}$Path=Str_iReplace("\\","/",($Path));IF(Is_Null($Path) OrEmpty($Path) Or!IsSet($Path)){ReturnFalse;}IF(Is_Null($ZipFile) OrEmpty($ZipFile) Or!IsSet($ZipFile)){ReturnFalse;} Include_once("inc/Class_Zip.php");$zip=NewPHPZip;IF(SubStr($Path,-1,1)=="/"){$Path=SubStr($Path,0, StrLen($Path)-1);} OB_end_clean();Switch($Typ){Case"1":$zip-ZipDir($Path, $ZipFile, $Todo);Break;Case"2":$zip-ZipFile($Path,
㈦ php 怎麼對url的參數串進行壓縮和解壓縮
如果參數名和值全部是已知的,那麼做一個映射表就可以了。
如果參數的值涉及用戶提交的內容,對於過長的內容,最好使用POST,並開啟Gzip壓縮。
關於URL的長度:
1,普通用戶很少通過修改url來實現跳轉
2,太短的參數名稱就很難理解含義,比如content如果縮短成c,你知道這代表什麼意思么?
3,如果說為了便於保存和分享,那麼可以考慮short url的處理方式
4,url的長度對性能的影響微乎其微,除非是超長文本,那就是程序設計的問題了
5,如果說刻意追求極短的url,還要進行壓縮和解壓縮步驟,真的有點畫蛇添足了
㈧ php 如何將多張圖片壓縮下載到本地 ,詳細一點,有案例更好!!謝謝各位了
php的壓縮方式
<?php
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
?>
用php下載多張圖片
<?php
set_time_limit(0);//設置PHP超時時間
$aImgList = array_unique($aImgList );
foreach($aImgList as $lists) {
file_put_contents(basename($lists), file_get_contents($lists));
}
?>
㈨ 在 Windows 中怎樣處理 bz2 壓縮的文檔
在
Windows
中怎樣處理
bz2
壓縮的文檔?
如果你沒有能處理
bz2
文件的壓縮工具,從
Redhat
下載一個命令行工具(進一步信息見下面)。
如果你不喜歡用命令行工具,你可以試試免費工具例如
Stuffit
Expander,UltimateZip,7-Zip
或者
Quick
Zip。如果你有像
WinRAR
或者
Power
Archiver
之類的工具,可以很容易用它解壓縮
bz2
文件。如果你用
Windows
Commander,可以從
Windows
Commander
網站免費得到一個
bz2
插件。
Redhat
的
bzip2
命令行工具:
Win2K
Sp2
用戶下載最新版本
1.0.2,所有其它
Windows
用戶應該用版本
1.00。下載後重命名可執行文件為
bzip2.exe。為方便起見將其放到一個在你路徑中的目錄,例如
C:\Windows,C
表示你安裝
Windows
的盤符。
注意:lang
指的是你的語種,
x
是想要的格式,例如:pdf。要解壓縮
php_manual_lang.x.bz2,按照下面的簡單說明進行:
打開一個命令行窗口
進入存放已下載的
php_manual_lang.x.bz2
的目錄
調用
bzip2
-d
php_manual_lang.x.bz2,將
php_manual_lang.x
釋放到同一個目錄
在你下載了包含很多
html
文件的
php_manual_lang.tar.bz2
的情況下,過程是一樣的。唯一區別是得到了一個
php_manual_lang.tar
文件。tar
格式可以被大多數
Windows
下流行的壓縮工具所處理,例如
WinZip。
㈩ PHP的gzip壓縮方法 ,為什麼壓縮了反而更慢了。尤其瀏覽器緩存js以後
壓縮網頁以後,是減少網路傳輸時間、增加伺服器和瀏覽器的CPU佔用時間,總時間的影響要區別情況,如果你用高級電腦、慢速網路,那麼肯定是壓縮了的好,如果是高速網路、低配置電腦,那麼肯定是不壓縮的好。
是否採用壓縮,一般是網站管理員決定,網站管理員看伺服器的瓶頸是在流量上,還是CPU、內存佔用上,根據情況決定是否壓縮,以及壓縮的程度。
另外,測試的網頁大小可能不準確,許多網路工具是顯示還原後的大小。