PHP的生成条形图
由于overwhelmning为广东的需求有关的例子,这个最重要的是产生从一个数组条形图要
求。当然,这些可以很容易地从任何来源数目,以及投入到一个数组
PHP的生成条形图
由于overwhelmning为广东的需求有关的例子,这个最重要的是产生从一个数组条形图要
求。当然,这些可以很容易地从任何来源数目,以及投入到一个数组
php 多文件上传
用PHP上传多个文件,需要对许多可能的错误检查。此脚本允许上载有多少领域设置将在HTML表格中显示的最大允许上传文件大小。在php.ini文件中还包含一个名为ini选项中upload_max_filesize拥有2米的默认值,或2兆字节。此值也考虑到检查时的错误。
php 生成条形码
<?php
function UPCAbarcode($code) {
$lw = 2; $hi = 100;
$Lencode = array(0001101,0011001,0010011,0111101,0100011,
0110001,0101111,0111011,0110111,0001011);
$Rencode = array(1110010,1100110,1101100,1000010,1011100,
1001110,1010000,1000100,1001000,1110100);
$ends = 101; $center = 01010;
/* UPC-A Must be 11 digits, we compute the checksum. */
if ( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); }
/* Compute the EAN-13 Checksum digit */
$ncode = 0.$code;
$even = 0; $odd = 0;
for ($x=0;$x<12;$x++) {
if ($x % 2) { $odd += $ncode[$x]; } else { $even += $ncode[$x]; }
}
$code.=(10 - (($odd * 3 + $even) % 10)) % 10;
/* Create the bar encoding using a binary string */
$bars=$ends;
$bars.=$Lencode[$code[0]];
for($x=1;$x<6;$x++) {
$bars.=$Lencode[$code[$x]];
}
$bars.=$center;
for($x=6;$x<12;$x++) {
$bars.=$Rencode[$code[$x]];
}
$bars.=$ends;
/* Generate the Barcode Image */
$img = ImageCreate($lw*95+30,$hi+30);
$fg = ImageColorAllocate($img, 0, 0, 0);
$bg = ImageColorAllocate($img, 255, 255, 255);
ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg);
$shift=10;
for ($x=0;$x<strlen($bars);$x++) {
if (($x<10) || ($x>=45 && $x<50) || ($x >=85)) { $sh=10; } else { $sh=0; }
if ($bars[$x] == 1) { $color = $fg; } else { $color = $bg; }
ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color);
}
/* Add the Human Readable Label */
ImageString($img,4,5,$hi-5,$code[0],$fg);
for ($x=0;$x<5;$x++) {
ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg);
ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg);
}
ImageString($img,4,$lw*95+17,$hi-5,$code[11],$fg);
/* Output the Header and Content. */
header("Content-Type: image/png");
ImagePNG($img);
}
UPCAbarcode(47101496236);
?>
php 图片转换成ascii 输出图像
php 图片转换成ascii 输出图像
php 为图片加水印函数和缩略图的函数代码
/**
* 为图片加水印
* @param string $desImg 目标图片 参数格式为 ./images/pic.jpg
* @param string $waterImg 水印图片 参数格式同上,水印图片为 png格式,背景透明
* @param int positon 水印位置 1:顶部居左 2:顶部居右 3:居中 4 :底部居左 5:底部居右
* @param bool $saveas 是否另存为,默认值false,表示覆盖原图
* @param int $alpha 水印图片的不透明度
* @return string $savepath 新图片的路径
* **/
function watermark($desImg,$waterImg,$positon=1,$saveas=false,$alpha=30)
{
//获取目图片的基本信息
$temp=pathinfo($desImg);
$name=$temp["basename"];//文件名
$path=$temp["dirname"];//文件所在的文件夹
$extension=$temp["extension"];//文件扩展名
if($saveas)
{
//需要另存为
$name=rtrim($name,".$extension")."_2.";//重新命名
$savepath=$path."/".$name.$extension;
}
else
{
//不需要另存为则覆盖原图
$savepath=$path."/".$name;
}
$info=getImageInfo($desImg);//获取目标图片的信息
$info2=getImageInfo($waterImg);//获取水印图片的信息
添加附件
添加一个附件
添加一或多个附件很简单,添加附件,是通过调用addAttachment方法,这种方法可以多次调用添加多个attachemnts。
base64]) style=background-color: #fff closure_hashcode_6zmbqs=21>布尔addAttachment($文件的字符串,字符串[$ c_type =应用程序/八位字节流],串[$名称=],布尔[$ isfile =真],字符串[$编码=一个base64])
变量:
$文件:要么变量包含一个文件的内容,或文件本身的路径
$ c_type:内容类型,这意味着,例如文件的MIME类型。text / plain的,文字/ CSV格式,应用/ PDF格式
$名称:该文件的名称,您希望它出现在电子邮件,这应该是唯一的
$ isFile:是否变量$文件是对文件或文件的内容的路径
$编码:这通常应为默认离开,除非你知道你在做什么
附件可以是在一个变量,或在服务器上的文件中存储的文件系统。在这第一个例子中,我将建立一个小型文本文件名为你好text.txt改为你好世界!也。
已测(表结构:id 表ID(唯一)title 各类标题flid 类别的ID (大类为1 中类为2 小类为3)pid 上类的ID(大类就跟大类,提交中类的时候这地方写大类的ID,提交小类的时候写中类的ID) )
实现数据的导入导出,数据表结构的导入导出
********************************************************/
//
//包含Mysql数据库操作文件
//
require_once("MysqlDB.php");
/*******************************************************
**类 名:MysqlDB
**类 编 号:lcq-DB-003
**作 用:数据库链接的建立,数据操作,获取字段个数,记录条数等
**作 者:林超旗
**编写日期:(2007-04-07)
********************************************************/
class DBManagement implements IDBManagement
{
//
//当前数据库中所有的数据表的名字
//
private $TablesName;
//
//默认路径
//
private $DefaultPath;
//
//当前要操作的数据库名
//
private $DatabaseName;
//
//操作数据库的对象
//
private $db;
/*******************************************************
**方 法 名:__construct
**功能描述:创建一个DBManagement的对象
**输入参数:$_DatabaseName-string<要操作的数据库名,如果为空则从配置文件中读取>
** $_DefaultPath-string<存储数据的默认路径,如果为空则从配置文件中读取>
**输出参数:无
**返 回 值:无
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
function __construct($_DatabaseName="",$_DefaultPath="")//
{
require("config.inc.php");
if(!$_DatabaseName) {$this->DatabaseName=$dbName;}
else {$this->DatabaseName=$_DatabaseName;}
if(!$_DefaultPath) {$this->DefaultPath=$defaultPath;}
else {$this->DefaultPath=$_DefaultPath;}
$path=realpath($this->DefaultPath);
$this->DefaultPath=str_replace("","/",$path);
//$this->db=new DBFactory();
$this->db=new MysqlDB();
}
/*******************************************************
**方 法 名:GetTablesName
**功能描述:获取$this->Database的所有数据表的名字
**输入参数:无
**输出参数:无
**返 回 值:-array <$this->TablesName:$this->Database的所有数据表的名字>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
protected function GetTablesName()
{
$result=$this->db->Query("show table status");
while($Row=$this->db->NextRecord($result))
{
$this->TablesName[]=$Row["Name"];
}
return $this->TablesName;
}
/*******************************************************
**方 法 名:GetDataFileName
**功能描述:获取与$this->Database的所有数据表对应的数据文件的物理文件名
**输入参数:无
**输出参数:无
**返 回 值:-array <$DataFilesName:$与$this->Database的所有数据表对应的数据文件的物理文件名>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
protected function GetDataFileName()
{
$this->GetTablesName();
$count=count($this->GetTablesName());
for ($i=0;$i<$count;$i++)
{
$DataFilesName[]=$this->DefaultPath."/".$this->TablesName[$i].".txt";
//echo $DataFilesName[$i];
}
return $DataFilesName;
}
/*******************************************************
**方 法 名:SaveTableStructure
**功能描述:保存数据表的结构到install.sql文件中,目标路径为$DefaultPath
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示保存成功;
** 为false表示保存失败>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
protected function SaveTableStructure($text)
{
$fileName=$this->DefaultPath."/Install.sql";
//if(file_exists($fileName))
//{
// unlink($fileName);
//}
//echo $text;
$fp=fopen($fileName,"w+");
fwrite($fp,$text);
}
/*******************************************************
**方 法 名:RestoreTableStructure
**功能描述:备份$this->Database中所有数据表的结构
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的结构备份成功;
** 为false表示全部或部分数据表的结构备份失败>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
protected function BackupTableStructure()
{
$i=0;
$sqlText="";
$this->GetTablesName();
$count=count($this->TablesName);
//
//取出所有数据表的结构
//
while($i<$count)
{
$tableName=$this->TablesName[$i];
$result=$this->db->Query("show create table $tableName");
$this->db->NextRecord($result);
//
//取出成生表的SQL语句
//
$sqlText.="DROP TABLE IF EXISTS `".$tableName."`; ";//`
$sqlText.=$this->db->GetField(1)."; ";
$i++;
}
$sqlText=str_replace("r","",$sqlText);
$sqlText=str_replace("n","",$sqlText);
//$sqlText=str_replace("","`",$sqlText);
$this->SaveTableStructure($sqlText);
}
/*******************************************************
**方 法 名:RestoreTableStructure
**功能描述:还原$this->Database中所有数据表的结构
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的结构还原成功;
** 为false表示全部或部分数据表的结构还原失败>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
protected function RestoreTableStructure()
{
$fileName=$this->DefaultPath."/Install.sql";
if(!file_exists($fileName)){echo "找不到表结构文件,请确认你以前做过备份!";exit;}
$fp=fopen($fileName,"r");
$sqlText=fread($fp,filesize($fileName));
//$sqlText=str_replace("r","",$sqlText);
//$sqlText=str_replace("n","",$sqlText);
$sqlArray=explode("; ",$sqlText);
try
{
$count=count($sqlArray);
//
//数组的最后一个为";",是一个无用的语句,
//
for($i=1;$i<$count;$i++)
{
$sql=$sqlArray[$i-1].";";
$result=$this->db->ExecuteSQL($sql);
if(!mysql_errno())
{
if($i%2==0){echo "数据表".($i/2)."的结构恢复成功!n";}
}
else
{
if($i%2==0)
{
echo "数据表".($i/2)."的结构恢复失败!n";
exit();
}
}
}
}
catch(Exception $e)
{
$this->db->ShowError($e->getMessage());
$this->db->Close();
return false;
}
}
/*******************************************************
**方 法 名:ImportData
**功能描述:导入$this->Database中所有数据表的数据从与其同名的.txt文件中,源路径为$DefaultPath
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的数据导入成功;
** 为false表示全部或部分数据表的数据导入失败>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
function ImportData()
{
$DataFilesName=$this->GetDataFileName();
$count=count($this->TablesName);
//$this->db->ExecuteSQL("set character set gbk");
for ($i=0;$i<$count;$i++)
{
//$DataFilesName[$i]=str_replace("","/",$DataFilesName[$i])
//echo $DataFilesName[$i];
$sqlLoadData="load data infile ".$DataFilesName[$i]." into table ".$this->TablesName[$i];
$sqlCleanData="delete from ".$this->TablesName[$i];
//echo $sql."n";
try
{
//$this->db->ExecuteSQL("set character set utf8");
//$this->db->ExecuteSQL("SET NAMES utf8");
$this->db->ExecuteSQL($sqlCleanData);
$this->db->ExecuteSQL($sqlLoadData);
return true;
//echo "数据导入成功!";
}
catch (Exception $e)
{
$this->db->ShowError($e->getMessage());
return false;
exit();
}
}
}
/*******************************************************
**方 法 名:ExportData
**功能描述:导出$this->Database中所有数据表的数据到与其同名的.txt文件中,目标路径为$DefaultPath
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的数据导出成功;
** 为false表示全部或部分数据表的数据导出失败>
**作 者:林超旗
**日 期:2007-04-09
**修 改 人:
**日 期:
********************************************************/
function ExportData()
{
$DataFilesName=$this->GetDataFileName();
$count=count($this->TablesName);
try
{
for ($i=0;$i<$count;$i++)
{
$sql="select * from ".$this->TablesName[$i]." into outfile ".$DataFilesName[$i]."";
if(file_exists($DataFilesName[$i]))
{
unlink($DataFilesName[$i]);
}
//$this->db->ExecuteSQL("SET NAMES utf8");
$this->db->ExecuteSQL($sql);
}
return true;
//echo "数据导出成功!";
}
catch (Exception $e)
{
$this->db->ShowError($e->getMessage());
return false;
exit();
}
}
/*******************************************************
**方 法 名:BackupDatabase
**功能描述:备份$this->Database中所有数据表的结构和数据
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的数据库备份成功;
** 为false表示全部或部分数据表的数据库备份失败>
**作 者:林超旗
**日 期:2007-04-10
**修 改 人:
**日 期:
********************************************************/
function BackupDatabase()
{
try
{
$this->BackupTableStructure();
$this->ExportData();
return true;
}
catch (Exception $e)
{
$this->db->ShowError($e->getMessage());
return false;
exit();
}
}
/*******************************************************
**方 法 名:RestoreDatabase
**功能描述:还原$this->Database中所有数据表的结构和数据
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的数据库还原成功;
** 为false表示全部或部分数据表的数据库还原失败>
**作 者:林超旗
**日 期:2007-04-10
**修 改 人:
**日 期:
********************************************************/
function RestoreDatabase()
{
try
{
$this->RestoreTableStructure();
$this->ImportData();
return true;
}
catch (Exception $e)
{
$this->db->ShowError($e->getMessage());
return false;
exit();
}
}
}
?>[/php]
PHP生成扭曲有角度支持中文的图片验证码函数
<?php
function make_rand($length="32"){//验证码文字生成函数
$str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$result="";
for($i=0;$i<$length;$i++){
$num[$i]=rand(0,61);
$result.=$str[$num[$i]];
}
return $result;
}
$checkcode = make_rand(5);
$im_x=160;
$im_y=32;
function make_crand($length="5") {
$string = ;
for($i=0;$i<$length;$i++) {
$string .= chr(rand(0xB0,0xF7)).chr(rand(0xA1,0xFE));
}
return $string;
}
function getAuthImage($text , $im_x = 230 , $im_y = 32) {
$im = imagecreatetruecolor($im_x,$im_y);
$text_c = ImageColorAllocate($im, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
$tmpC0=mt_rand(100,255);
$tmpC1=mt_rand(100,255);
$tmpC2=mt_rand(100,255);
$buttum_c = ImageColorAllocate($im,$tmpC0,$tmpC1,$tmpC2);
imagefill($im, 16, 13, $buttum_c);
//echo $text;
$font = c:WINDOWSFontssimsun.ttc;
//echo strlen($text);
error_reporting(0);
session_start();
require("config.php");
if(!is_dir("temp"))
{
mkdir("temp",0777);
}
$c=tempnam("temp","c");
$url=DZ."logging.php?action=login";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch,CURLOPT_COOKIEJAR,$c);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$html=curl_exec($ch);
preg_match("/(?<=charset=).*?(?=")/",$html,$charset);
if($charset[0]!=="utf-8")
{
$html=iconv($charset[0],"utf-8",$html);
}
curl_close($ch);
preg_match("/(?<=formhash" value=").*?(?=")/",$html,$outs);
$_SESSION["hash"]=$outs[0];
php 上传文件并生成缩略图代码
if( isset($_FILES[upImg]) )
{
if( $userGroup[$loginArr[group]][upload] == 0 )
{
echo {"error":"您所在的用户组无权上传图片!"};
}
else
{
$savePath = "attachment/img/".date(Y/m/d/H);
ExcelFileParser处理excel获得数据 可作批量导入到数据库
提交表单