php实例多文件上传实例代码
//a = $(<span class="MultiFile-title" title="+MultiFile.STRING.selected.replace($file, v)+">+MultiFile.STRING.file.replace($file, v.match(/[^/]+$/gi)[0])+</span>),
php 汉字转成拼音代码
php 汉字转成拼音代码
<?php
function utf82gb($utfstr){ // UTF-8汉字转GBK汉字
if(function_exists(iconv)){ return iconv(utf-8,gbk,$utfstr); }
global $UC2GBTABLE;
$okstr = "";
if(trim($utfstr)=="") return $utfstr;
if(empty($UC2GBTABLE)){
$filename = dirname(__FILE__) . "/gb2312-utf8.table";
$fp = fopen($filename,"r");
while($l = fgets($fp,15))
{ $UC2GBTABLE[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6));}
fclose($fp);
}
$okstr = "";
$ulen = strlen($utfstr);
for($i=0;$i<$ulen;$i++)
{
$c = $utfstr[$i];
$cb = decbin(ord($utfstr[$i]));
if(strlen($cb)==8){
$csize = strpos(decbin(ord($cb)),"0");
for($j=0;$j < $csize;$j++){
$i++; $c .= $utfstr[$i];
}
$c = utf82u($c);
if(isset($UC2GBTABLE[$c])){
$c = dechex($UC2GBTABLE[$c]+0x8080);
$okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
}
else
{ $okstr .= "&#".$c.";";}
}
else $okstr .= $c;
}
$okstr = trim($okstr);
return $okstr;
}
php 删除数据表与删除数据库
php 删除数据表与删除php
//---------------------------删除数据表
function Ebak_Drop($tablename,$dbname){
global $empire;
$dbname=RepPostVar($dbname);
$empire->query("use `$dbname`");
$count=count($tablename);
if(empty($count))
{printerror("EmptyChangeDelTb","history.go(-1)");}
$a="";
$first=1;
for($i=0;$i<$count;$i++)
{
if(empty($first))
{
$a.=",";
}
else
{
$first=0;
}
$a.="`".$tablename[$i]."`";
}
$sql1=$empire->query("DROP TABLE IF EXISTS ".$a.";");
printerror("DelTbSuccess","ChangeTable.php?mydbname=$dbname");
}
PHP连mysql和oracle数据库性能比较
使用一个很简单的表,mysql和oracle使用的表结构是一样的,都只有三个字段,结构如下:
mysql的表结构:
CREATE TABLE board (
board_id smallint(6) NOT NULL auto_increment,
board_name char(16) NOT NULL,
board_manager char(20),
PRIMARY KEY (board_id)
);
oracle的结构:
CREATE TABLE PHP_ORACLE."BOARD"
("BOARD_ID" FLOAT,
"BOARD_NAME" CHAR(16) NOT NULL,
"BOARD_MANAGER" CHAR(20)) ;
我们只测试了INSERT操作花的时间,对于select,并未作测试。
因为win32下只有PHP3才能连接oraclemysql,所以只测试了用PHP3连接oracle的性能。相
信在PHP4的正式版本出来后,用PHP4连接oracle的速度应该有所提升。
而在LINUX下,因为我没有装oracle,所以只测试了mysql的性能。据说在LINUX下,oracle
的性能不错,只是无法测试。
并且我们将所有的用于数据库连接和oracle用来分析sql语句的代码都放在了统计代码之外
,所以测试得出的时间只是用于执行SQL操作所花费的时间。
用来测试mysql的程序:
<?mysql
$dblink=mysql_connect("localhost","root","shh123");
mysql_select_db("bbs");
$counter=1;
set_time_limit(300);
$query="insert into board (board_name,board_manager) values (test,test)";
$begin_time=time();
for ($i=1;$i<=10000;$i++){
mysql_db_query("bbs",$query);
$counter++;
}
$end_time=time();
mysql_close($dblink);
echo "test db speed...<br>";
echo "begin time:".$begin_time."<BR>";
echo "<BR>end time:".$end_time."<BR>";
$total=$end_time-$begin_time;
echo "total spent time:".$total;
?>
用来测试oracle的程序:
<?php
$handle=OCILogon("php_oracle","php_oracle");
$counter=1;
set_time_limit(300);
$query="insert into board (board_id,board_name,board_manager) values (:board_id,test,test)";
$state=OCIParse($handle, $query);
OCIBindByName($state, ":board_id", &$i,32);
$begin_time=time();
for ($i=1;$i<=10000;$i++){
ociexecute($state);
}
$end_time=time();
OCIFreeStatement($state);
ocilogoff($handle);
echo "test db speed...<br>";
echo "begin time:".$begin_time."<BR>";
echo "<BR>end time:".$end_time."<BR>";
$total=$end_time-$begin_time;
echo "total spent time:".$total;
?>
测试结果:
环境:win32+apache+php4+mysql
结果:28秒
环境:win32+apache+php3+mysql
结果:34秒
环境:win32+apache+php3+oracle8.0.5(oci函数)
结果:46秒
环境:linux+apache+php4+mysql
结果:10秒
结论:
在WIN32下,mysql的性能虽然不是很好,但和oracle8比起来,还是要快很多,尤其是我在
测试程序中,并没有将数据库连接的语句包括进来,所以这个测试结果只是插入数据所花费
的时间,而oracle的连接,天,太慢了!在我的机器上,连接一次,至少1-2秒钟。
而在LINUX下,mysql的性能相对于在WIN32下,又有了一个很大的飞跃。由28秒骤减到10秒。
所以,如果你不需要存储过程的支持,并且数据库量不是大的那么惊人的话,还是在LINUX
下使用mysql作为你的数据库吧!这个轻量级的数据库可以给你最佳的性能、可管理性和相
当不错的安全性。
php 简单文件图片上传类
php 简单文件图片上传类
这个文件上传类可以上传gif",".jpg",".jar",".jad",".mid",".mp3",".mid",".bmp",".wav",".rm",".wmv文件格式哦,如果你还想支持其它的话可以设计$this->file_type();就OK了,。
php 通用的树型类 可以生成任何树型结构
php 通用的树型类 可以生成任何树型结构
php 通用的树型类 可以生成任何树型结构
class tree
{
/**
* 生成树型结构所需要的2维数组
* @var array
*/
var $arr = array();
php图片上传类
class upload_class{
private $ptname; //上传表单名称;
private $udname; //是否以月份建立子目录(0为否,其他为真);
private $ufname; //是否以php?name=%CA%B1%BC%E4>时间建立文件名(0为否,其他为真);
private $ultype; //上传文件类型;
private $ulsize; //上传文件大小;
private $ulname; //输出文件名称;
private $ulpath; //输出文件路径;
private $wm; //水印附加(0为不加,其他为加);
private $wmtype; //水印类型(0为文字,其他为图片);
private $wmpic; //水印图片;
private $wmpicquality; //图片质量;
private $wmpictrans; //图片透明;
private $wmstr; //水印字符;
private $wmstrsize; //字符大小;
private $wmstrfont; //字符字体;
private $wmstrcolor; //字符颜色;
private $wmpos; //水印位置(1为顶端居左,2为顶端居中,3为顶端居右……);
function __construct($ptname=upfile,$udname=1,$ufname=1,$ultype=array(image/jpg,image/jpeg,image/png,image/pjpeg,image/gif,image/bmp,image/x-png),$wm=1,$wmtype=1,$wmpic=images/wm.gif,$ulsize=2097152,$ulpath=images/temp/,$wmpictrans=20,$wmpicquality=80,$wmstr=DONLINE,$wmstrsize=5,$wmstrfont=./font/cour.ttf,$wmstrcolor=#ff0000,$wmpos=9){
$this->ptname=$_FILES[$ptname];
$this->udname=$udname;
$this->ufname=$ufname;
$this->ultype=$ultype;
$this->ulsize=$ulsize;
$this->ulpath=$ulpath;
$this->wm=$wm;
$this->wmtype=$wmtype;
$this->wmpic=$wmpic;
$this->wmpicquality=$wmpicquality;
$this->wmpictrans=$wmpictrans;
$this->wmstr=$wmstr;
$this->wmstrsize=$wmstrsize;
$this->wmstrfont=$wmstrfont;
$this->wmstrcolor=$wmstrcolor;
$this->wmpos=$wmpos;
}
function uploadfun(){
if($_SERVER[REQUEST_METHOD]==POST){
if(!is_uploaded_file($this->ptname[tmp_name]))$this->errorfun(上传失败!);
if(!in_array($this->ptname[type],$this->ultype))$this->errorfun(不支持的文件类型!);
if($this->ulsize<$this->ptname[size])$this->errorfun(文件太大!);
if($this->udname){date_default_timezone_set(UTC);$this->ulpath=$this->ulpath.month_.date(Ym)./;}
else{$this->ulpath=$this->ulpath;}
$this->createfun($this->ulpath);
if($this->ufname){$t=pathinfo($this->ptname[name]);$this->ulname=$this->ulpath.time()...$t[extension];}
else{$this->ulname=$this->ulpath.$this->ptname[name];}
if(file_exists($this->ulname))$this->errorfun(该文件已存在!);
if(!move_uploaded_file($this->ptname[tmp_name],$this->ulname))$this->errorfun(移动文件错误!);
$this->wmfun();
$this->errorfun(上传成功!);
}
}
function createfun($d){
if(!file_exists($d)){$this->createfun(dirname($d));mkdir($d);}
}
function wmfun(){
if($this->wm){
if(file_exists($this->ulname)){
$groundimg=getimagesize($this->ulname);
$ow=$groundimg[0];
$oh=$groundimg[1];
switch($groundimg[2]){
case 1:$g=imagecreatefromgif($this->ulname);break;
case 2:$g=imagecreatefromjpeg($this->ulname);break;
case 3:$g=imagecreatefrompng($this->ulname);break;
case 4:$g=imagecreatefromwbmp($this->ulname);break;
default:$this->errorfun(不支持的背景图片类型!);
}
}
else{$this->errorfun(背景图片不存在!);}
if(file_exists($this->wmpic)){
$wmimg=getimagesize($this->wmpic);
$ww=$wmimg[0];
$wh=$wmimg[1];
switch($wmimg[2]){
case 1:$w=imagecreatefromgif($this->wmpic);break;
case 2:$w=imagecreatefromjpeg($this->wmpic);break;
case 3:$w=imagecreatefrompng($this->wmpic);break;
case 4:$w=imagecreatefromwbmp($this->wmpic);break;
default:$this->errorfun(不支持的水印图片类型!);
}
}
else{$this->errorfun(水印图片不存在!);}
switch($this->wmtype){
case 0:$tp=imagettfbbox(ceil($this->wmstrsize*2.5),0,$this->wmstrfont,$this->wmstr);$ww=$tp[2]-$tp[6];$wh=$tp[3]-$tp[7];unset($tp);break;
case 1:$ww=$ww;$wh=$wh;break;
default:$ww=$ww;$wh=$wh;break;
}
if($ow<$ww || $oh<$wh)$this->errorfun(背景图片太小!无法生成水印!);
switch($this->wmpos){
case 0:$x=rand(0,($ow-$ww));$y=rand(0,($oh-$wh));break;//随机
case 1:$x=0;$y=0;break;//1为顶端居左
case 2:$x=($ow-$ww)/2;$y=0;break;//2为顶端居中
case 3:$x=$ow-$ww;$y=0;break;//3为顶端居右
case 4:$x=0;$y=($oh-$wh)/2;break;//4为中部居左
case 5:$x=($ow-$ww)/2;$y=($oh-$wh)/2;break;//5为中部居中
case 6:$x=$ow-$ww;$y=($oh-$wh)/2;break;//6为中部居右
case 7:$x=0;$y=$oh-$wh;break;//7为底端居左
case 8:$x=($ow-$ww)/2;$y=$oh-$wh;break;//8为底端居中
case 9:$x=$ow-$ww;$y=$oh-$wh;break;//9为底端居右
default:$x=rand(0,($ow-$ww));$y=rand(0,($oh-$wh));break;//随机
}
imagealphablending($g, true);
switch($this->wmtype){
case 0:
if($this->wmstrcolor){$R=hexdec(substr($this->wmstrcolor,1,2));$G=hexdec(substr($this->wmstrcolor,3,2));$B=hexdec(substr($this->wmstrcolor,5));}
else{$this->errorfun(水印文字颜色不存在!);}
imagestring($g,$this->wmstrfont,$x,$y,$this->wmstr,imagecolorallocate($g,$R,$G,$B));break;
case 1;imagecopymerge($g,$w,$x,$y,0,0,$ww,$wh,$this->wmpictrans);break;
default:imagecopymerge($g,$w,$x,$y,0,0,$ww,$wh,$this->wmpictrans);break;
}
@unlink($this->ulname);
switch($groundimg[2]){
case 1:imagegif($g,$this->ulname);break;
case 2:imagejpeg($g,$this->ulname,$this->wmpicquality);break;
case 3:imagepng($g,$this->ulname);break;
case 4:imagewbmp($g,$this->ulname);break;
default:$this->errorfun(生成图片失败!);
}
if(isset($wmimg))unset($wmimg);
if(isset($w))imagedestroy($w);
unset($groundimg);
imagedestroy($g);
}
}
function errorfun($e=未知错误!){
$msg=<script language="javascript>javascript" type="text/javascript">;
$msg.=alert(".$e.");;
$msg.=history.back();;
$msg.=</script>;
echo $msg;
exit;
}
}
?>
php 文章中的远程图片采集到本地
第二步. 把$img_array 数组循环一下. 做图片保存和文章位置替换
//判断是否是自己网站上的 图片
if(xxx.com != get_domain($img)){// 如果这个图片不是自己服务器上的
//读取图片文件
$Gimg = new GetImage();
$Gimg->source = $img;
$Gimg->save_to = ./data/temp/;
$FILE = $Gimg->download(); //图片移动到本地
//保存到相册 得到图片保存的位置
$img_path = pic_save($FILE,0,);
//文本路径替换
$message = str_replace($img, $img_path, $message);
}
}
....这时候 $message 里面已经图片已经替换为自己服务器本地的地址,并且图片也保存到自己的服务器上.
php 防注入代码
本文章为各位php程序员提供一些常用的基本的sql防注入代码了,我们可以自定一些不安全的sql语句或命令等进行判断然后阻止程序执行。
本文章为各位php程序员提供一些常用的基本的sql防注入代码了,我们可以自定一些不安全的sql语句或命令等进行判断然后阻止程序执行。
php文件上传代码
本文章免费提供一款php文件上传代码哦,这段上传文件的代码我们把他写成的文件上传类呢,喜欢就可以进来看看。
php 获取来路[前一页]页面分析函数
php 获取来路[前一页]页面分析函数
本文章提供一款功能全面的获取上一级页面的函数哦,就是来路函数了。
php 网站同IP查询代码
本款源码是一款php 网站同IP查询代码哦,如果你喜欢就进来看看吧。
<?php
if(function_exists(date_default_timezone_set)){
date_default_timezone_set(Asia/Shanghai); //设定时区
}
define("APP_ROOT",dirname(dirname(__FILE__))); //网站根目录