首页 > PHP教程

为PHP4加入动态Flash文件的生成的支持

想象过在网站上动态生成flash动画吗,本文就让你步入php flash的激动时代。
php真是个好东西呀,真是无法预料她明天会变的怎样。。。好了,言归正传,下面
介绍怎样实现这个功能。

一、需要的软件

swf的支持库
http://reality.sgi.com/grafica/flash/dist.99.linux.tar.Z
这个包里面有文档,你可以用c来使用它,他的例子就是。
这哥们太好了,不过他要是提供源码就更好了。

还有当然是php4了从http://www.php.net得到

二、安装

1、libswf.a安装
#cp dist.99.linux.tar.Z /usr/local
#tar xvzf dist.99.linux.tar.Z
#cd dist
#make
你会看到例子c程序生成的image.swf和test.swf两个文件,你可以放到浏览器看看结果。
假如出来了,你就完成一半了。
你还需要做一些事情
在/etc/profile中加入
SWFBINPATH=/usr/local/dist/bin
export SWFBINPATH
SWFFONTPATH=/usr/local/dist/fonts
export SWFFONTPATH

2、编译php4
编译加入
--with-swf=/usr/local/dist
笔者在编译的时候发现找不到swf.h错误,用
#cp /usr/local/dist/swf.h /php/src/directory/ext/swf解决问题
安装完后做个如下的脚本(php文档带的例子),请注重当前目录下的swf目录要可
写,不然apache会出错的你什么都会的不到的

执行完后用浏览器调用test.swf文件,你肯定会很惊奇php的威力,呵呵
体会一下程序设计和艺术设计的完美感觉吧,可惜我没有艺术头脑:-(
在/usr/local/dist/bin中有两个程序,imgtofi用来转化rgb,gif,jpg到libswf.a支持的
图形格式,pstoff为把ps字体转化为libswf.a可用的字体,我转化过英文字体,能在程序
中使用,但是没转化成功过中文字体,不知道哪位大虾成功了,能否告之一下。
关于swf的php函数说明,请去php.net找最新的manual。

阅读全文

php windows系统探测程序

function do_command($commandName, $args) {
 $buffer = "";
 if (false === ($command = find_command($commandName))) return false;
 if ($fp = @popen("$command $args", 'r')) {
  while (!@feof($fp)){
   $buffer .= @fgets($fp, 4096);
  }
  return trim($buffer);
 }
 return false;
}

阅读全文

php检测服务器系统信息[可以查CPU]

function sys_linux() {
 // CPU
 if (false === ($str = @file("/proc/cpuinfo"))) return false;
 $str = implode("", $str);
 @preg_match_all("/models+names{0,}:+s{0,}([ws)(@.]+)([rn]+)/s", $str, $model);
 @preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[A-Z]+[rn]+)/", $str, $cache);
 if (false !== is_array($model[1])) {
  $res['cpu']['num'] = sizeof($model[1]);
  for($i = 0; $i < $res['cpu']['num']; $i++) {
   $res['cpu']['model'][] = $model[1][$i];
   $res['cpu']['cache'][] = $cache[1][$i];
  }
  if (false !== is_array($res['cpu']['model'])) $res['cpu']['model'] = implode("<br />", $res['cpu']['model']);
  if (false !== is_array($res['cpu']['cache'])) $res['cpu']['cache'] = implode("<br />", $res['cpu']['cache']);
 }

阅读全文

无刷新登陆


<form action="login.php" method="post"  target="userlogin" name="loginform">
<div class="TxtUser" id="userlogindiv">
用户名:<input name="accounts" id="accounts" type="text"   size="18" >
密码: <input name="passwords" id="passwords"  type="password"  size="18" >
<input type="submit" name="Submit" value="登录" />
</div>
</form>
<iframe name="userlogin" width="1" height="1" ></iframe>

login.php页面:
<?
$accounts=$_POST['accounts'];
$passwords=$_POST['passwords'];
$showdata="我登录啦!!";
if($accounts=="admin" && $passwords=="123456")
{
echo'<script language="JavaScript"> ';
echo'parent.document.getElementById("userlogindiv").innerHTML=''.$showdata.'';';
echo'</script>';
}
?>

阅读全文

php+jquery在线切图代码[仿dedecms]

php+jquery在线切图代码[防dedecms]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Cropper</title>
  <!-- css -->
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.6.0/build/reset-fonts-grids/reset-fonts-grids.css" />
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/resize/assets/skins/sam/resize.css" />
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/imagecropper/assets/skins/sam/imagecropper.css" />
  <!-- js -->
  <script type="text/javascript" src="http://yui.yahooapis.com/combo?2.5.2/build/yahoo-dom-event/yahoo-dom-event.js&2.5.2/build/dragdrop/dragdrop-min.js&2.5.2/build/element/element-beta-min.js&2.5.2/build/resize/resize-beta-min.js&2.5.2/build/imagecropper/imagecropper-beta-min.js&2.5.2/build/connection/connection-min.js&2.5.2/build/json/json-min.js"></script>
  
  <style type="text/css">
   a:link, a:visited, a:active{
    color: #000;
    text-decoration: none;
    font-weight: bold;
   }
   
   a:hover{
    color: #fff;
    background-color: #000;
   }
   
   #hd{
    font-size: 2em;
    font-weight: bold;
    text-align: left;
    padding-bottom: 20px;
    border-bottom: 1px solid #ccc;
    margin: 10px 0 10px 0;
   }
   
   #uploadForm, #downloadLink{
    text-align: center;
   }
   
   #imageContainer{
    margin: 20px 0px 20px 0;
   }
   
   #ft{
    margin-top: 10px;
    padding-top: 10px;
    border-top:1px solid #ccc;
    text-align: center;
   }
  </style>
  
  <script type="text/javascript">
   uploader = {
    carry: function(){
     // set form
     YAHOO.util.Connect.setForm('uploadForm', true);
     // upload image
     YAHOO.util.Connect.asyncRequest('POST', 'upload.php', {
      upload: function(o){
       // parse our json data
       var jsonData = YAHOO.lang.JSON.parse(o.responseText);
       
       // put image in our image container
       YAHOO.util.Dom.get('imageContainer').innerHTML = '<img id="yuiImg" src="' + jsonData.image + '" width="' + jsonData.width + '" height="' + jsonData.height + '" alt="" />';
       
       // init our photoshop
       photoshop.init(jsonData.image);
       
       // get first cropped image
       photoshop.getCroppedImage();
      }
     });
    }
   };
      
   photoshop = {
    image: null,
    crop: null,
    //url: null,
    
    init: function(image){
     // set our image
     photoshop.image = image;
     
     // our image cropper from the uploaded image
     photoshop.crop = new YAHOO.widget.ImageCropper('yuiImg');
     photoshop.crop.on('moveEvent', function() {
      // get updated coordinates
      photoshop.getCroppedImage();
     });
    },
    
    getCroppedImage: function(){
     var coordinates = photoshop.getCoordinates();
     var url = 'crop.php?image=' + photoshop.image + '&cropStartX=' + coordinates.left +'&cropStartY=' + coordinates.top +'&cropWidth=' + coordinates.width +'&cropHeight=' + coordinates.height;
     YAHOO.util.Dom.get('downloadLink').innerHTML = '<a href="' + url + '">download cropped image</a>';
    },
    
    getCoordinates: function(){
     return photoshop.crop.getCropCoords();
    }
   };
   
   // add listeners
   YAHOO.util.Event.on('uploadButton', 'click', uploader.carry);
  </script>
 </head>
 <body class="yui-skin-sam">
  <div id="doc4" class="yui-t7">
   <div id="hd">
    AJAX image cropper - YUI-based
   </div>
   
   <div id="bd">
    <form action="upload.php" enctype="multipart/form-data" method="post" name="uploadForm" id="uploadForm">
     Image : <input type="file" name="uploadImage" id="uploadImage" />
     <input type="button" id="uploadButton" value="Upload"/>
    </form>
    
    <div id="imageContainer"></div>
    
    <div id="downloadLink"></div>
   </div>
   
   <div id="ft">
    <a href="http://htmlblog.net">HTML Blog</a>
   </div>
  </div>
 </body>
</html>
上面为index.php文件
根据x,y,来用php重新绘图

阅读全文

PHP Session 用法与Sessions入实例应用


session 出现头信息已经发出的原因与cookie一样.
    在php教程5中,所有php session 的注册表配置选项都是编程时可配置的,一般情况下,我们是不用修改其配置的.要了解php的session注册表配置选项,请参考手册的Session 会话处理函数处.
      session的保存数据的时候,是通过系列化$_SESSION数组来存贮,所以有系列化所拥有的问题,可能有特殊字符的值要用base64_encode函数编码,读取的时候再用base64_decode解码

阅读全文

php类使用数据类的实例教程

在这一节中,我们将杀害二鸟一石。不仅我们将学习如何将面向对象的PHP和MySQL ,但是我们将学习如何组对象。在这种情况下,你将建立一个一流的UsersGroup其中将包含一系列的用户对象。每个用户对象将建立连续使用从MySQL查询。要尝试这个实际例子,您首先需要建立一个用户表在MySQL数据库。我使用的是MySQL数据库命名为' kirupa_oop ` 。使用下面的查询创建表并插入样本数据。

阅读全文