php 文件操作,PHP ZipArchive扩展库,php处理flash扩展

1.文件下载
header("Content-type: text/html; charset=utf-8");  //设置头信息
if (!file_exists($file_dir.$name)){  //判断是否存在某个文件
      echo "File not found!";   //如果不存在就提示用户文件未找到
    } else {


            $file = fopen($file_dir.$name,"r");   //否则就读取文件


            Header("Content-type: application/octet-stream"); //设置浏览器下载需要的头,告诉客户端的浏览器服务端返回的文件形式 是一个下载文件
            Header("Accept-Ranges: bytes"); //告诉客户端浏览器返回的文件大小是按照字节进行计算的 
            Header("Accept-Length: ".filesize($file_dir . $name)); //告诉浏览器返回的文件大小 
            Header("Content-Disposition: attachment; filename=".$name); //:告诉浏览器返回的文件的名称 
            echo fread($file, filesize($file_dir.$name)); //按字节读取文件
            fclose($file);//关闭文件资源
}




2.文件压缩:
   PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,


 addEmptyDir()  添加一个新的文件目录
 addFile() 将文件添加到指定zip压缩包中。
 ddFromString()添加的文件同时将内容添加进去
 open()  打开一个zip压缩包
 close()关闭ziparchive
 extractTo()将压缩包解压
 getStatusString()返回压缩时的状态内容,包括错误信息,压缩信息等等
 deleteIndex()删除压缩包中的某一个文件,如:deleteIndex(0)删除第一个文件
 deleteName()删除压缩包中的某一个文件名称,同时也将文件删除。




注意点:使用open方法的时候,第二个参数$flags是可选的,$flags用来指定对打开的zip文件的处理方式,共有四种情况


1.  ZIPARCHIVE::OVERWRITE 总是创建一个新的文件,如果指定的zip文件存在,则会覆盖掉


2.ZIPARCHIVE::CREATE     如果指定的zip文件不存在,则新建一个


3. ZIPARCHIVE::EXCL      如果指定的zip文件存在,则会报错   


4. ZIPARCHIVE::CHECKCONS




一、解压缩zip文件


   $zip=new ZipArchive;//新建一个ZipArchive的对象


    if($zip->open('test.zip')===TRUE){


    $zip->extractTo('images');//假设解压缩到在当前路径下images文件夹内


    $zip->close();//关闭处理的zip文件


  }
二、将文件压缩成zip文件


  $zip=new ZipArchive;


if($zip->open('test.zip',ZipArchive::OVERWRITE)===TRUE){


    $zip->addFile('image.txt');//假设加入的文件名是image.txt,在当前路径下


    $zip->close();


}
三、文件追加内容添加到zip文件




$zip=new ZipArchive;


$res=$zip->open('test.zip',ZipArchive::CREATE);


if($res===TRUE){


    $zip->addFromString('test.txt','file content goes here');


    $zip->close();


    echo 'ok';


}else{


    echo 'failed';


}
四、将文件夹打包成zip文件


function addFileToZip($path,$zip){


    $handler=opendir($path); //打开当前文件夹由$path指定。


    while(($filename=readdir($handler))!==false){


        if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..’,不要对他们进行操作


            if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归


                addFileToZip($path."/".$filename, $zip);


            }else{ //将文件加入zip对象


                $zip->addFile($path."/".$filename);


            }


        }


    }


    @closedir($path);


}


$zip=new ZipArchive();


if($zip->open('images.zip', ZipArchive::OVERWRITE)=== TRUE){


    addFileToZip('images/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法


    $zip->close(); //关闭处理的zip文件


}


3.php处理flash扩展:
 ming库:


 

<?php
$f = new SWFFont( '_sans' ); //创建指向一个内置字体(_sans)的指针
$t = new SWFTextField();  //创建文本字段
$t->setFont( $f );  //设定字体
$t->setColor( 0, 0, 0 );//颜色
$t->setHeight( 400 ); //大小,
$t->addString( 'Hello World' ); //提供一些文本内容(“Hello World”)


$m = new SWFMovie(); //创建了一个 SWFMovie 对象并设定其尺寸
$m->setDimension( 2500, 800 );
$m->add( $t );  //向动画中添加了文本元素并将动画保存到文件中。


$m->save( 'hello.swf' );  //在本地保存为 hello.swf
?>


 打开浏览器输入  hello.swf 就可以看到了哦。


header( 'Content-type: application/x-shockwave-flash' );
$m = new SWFMovie();
$m->setDimension( 300, 300 );


$s = new SWFShape();
$s->setLine( 5, 0, 0, 0 );
$s->movePenTo( -100, -100 );
$s->drawLineTo( 100, 100 );
$ts = $m->add( $s );


$ts->moveTo( 150, 150 );


for( $i = 0; $i < 100; $i++ ) {
    $ts->rotate( 10 );
    $m->nextframe();
}
$m->save( 'rotate.swf' );
从 -100, -100 到 100, 100 画了一条直线。这将把直线的中心放在坐标 0,0 处。这样,当我在旋转图形时,直线的中心将发生旋转。
当我向动画中添加图形时,将移动返回到框架中心的 SWFDisplayItem。然后用 rotate() 方法使它旋转并每旋转一周就增大其框架。


<?php
$img = new SWFBitmap(file_get_contents( 'megan.jpg' ));


$s = new SWFShape();
$imgf = $s->addFill( $img );
$s->setRightFill( $imgf );
$s->movePenTo( 0, 0 );
$s->drawLineTo( $img->getWidth(), 0 );
$s->drawLineTo( $img->getWidth(), $img->getHeight() );
$s->drawLineTo( 0, $img->getHeight() );
$s->drawLineTo( 0, 0 );


$m = new SWFMovie();
$m->setDimension( $img->getWidth() * 2, $img->getHeight() * 2 );
$is = $m->add( $s );
$is->moveTo( $img->getWidth() / 2, $img->getHeight() / 2 );


for( $i = 0; $i < 10; $i++ )

$is->skewx( 0.02 );
$is->skewy( -0.03 );
$m->nextframe();
}


$m->save( 'image.swf' );
?>






  





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值