Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61012
  • 博文数量: 26
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-15 13:58
文章分类

全部博文(26)

文章存档

2011年(1)

2009年(25)

我的朋友
最近访客

分类:

2009-04-15 15:11:54

06 PHP中的函数

function f_name($arg)
{
expr;
return $retval;
}
函数分为:有参数函数和无参数函数。
参数有默认值的函数,参数可选。

函数的返回值
函数可以通过return 来返回值,但不能有多个返回值。
为了返回多个值,可以将数组作为一个函数的返回值。

PHP内部函数的使用

PHP加载外部函数

自定义函数

函数的动态调用

函数的递归

斐波纳契数列

<?php
function Fibanacci($num)
//定义Fibanacci函数
{
if($num==1 || $num==2)
//如果为第一项和第二项
   return 1;
//返回值为1
else
//除1、2外的其他项
{
   return Fibanacci($num-1)+Fibanacci($num-2);
//递归调用前两项之和
}
}
echo "斐波纳契数列的第1项为:";
echo Fibanacci(1);
echo "

";
echo "斐波纳契数列的第7项为:";
echo Fibanacci(7);
echo "

";
?>

 

07 PHP数据处理

判断数据类型
is_array(mixed var)
is_bool(mixed var)
is_float(mixed var)
is_int(mixed var)
is_null(mixed var)
is_numeric(mixed var) 判断是否为数字或数字字符串
is_object(mixed var)
is_scalar(mixed var) 判断是否为标量(integer float string boolean)
is_string(mixed var)
isset(mixed var) 判断变量是否设置

数学计算函数
abs(mixed var) 绝对值
ceil(float value) 进一法取整数
exp(float arg) 计算指数函数,计算e的指数
floor(float,value) 舍去法取整数
log10() 计算对数函数,返回以10为底的对数
sqrt(float arg) 计算平方根函数,返回参数arg的平方根

数学三角函数
sin(float arg) 正弦
cos(float arg) 余弦
tan(float arg) 正切
asin(float arg) 反正弦
acos(float arg) 反余弦
atan(float arg) 反正切

最值函数
max(number arg1, number arg2),求最大值函数,返回参数中数值最大的值。
如果仅有一个参数且为数组,max()返回该数组中最大的值。
如果第一个参数是整数、字符串或符点数,则至少需要两个参数。可以比较无限多个。
对于多个数组,从左向右比较:array(2,4,8) < array(2,5,7)
同时给出数组和非数组,总是将数组视为最大返回。

min(number arg1, number arg2),求最小值函数,返回参数中数值最小的值。
如果仅有一个参数且为数组,max()返回该数组中最小的值。
如果第一个参数是整数、字符串或符点数,则至少需要两个参数。可以比较无限多个。
同时给出数组和非数组,则不可能返回数组。

产生随机数
rand([int min, int max]),
产生一个min到max之间的随机数,省略参数则返回0到RAND_MAX之间的伪随机整数。

进制转换
bindec(string binary_string) 二进制转为十进制
decbin(int number) 十进制转为二进制
dechex(int number) 十进制转为十六进制
decoct(int number) 十进制转为八进制
hexdec(string hex_string) 十六进制转为十进制
ctdec(string octal_string) 八进制转为十进制
base_convert(string number, int frombase, int tobase) 任意进制之间的转换
frombase和tobase在[2,36]之间。 高于十进制的用a~z表示,a为10,b为11,z为35.
例:base_convert($bin,2,16) 二进制转为十六进制。

其它数学函数
hypot(float x, float y) 计算直角三角形斜边的长度,返回值为:sqrt(x*x+y*y)。
pi() 无参数,返回圆周率的近似值:3.1415926535898。

字符串函数
1、取得字符串长度:strlen(string) 参数为西文,一个中文字符当作两个西文字符。

2、输出字符串:echo、print(string)、
printf(string format, mixed[args])、sprintf(string format, mixed[args])。

3、截取字符串:substr(string string, int start, [int length])
返回从start开始的length个字符,若length为空,则到字符串结束。如果start为负数,则从末尾开始截取。如果length为负则表示截取到倒数第length个字符。

4、按特定字符切开字符串
explode(string separator, string string [,int limit]),将字符串string按指定的separator切割,返回以切割后字符串为元素的数组。如果指定了limit则数组最多包含limit个元素,最后那个元素为剩余部分。
split(string pattern, string [, int limit]),用正则表达式分割字符串。其它同explode,如出错,则返回False。
strtok(string str, string token),返回的是字符串。

5、去除字符串中的特殊符号:strip_tags(string str),去掉字符串参数中的HTML及PHP标记,再返回。

6、转换字符串中的特殊符号为HTML标记:htmlspecialchars(string string)。
&,转为&;”,转为";<,转为<;>,转为>。

7、加入去掉斜线:
addslashes(string str),加入斜线;stripslashes(string str)去掉斜线。
若php.ini的magic_quotes_gpc=on,则可以不对输入输出数据库的字符串作处理。
若为off,则必须使用addslashes()对输入数据处理,不需要进行输出处理。

8、两个字符串的比较:int strcmp(string str1, string str2)。str1大于str2则返回正数,反之则返回负数,如果完全一致则返回0。

9、改变字符串的大小写:
string strtolower(string str),所有大写转换为小写。
string strtoupper(string str),所有小写转换为大写。

10、其它字符串函数
string chop(string str),去除字符串中的连续空白
string ltrim(string str),同chop
string md5(string str),把字符串进行MD5加密
string nl2br(string str),把回车转换为

string str_replace(string needle, string str, string haystack),将字符串haystack中的所有needle转换成str。
例:str_replace(“a”,”b”,”abcd”); 返回:bbcd。

PHP中常用的数组函数
1、新建一个数组:
$temp=array(1,2,3,4,5,6);
$temp1=array(0=>"zero",
    1=>"one",
    2=>"two",
    3=>"three"
    );
$temp2=array(name=>"张三",
    sex=>"男",
    age=>"20"
    );

2、计算数组的元素个数:int count(mixed var),sizeof()也有同样功能。例:count($arr)。

3、对数组排序及逆排序
void sort(array array),对数组从小到大排序。
void rsort(array array),从大到小排序。

4、数组自定义排序:void usort(array array, function cmp_function),
例:function cmp($a,$b); usort($temp,”cmp”);

5、移动数组指针
current(),传回数组当前指针指向的元素
end(),将数组指针移动到数组尾部
next(),将数组指针向后移动一位
prev(),将数组指针向前移动一位
reset(),将数组指针移动到数组头部

6、获取数组当前元素:current()、pos()。

7、移去数组中重复的值:array array_unique(array array)。
虽然去除了重复值,但键名仍将保持不变。

8、计算数组中所有值出现的次数:array array_count_values(array array)。

9、合并多个数组:array array_merge(array array1, array array2, array array3…)
例1:$a=array(1,2,3); $b=array(4,5,6); $c=array_merge($a,$b); 结果(1,2,3,4,5,6)
例2:$str1=array(name=>"张三",sex=>"男",length=>"170CM");
$str2=array(name=>"李四",birthday=>"5月13号",length=>"175CM");
$str3=array_merge($str1,$str2);
结果:array(name=>"李四", sex=>"男", length=>"175CM",birthday=>"5月13号",)。
新的字符键的值替换以前的字符键的值,而数字键的值只作为新值累加。

10、其它常用数组函数
bool in_array(mixed needle, array haystack [, bool strict]),在haystack中搜索needle,如果找到则返回Ture,否则返回False。
bool ksort(array &array [, int sort_flags]),对数组的键名进行排序,保留键名到数据的关联。
bool natcasesort(array &array),用自然排序法(及按照从小到大的顺序进行排序),对数组进行不区分大小写字母的排序,把结果返回。


08 PHP文件应用

访问文件属性
判断文件是否存在:file_exists(string),存在返回Ture,否则返回False。
filesize(string),获取文件的大小
filetyp(string),获取文件的类型
filemtime(string),获取文件的修改时间,出错时返回 FALSE。时间以 Unix 时间戳的方式返回,可用于 date()。 例date("Y年n月t日",filemtime($filename))
fileatime(string),获取文件的访问时间,同filemtime(string)
fileperms(string),获取文件的权限

打开文件:fopen(string filename, string mode),filename为文件名,mode为打开模式。
文件指针指向文件头:r,只读;r+,读写。
文件指针指向文件头并清空原文件:w写入;w+读写。如文件不存在则创建。
文件指针指向文件尾不清空:a写入;a+读写。如文件不存在则创建。

读取文件内容
按字符:string fgetc ( resource $handle )。
按行:string fgets ( int $handle [, int $length] )
按行返回文件内容并去除HTML标记:
string fgetss ( resource $handle [, int $length [, string $allowable_tags]] )
将整个文件内容读入到数组变量中:array file(string $filename)。

删除文件:bool unlink ( string $filename )。文件不存在则出错
创建目录:mkdir(string dirname, int mode)。已存在同名目录则出错
删除目录:rmdir(string dirname),目录非空或不存在则出错

浏览目录下的文件
opendir(string path),打开指定目录
readdir(int dir_handle),读取指定目录
closedir(int dir_handle),关闭指定目录
出错:Warning: filesize() [function.filesize]: stat fail,
权限问题,只能访问php文件所在目录。Win系统下,改天试试Linux。

PHP文件上传
利用form表单提交一个FILE对象给服务器。

前台FORM表单:

<form ENCTYPE="multipart/form-data" ACTION="8-16.php" METHOD="POST">
<input name="upfile" type="file">
<input type=submit value="确认提交">
</form>

ENCTYPE="multipart/form-data" 属性为必须,同时生成变量:_name,_size,_type。

后台处理php:

<?php
if(!$upfile)
//没有选定文件的处理
{
echo "没有选择文件" .<br />;
//显示提示信息
}
else
//选定文件
{
$filepath="images/";
//定义路径
$filename=$filepath . $upfile_name;
//新的路径及文件名
echo $upfile_name .<br />;
//显示文件名
echo $upfile_size .<br />;
//显示文件大小
echo $upfile_type .<br />;
//显示文件类型
if(copy($upfile,$filename))
//复制文件的目标路径
{
   unlink($upfile);
//删除原有文件
   echo "指定文件已经成功上传!";
}
else
{
   echo "文件上传失败!";
}
}
?>



实例:在线相册

文件上传处理: 注意: 要确保文件上传表单的属性是 enctype="multipart/form-data",否则文件上传不了。
$_FILES 数组的内容如下所示。我们假设文件上传字段的名称如上例所示,为 userfile,名称可随意命名。

$_FILES['userfile']['name'],客户端机器文件的原名称。
$_FILES['userfile']['type'],文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
$_FILES['userfile']['size'],已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name'],文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error'],和该文件上传相关的错误代码。


09 用PHP获取主机信息

phpinfo() 无参数,直接返回主机的全部信息。

$_SERVER["HTTP_USER_AGENT"],获取访问者浏览器信息。

$_SERVER[REMOTE_ADDR],获取访问者的IP地址。

日期时间相关函数
1、检查日期的合法性:bool checkdate ( int $month, int $day, int $year )。

2、格式化输出当前的日期:string date ( string $format [, int $timestamp])
详细参数见PHP手册。

3、获取时间及日期信息:array getdate ( [int $timestamp])。返回数组,如果没有给出时间戳则认为是当前本地时间。

阅读(787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~