8
16
2008
1

[PHP]图片缩放转换方法

 

function coverImg($source,$target,$targetWidth,$targetHeight){
        $system=explode(".",$source);
       
        if (preg_match("/jpg|jpeg/",$system[count($system)-1])){
                $src_img=imagecreatefromjpeg($source);
        }
        if (preg_match("/png/",$system[count($system)-1])){
                $src_img=imagecreatefrompng($source);
        }
        $old_x=imageSX($src_img);
        $old_y=imageSY($src_img);
        if ($old_x > $old_y) {  //图片宽度大于高度
                $thumb_h = $old_y*($targetWidth/$old_x);
                $thumb_w = $targetWidth;
                //$thumb_h=$targetHeight;
                //$thumb_w=$old_x*($targetHeight/$old_y);
        }
        if ($old_x < $old_y) { //图片高度大于宽度
                $thumb_w = $old_x*($targetHeight/$old_y);
                $thumb_h = $targetHeight;
               
                //$thumb_h=$old_y*($targetWidth/$old_x);
                //$thumb_w=$targetWidth;
        }
        if ($old_x == $old_y) {
                $thumb_w=$targetWidth;
                $thumb_h=$targetHeight;
        }
       
        $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
       
        imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
       
        imagejpeg($dst_img,$target);
        imagedestroy($dst_img);
        imagedestroy($src_img);
        return true;
}

写的比较简单,可以将上传的图片转换为jpg格式,并且可以控制最大宽度和最大高度

Category: PHP | Tags:
8
5
2008
0

[HTML][PHP][转]多文件上传

 

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>上传一组文件</title>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data">
<p>同时上传多个文件:<br />
<input type="file" name="userfile[]" /><br />
<input type="file" name="userfile[]" /><br />
<input type="file" name="userfile[]" /><br />
<input type="submit" value="上传" />
</p>
</form>
</body>
</html>
 

 

<?php
$root_dir=str_replace("\\", '/', dirname(__FILE__));
//$root_dz=str_replace("\\", '/', substr(dirname(__FILE__), 0, -8));
//如本文件不在站点根目录可用上行替换第一行,根据情况修改后面的数字8即可.
//例如本文件在“/home/web/include”文件夹中,而站点根目录是“/home/web”,数字8表示“/include”有8个字符.
$uploaddir = $root_dir."/";//设置上传目录
$f_type=strtolower("jpg,jpeg,gif,png,swf,bmp,txt,rar,zip,doc");//设置可上传的文件类型
$file_size_max=100*1024;//限制单个文件上传最大容量
$overwrite = 1;//是否允许覆盖相同文件,1:允许,0:不允许
$f_input="userfile";//设置上传域名称

if($_FILES[$f_input]){
    foreach($_FILES[$f_input]["error"] as $key => $error){
        $up_error="no";
        if ($error == UPLOAD_ERR_OK){
            $f_name=$_FILES[$f_input]['name'][$key];//获取上传源文件名
            $uploadfile=$uploaddir.strtolower(basename($f_name));
             
            $tmp_type=substr(strrchr($f_name,"."),1);//获取文件扩展名
            if(!strstr($f_type,$tmp_type)){
                echo "对不起,不能上传".$tmp_type."格式文件, ".$f_name." 文件上传失败!<br />";
                $up_error="yes";
            }
             
            if ($_FILES[$f_input]['size'][$key]>$file_size_max) {
                echo "对不起,你上传的文件 ".$f_name." 容量为".round($_FILES[$f_input]['size'][$key]/1024)."Kb,大于规定的".($file_size_max/1024)."Kb,上传失败!<br />";
                $up_error="yes";
            }
             
            if (file_exists($uploadfile)&&!$overwrite){
                echo "对不起,文件 ".$f_name." 已经存在,上传失败!<br />";
                $up_error="yes";
            }
             
            //取消下两行的注释可用日期和时间自定义文件名
            //if(function_exists('date_default_timezone_set')){date_default_timezone_set('PRC');}//设置时区
            //$uploadfile=$uploaddir.date("YmdHis").$key.".".$tmp_type;
            if(($up_error!="yes") and (move_uploaded_file($_FILES[$f_input]['tmp_name'][$key], $uploadfile))){
                echo "文件 ".$f_name." 上传成功!<br />";
            }
        }
    }
}
?>
Category: PHP | Tags: html php 文件上传
8
5
2008
0

[JavaScript]IE不支持getElementsByName的解决方法

今天做一个页面,一直在firefox上面测试,等到终于完工了,想起到IE上跑一遍试试

一跑问题就出来了

找到原因问题出在getElementsByName这个方法上

IE无法使用getElementsByName只能用getElementsByTagName

于是只好加上了一个方法

function getElementsByName(tag,eltname){
    var elts=document.getElementsByTagName(tag);
    var count=0;
    var elements=[];
    for(var i=0;i<elts.length;i++){
        if(elts[i].getAttribute("name")==eltname){
            elements[count++]=elts[i];
        }
    }
    return elements;
}

还好改动不是特别大  加上这个方法就解决问题了
(改掉原先使用document.getElementsByName的地方为getElementsByName)

还是有点怪怪的

Category: JavaScript | Tags: javascript
8
1
2008
0

[转][PHP]一个比is_numeric更适合id判断的方法

is_numeric能判定一个变量是否为数字或数字字符串,但是它的判定范围太宽了。整数、小数、指数表示以及16进制数值都会通过判断。
平时判定id的时候,用它就有点不合适。今天发现一个新的判定函数:ctype_digit,它可以只判定整数,这样就比is_numeric好一些。

其他还有ctype_xdigit判定16进制整数,ctype_alpha判定字母等等函数。
参考PHP的ctype函数库

转至:桄欣  发表于2008年07月 23日 Wednesday 19:01 在 编辑部

Category: PHP | Tags: php
8
1
2008
2

[Ajax]Ajax readyState的几种状态

0: (Uninitialized) the send( ) method has not yet been invoked.
1: (Loading) the send( ) method has been invoked, request in progress.
2: (Loaded) the send( ) method has completed, entire response received.
3: (Interactive) the response is being parsed.
4: (Completed) the response has been parsed, is ready for harvesting.

0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

 

readyState Status Code

Status of the XMLHttpRequest Object

(0) UNINITIALIZED
未初始化

The object has been created but not initialized. (The open method has not been called.)
(XMLHttpRequest)对象已经创建,但尚未初始化(还没有调用open方法)。

(1) LOADING
载入

The object has been created, but the send method has not been called.
(XMLHttpRequest)对象已经创建,但尚未调用send方法。

(2) LOADED
载入完成

The send method has been called, but the status and headers are not yet available.
已经调用send方法,(HTTP响应)状态及头部还不可用。

(3) INTERACTIVE
交互

Some data has been received. Calling the responseBody and responseText properties at this state to obtain partial results will return an error, because status and response headers are not fully available.
已经接收部分数据。但若在此时调用responseBody和responseText属性获取部分结果将会产生错误,因为状态和响应头部还不完全可用。

(4) COMPLETED
完成

All the data has been received, and the complete data is available in the responseBody and responseText properties.
已经接收到了全部数据,并且在responseBody和responseText属性中可以提取到完整的数据。

 

比如在点完保存以后显示正在保存的状态时应该判断readyState == 2的时候,执行显示的状态

Category: JavaScript | Tags: php ajax
8
1
2008
1

[PHP]Ajax使用POST传值要注意的一个小问题

昨天在一个保存按钮的地方用到了Ajax

使用POST传值,在提交的时候执行页面怎么也接受不到传的值,用get却没有问题

最后发现问题出在setRequestHeader('Content-Type','utf-8');

必须设置成setRequestHeader('Content-Type','application/x-www-form-urlencoded');

这样才能接受到post的值

Category: PHP | Tags: ajax php
7
24
2008
2

[JavaScript]一个全局变量不能用的问题

今天写了一段JavaScript的代码让我很奇怪

<html>
<head>
<script language="javascript">
var userName = document.getElementById('username');
function foo(){
    alert(userName.value);
    return false;
}
</script>
</head>
<body>
<form action="a.php" method="POST" onsubmit="return foo();">
<input type="text" name='username' id='username' />
<input type="submit" value="提交">
</form>
</body>
</html>

点击提交时应该弹出userName的值,但这段代码弹的值却是null

查了半天谷歌终于找到了原因

"放在对应的id后面就可以了。虽然你的userName 是全局变量,但是如果你放在获取dom的前面的话,获得到的值就是null。"

恍然大悟,于是把代码修改了一下 将script代码放到了</body>下面,马上可以用了,ie,FireFox都没问题

<html>
<head>
</head>
<body>
<form action="a.php" method="POST" onsubmit="return foo();">
<input type="text" name='username' id='username' />
<input type="submit" value="提交">
</form>
</body>
<script language="javascript">
var userName = document.getElementById('username');
function foo(){
    alert(userName.value);
    return false;
}
</script>
</html>

那个人还有一个建议"但做法还是建议在执行操作时临时获得对象,如果放在body后面的话对资源是浪费的。"

这句话我还需要理解理解,呵呵,毕竟还是JavaScript的新手嘛

Category: JavaScript | Tags: javascript 全局变量
7
24
2008
0

[笑话]十二个星座小朋友性格分析

白羊座
妈妈经常叮嘱羊羊:“穿裙子时不可以荡秋千;不然,会被小男生看到里面的小内裤哦!”
有一天,羊羊高兴地对妈妈说:“今天我和小明比赛荡秋千,我赢了!”
妈妈生气地说:“不是告诉过你吗?穿裙子时不要荡秋千!”
羊羊骄傲地说:“可是我好聪明哦!我把里面的小内裤脱掉了,这样他就看不到我的小内裤了!”
(勇敢直率、敢做敢为的白羊)

金牛座
卖瓜小贩:“快来吃西瓜,不甜不要钱!”
饥渴的牛牛:“哇!太好了,老板,来个不甜的!”
(持家、想出轨又顾全自己的金牛)

双子座
妈妈叫双双起床:“快点起来!公鸡都叫好几遍了!”
双双说:“公鸡叫和我有什么关系?我又不是母鸡!”
(自我意识强烈、自行思维的双子)

巨蟹座
公车上,蟹蟹说:“今晚我要和妈妈睡!”
妈妈问道:“你将来娶了媳妇也和妈妈睡阿?”
蟹蟹不假思索:“嗯!”
妈妈又问:“那你媳妇怎么办?”
蟹蟹想了半天,说:“好办,让她跟爸爸睡!”
妈妈:“!@#$%^&*(……—”
爸爸热泪盈眶:“这孩子从小就懂事。”
(恋母情结、依恋的巨蟹)

狮子座
狮狮去参加奶奶的寿宴。到了吃寿包的时候,狮狮问:“我们为什么要吃这种像屁股的寿包?”
众人听了脸色大变。
接著狮狮拨开寿包,看看里面的豆沙,说:“奶奶,快看!里面还有大便!”
众人晕的晕,吐的吐。
(以自我感受、不怕旁人眼光的骄傲的狮子)

处女座
处处对肚脐很好奇,就问爸爸。
爸爸把脐带连著胎儿与母体的道理简单地讲了一下,说:“婴儿离开母体之后,医生把脐带剪断,并打了一个结,後来就成了肚脐。”
处处:“那医生为什么不打个蝴蝶结?”
(好奇心强又追求完美的处女)

天秤座
父亲对天天说:“今天不要上学了,昨晚...你妈给你生了两个弟弟。你给老师说一下就行了。”
天天却回答:“爸爸,我只说生了一个;另一个,我想留著下星期不想上时再说!”
(聪明、权衡利弊的天平)

天蝎座
蝎蝎刚睡著,就叫蚊子叮了一口。
他起来赶蚊子,却怎么也赶不出去。没法,便指著蚊子说:“好吧,你不出去我出去!”边说边出了房间,把门使劲关严得意地说:“哼!我今晚不进屋,非把你饿死不可!”
(搞不懂、不按常理出牌的天蝎)

射手座
射射:“爸爸,为什么你有那么多白头发?”
爸爸:“因为你不乖,所以爸爸有好多白头发阿。”
射射:……(疑惑中)
射射:“那为什么爷爷全部都是白头发?”
爸爸:!@#$%^&*(……
(喜欢思考的射手)

摩羯座
一天,羯羯跟妈妈上街;走在路上,突然下起雨来。
妈妈拉过羯羯的小手,说:“下雨了,快往前跑阿!”
羯羯慢条斯理地问:“那前面就不下雨喽!?”
(明白现实懒得改变的摩羯)

水瓶座
瓶瓶问妈妈:“问什么称蒋先生为『先人』?”
妈妈说:“因为‘先人’是对死去的人的称呼。”
瓶瓶说:“那去世的奶奶是不是要叫『鲜奶』?”
(天生的另类、脑筋思考永远和常人不一样的水瓶)

双鱼座
爸爸给鱼鱼讲小时候经常挨饿的事。
听完後,鱼鱼两眼含泪,十分同情地问:“哦,爸爸,你是因为没饭吃才来我们家的吗?”
(富含丰富同情心、不分情况对象的双鱼)

Category: 未分类 | Tags: 笑话
7
23
2008
0

在线文档w3schools

网址www.w3schools.com
中文地址http://www.w3school.com.cn/

这个网址优点多多 我觉得最大的优点就是他会把某个属性或者方法在各个浏览器里面的兼容性标记出来

这对于我们开发JavaScript代码来说真是太好太好了 不会再为兼容性问题改来改去了

Category: 收藏 | Tags: 文档
7
23
2008
0

[PHP]格式化html代码方法htmlentities和htmlspecialchars

用户编辑上传的文字往往会包含<>""&这样的代码,如果不在后台加以处理,往往会导致不少安全问题

php自带了htmlentities和htmlspecialchars这两个方法

htmlentities 可以把用户输入的所有文字全部格式化

string htmlentities ( string string [, int quote_style [, string charset]] )


第一个参数是要格式化的字符串

第二个参数有三种情况

ENT_COMPAT Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES Will convert both double and single quotes.
ENT_NOQUOTES Will leave both double and single quotes unconverted.

     第一种会转换双引号不转换单引号
     第二种会同时转换单引号和双引号
     第三种会不转换单引号和双引号

第三个参数是设置编码格式

字符集 别名 描述
ISO-8859-1 ISO8859-1 西欧,Latin-1
ISO-8859-15 ISO8859-15 西欧,Latin-9。增加了 Latin-1(ISO-8859-1)中缺少的欧元符号、法国及芬兰字母。
UTF-8   ASCII 兼容多字节 8-bit Unicode。
cp866 ibm866, 866 DOS-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1251 Windows-1251, win-1251, 1251 Windows-特有的 Cyrillic 字母字符集。PHP 4.3.2 开始支持该字符集。
cp1252 Windows-1252, 1252 Windows 对于西欧特有的字符集。
KOI8-R koi8-ru, koi8r 俄文。PHP 4.3.2 开始支持该字符集。
BIG5 950 繁体中文,主要用于中国台湾。
GB2312 936 简体中文,国际标准字符集。
BIG5-HKSCS   繁体中文,Big5 的延伸,主要用于香港。
Shift_JIS SJIS, 932 日文。
EUC-JP EUCJP 日文。

 

下面是htmlspecialchars

string htmlspecialchars ( string string [, int quote_style [, string charset]] )
 

它的三个参数和htmlentities是一样的

它和htmlentities的区别就在于:

  • '&' (ampersand) becomes '&amp;'

  • '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.

  • ''' (single quote) becomes '&#039;' only when ENT_QUOTES is set.

  • '<' (less than) becomes '&lt;'

  • '>' (greater than) becomes '&gt;'

可以了解到htmlspecialchars只转化上面这几个html代码,而htmlentities却会转化所有的html代码,连同里面的它无法识别的中文字符也会转化出来。

Category: PHP | Tags: php 格式化html

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com