标签存档: php - 第2页

php解压swf

<?php  
//文件名
$filename = "test.swf";
//打开文件
$rs = fopen($filename,"r");
//读取文件的数据
$str = fread($rs,filesize($filename));
//check compress status
$check = substr($str,0,1);
if($check=="C")
{
	echo "这是一个压缩文件,下面解压";
//设置swf头文件
$head = substr($str,1,7);
$head = "F".$head;
//获取swf文件内容
$body = substr($str,8);
//解压缩文件内容
$body = gzuncompress($body);
//合并文件头和内容
$str = $head.$body;
//关闭读取的文件流
fclose($rs);
//创建一个新的文件
$ws = fopen("jieya.swf","w");
//写文件
fwrite($ws,$str);
}else if($check=="F")
{
	echo "这是一个没有压缩的文件,下面开始压缩";
	$head = substr($str,1,7);
$head = "C".$head; 
$body = substr($str,8); 
$body = gzcompress($body, 9);  
$str = $head.$body; 
fclose($rs);  
$ws = fopen("yasuo.swf","w");  
fwrite($ws,$str);  
}else
{
  echo "这不是一个合法的flash文件";
}
//关闭文件
fclose($ws);
?>

php通过ming扩展创建swf经典范例

1.画个正方形

<?php
$mc = new SWFMovie();
$mc->setDimension( 200, 200 );

$s = new SWFShape();
$s->setLine( 5, 0, 0, 0 );
$s->movePenTo( 20, 20 );
$s->drawLineTo( 160, 20 );
$s->drawLineTo( 160, 160 );
$s->drawLineTo( 20, 160 );
$s->drawLineTo( 20, 20 );
$mc->add( $s );
$mc->save( 'shape.swf' );
?>

2.合并jpg图片

<?php
   $m = new SWFMovie();
  $m->setDimension(200, 200);
  $m->add(new SWFBitmap(fopen("s.jpg", "rb")));

  //header('Content-type: application/x-shockwave-flash');
  $m->save( 'shape4.swf' );
?>

3.外部加载swf

<?php
    $m = new SWFMovie();
    $m->setRate(30.000000);
    $m->setDimension(200, 200);
    $m->setBackground(0xff, 0xff, 0xff);

    $m->add(new SWFAction('
        myvar = "variable to pass to flash";
        LoadMovie("shape4.swf", "mc");
    '));

    /* -- make movie clip 'mc' that we will load flash_file_created_by_hand.swf into -- */
    $s1 = new SWFSprite();  /* (1 frames) */
    $s1->nextFrame();  /* (end of sprite frame 0) */
    $i1 = $m->add($s1);
    $i1->setName('mc');
    $m->nextFrame();  /* (end of frame 0) */

    //header('Content-type: application/x-shockwave-flash');
   // $m->output();
   $m->save("1.swf");
?>

4.合并swf,(注意这里的swf都是非压缩的,要合并压缩的swf,先要解压缩然后再压缩,参考这篇文章:php解压swf)

<?php
   $m = new SWFMovie();
  $m->setDimension(200, 200);
  $m->add(new SWFPrebuiltClip(fopen("shape4.swf", "rb")));
  $m->add(new SWFPrebuiltClip(fopen("shape.swf", "rb")));
  //header('Content-type: application/x-shockwave-flash');
  $m->save( 'ms.swf' );
?>

如何让php的json_encode不转义反斜杠

解决办法:

1. 正则替换

echo str_replace(“\\/”, “/”, json_encode(“2013/4/21”));
2. 若是php版本是5.4的话:

echo json_encode(“2011/7/11”, JSON_UNESCAPED_SLASHES);

PHP框架 Yii framework 用yiic命令时提示“php.exe”不是内部或外部命令

原因是 Yii 自带的yiic.bat 找不到php.exe.
解决方法: 用notepad++打开yii/framework/yiic.bat,修改
if “%PHP_COMMAND%” == “” set PHP_COMMAND=php.exe
→→→ if “%PHP_COMMAND%” == “” set PHP_COMMAND=D:\wamp\php\php.exe

我的就是修改为
if “%PHP_COMMAND%” == “” set PHP_COMMAND=C:\wamp\bin\php\php5.4.3\php.exe