<?php$url='../images'; //图片地址,只可以用./you/images这样的路径$files=array();if ($handle=opendir("$url")) { while(false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if(substr($file,-3)=='gif' || substr($file,-3)=='jpg') $files[count($files)] = $file; } } }closedir($handle); $random=rand(0,count($files)-1);if(substr($files[$random],-3)=='gif') header("Content-type: image/gif");elseif(substr($files[$random],-3)==...
二、给图片增加水印的php文件,包含实际运行代码,支持图片和文字水印
<?php
/*
* 功能:PHP图片水印 (水印支持图片或文字)
* 参数:
* $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式;
* $waterPos 水印位置,有10种状态,0为随机位置;
* 1为顶端居左,2为顶端居中,3为顶端居右;
* 4为中部居左,5为中部居中,6为中部居右;
* 7为底端居左,8为底端居中,9为底端居右;
* $waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式;
* $waterText 文字水印,即把文字作为为水印,支持ASCII码,不支持中文;
* $textFont 文字大小,值为1、2、3、...
一、PHP给图片增加水印的类
<?php
Class Gimage{
var $src_image_name = ""; //输入图片的文件名(必须包含路径名)
var $jpeg_quality = 90; //jpeg图片质量
var $save_image_file = ''; //输出文件名
var $wm_image_name = ""; //水印图片的文件名(必须包含路径名)
var $wm_image_pos = 1; //水印图片放置的位置
// 0 = middle
// 1 = top left
// 2 = top right
// 3 = bottom right
// 4 = bottom left
// 5 = top middle
// 6 = middle right
// 7 = bottom middle
// 8 = middle left
//other = 3
var $wm_image_transition = 20; //水印图片与原图片的融合度 (1=100)
...
PHP图片验证码原代码,需支持gd2.dll扩展,需修改PHP.ini后重启IIS or ap 调用方法<img src="this.php">
<?PHP session_start(); session_register('SafeCode'); $type = 'gif'; $width= 40; $height= 16; header("Content-type: image/".$type); srand((double)microtime()*1000000); $randval = randStr(4,""); if($type!='gif' && function_exists('imagecreatetruecolor')){ $im = @imagecreatetruecolor($width,$height); }else{ $im = @imagecreate($width,$height); } $r = Array(225,211,255,223); $g = Array(225,236,237,215); $b = Array(225,236,166,125); $key = rand(0,3); $backColor = I...
掌握了PEAR::BenchMark,现在你已经知道如何测试你的代码,知道如何判断你的代码是快是慢,是哪一部份比较慢。那么接下来我要说的就是如何消灭或优化那部份慢的代码。 这一点上我个人最主要的经验只有两点,一是消除错误的或低效的循环;二是优化数据库查询语句。其实还存在一些其它的优化细节,比如“str_replace比ereg_replace快”、“echo比print快”等等。这些我暂时都放在一边,稍后我会提到用缓存来对付过于频繁的IO。 下面我们将三个功能相同,但程序写法不同的函数的效率(消耗的时间)进行对比。 badloops.php <?php require_once('Benchmark/Iterate.php'); define('MAX_RUN',100);&nb...
涉及程序: Apache & PHP 描述: Apache & PHP 漏洞测试代码 详细: 下面是 Apache/1.3.x + php_4.0.6 漏洞的测试代码。该代码利用了 multipart/form-data POST 漏洞,但是只能导致 Apache 拒绝服务,而没在远程机器上执行任何代码或开出 shell。PHP 支持 multipart/form-data POST 请求,称作 POST 文件上传。但是 php_mime_split 函数存在多个漏洞,远程攻击者利用这些漏洞可能在受影响系统上执行任意代码。以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负Example:$ ./apache_php host 80 hi.php$ cat /www/logs/error_log[Sun Mar 3 02:50:36 2002] [notice] child pid 26856...
写通用性程序考虑兼容性是很头痛的事情,关于用PHP生成缩略图的代码很多,不过能完全兼容gd1.6和gd2.x,并能保证缩图清晰性的代码几乎没有,我把我以前的代码改了一下,就能实现了。
function ImageResize($srcFile,$toW,$toH,$toFile="")
{
if($toFile==""){ $toFile = $srcFile; }
$info = "";
$data = GetImageSize($srcFile,$info);
switch ($data[2])
{
case 1:
 ...
mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处,请大家指正。
1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
1024:读文件错误
1025:更改名字时发生错误
1026:写文件错误
1032:记录不存在
1036:数据表是只读的,不能对它进行修改
10...
SET NOCOUNT ON
DECLARE @LOGICALFILENAME SYSNAME,
@MAXMINUTES INT,
@NEWSIZE INT
USE sq_goalercn ---要操作的数据库
SELECT @LOGICALFILENAME = 'sq_goalercn_LOG',---日志文件名
@MAXMINUTES = 10,---LIMIT ON TIME ALLOWED TO WRAP LOG.
@NEWSIZE = 10---你想设定的日志文件大小(M)
--SETUP /IN...
你可以这样做建一个模块在里面输入下列 Public conn As ADODB.Connection Sub main() Set conn = New ADODB.Connection conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;" _ + "User ID=sa;password=sa;Initial Catalog=您的数据库名;Data Source=127.0.0.1" conn.Open from1.Show '登录界面 End Sub 再在登录界面“确定”下写入如下代码: Private Sub Command1_Click() If id.Text = "" Then MsgBox "用户名不能为空!", vbOKOnly + vbInformation, "友情提示" id.SetFocus Exit Sub E...
网上有很多获取硬盘序列号的代码,大部分都只能取得逻辑分区的序列号,而不能取得硬盘的物理序列号;或虽然能取得物理序号,但需要外带一个VC编写的DLL文件......我们知道,逻辑分区的序列号是FORMAT时产生的,重新FORMAT将会改变,这对于要求唯一识别码的程式来说是致命的。 下面的 VB 代码利用 Windows API 可以取得物理硬盘的很多特性,包括硬盘出厂时的唯一编号。这段代码我是从 CSDN 论坛获得,原作者不详。我将其稍做修改和增添,独立出两个常用的函数:GetDiskVolume 、GetHardDiskInfo ... Private Const MAX_IDE_DRIVES As Long = 4 ' Max number of drives assuming primary/secon...
这是一家公司软件部规定的VB组代码撰写暂行约定。对于VB项目的协同开发有一定的帮助和指导。一、变量和对象 程序中的变量遵循匈牙利表示法,即“前缀+变量含义”,变量的含义为一个或多个英文单词,每个单词的第一个字母大写,不要用汉语拼音代替。变量前缀为三个小写字母示意其类型,所需添加的前缀遵循微软在MSDN中的建议。列表如下: 基本数据类型 变量类型前缀示例BooleanblnblnFoundBytebytbytRasterDataCollection objectcolcolWidgetsCurrencycurcurRevenueDate (Time)dtmdtmStartDoubledbldblToleranceErrorerrerrOrderNumIntegerintintQuantityLonglnglngDistanceObjectobjobjCurrentSi...
本文列出了C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase六种不同数据库的程序源码和需要注意的点。1.C#连接Access程序代码:using System.Data;using System.Data.OleDb;..string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";strConnection+=@"DataSource=C:BegASPNETNorthwind.mdb";OleDbConnection objConnection=new OleDbConnection(strConnection);..objConnection.Open();objConnection.Close();解释:连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!strConnection这个变量里存放的是连接数据库所...
NullPointerException大概是最常见的RuntimeException。大量的开发工作花在尝试发现对象是否被赋值上,仅仅是为了检查它是否是null的。要解决这个问题,可以用一个if-null块来保护你的代码。例如: if(obj != null) {str = obj.toString( );} 但是,当被保护的块象下面这样的时候,是有问题的:if(obj.equals(newobj)){....} 加上保护用的if-null块会变成这样:if(obj != null) {if(obj.equals(newobj)) {....}} 当嵌套if块来处理null保护时显得很凌乱,这时可以试一下使用短路运算符。例如布尔“与”运算符,“&&”:if((obj != null) && obj.equals(newobj) ) {...} “短路”意味着运算符...
代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯。代码编写规范使用范围:J2EE项目开发。包命名规范:目的:包的命名规范应当体现出项目资源良好的划分servlet类所在包命名规范:公司名称.开发组名称.项目名称.web.servlet例如:net.linkcn.web.servlet自定义标签类所在包命名规范:公司名称.开发组名称.项目名称.web.tags例如:net.linkcn.web.tags过滤器类所在包命名规范:公司名称.开发组名称.项目名称.web.filter例如:net.linkcn.web.filterAction类所在包命名规范:公司名称.开发组名称.项目名称.web.struts.action例如:net.linkcn.web.struts.actionActionForm类所在包命名规范:公司名称.开...
本示例程序由三个类构成,第一个是TestThreadPool类,它是一个测试程序,用来模拟客户端的请求,当你运行它时,系统首先会显示线程池的初始化信息,然后提示你从键盘上输入字符串,并按下回车键,这时你会发现屏幕上显示信息,告诉你某个线程正在处理你的请求,如果你快速地输入一行行字符串,那么你会发现线程池中不断有线程被唤醒,来处理你的请求,在本例中,我创建了一个拥有10个线程的线程池,如果线程池中没有可用线程了,系统会提示你相应的警告信息,但如果你稍等片刻,那你会发现屏幕上会陆陆续续提示有线程进入了睡眠状态,这时你又可以发送新的请求了。 第二个类是ThreadPoolManager类,顾名思义,它是一个用于管理线程池的...