想象过在网站上动态生成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']);
}
php 如何取得select下拉列表框的值
给select 表单无素一个名字。
表单提交后 用 $_POST 或 $_GET 方式提交
$_POST['sel']或者$_GET['sel']获得选中的select的value值
php 正则表达式获取网页所有网址和链接文字
$url ='http://www.phprm.com';
$body=@file_get_contents($url);
preg_match_all('/href=['"]?([^'"]*)['"]?>(.*)/i',$body,$b);
$nums = array();
foreach($b[1] as $u){
if(in_array($u,$nums)){
continue;
}
$nums[]=$u;
$title=strip_tags($u);
echo $title."</br>";
}
php 上一篇与下一篇文章代码
基本知识:
就是对id对进行order by id desc 或 order by id asc进行排序,然后再判断比当前id> or小于当前文章id的
实例的sql语句如下:
php FreeBSD系统探测程序
function sys_freebsd() {
//CPU
if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
$res['cpu']['model'] = get_key("hw.model");
php 生成xml代码
php 生成xml代码class XMLParser {
function getChildren($vals, &$i) {
无刷新登陆
<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 ` 。使用下面的查询创建表并插入样本数据。