PHP常用函数集合

编程语言 来源:kwinH 20℃ 0评论

 

 

字符串


      bar — 在字符串所有新行之前插入 HTML 换行标记
strip_tags('

Test

'); //Test — 从字符串中去除 HTML 和 PHP 标记
htmlspecialchars(); //— 将特殊字符为HTML实体
htmlentities();  // — 将所有的ASCII码字符转换为对应的实体代码
addslashes("Is O'reilly?");// 输出: Is O\'reilly? — 使用反斜线引用字符串
stripslashes("Is O\'reilly?")//s O'reilly? - 反引用一个引用字符串

数值处理

/* * *数值处理 * */
abs();//— 绝对值
ceil(); //— 进一法取整
floor(); //— 舍去法取整
max($number);// — 找出最大值
min($number);// — 找出最小值
mt_rand(); //— 生成更好的随机数
round() //— 对浮点数进行四舍五入
sprintf("%.nf", $number);//保留n位小数,第$n+1位向前四舍五入 
number_format($number,$n);//以逗号作为千位分隔符,保留位$n小数,第$n+1位向前四舍五入

日期

/* *日期 */

date('Y-m-d H:i:s',time());//输出现在时间 — 格式化一个本地时间/日期
mktime(hour,minute,second,month,day,year) //— 取得一个日期的 Unix 时间戳
strtotime('-1 day');//前一天 将任何英文文本的日期时间描述解析为 Unix 时间戳
date_default_timezone_set('PRC');//设定用于脚本中所有日期时间函数的默认时区,北京
getdate ();//根据 timestamp 得出的包含有日期信息的关联数组 array 。如果没有给出时间戳则认为是当前本地时间。
time();//函数返回当前时间的 Unix 时间戳。
microtime(true); // 返回当前 Unix 时间戳和微秒数

数组

/** *数组 * */
$arr=array( "orange" ,  "banana" );
array_chunk (array('a','b','c') ,2 ));//array(0=>array('a','b'),1=>array('c'))— 将一个数组分割成多个
array_combine(); //— 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_filter($arr,$func); //— 用回调函数过滤数组中的单元 如果参数为空,则过滤为空的数组 返回array
array_walk($arr,$func); //— 使用用户自定义函数对数组中的每个元素做回调处理 返回Boole值
array_map($func,$arr); //— 将回调函数作用到给定数组的单元上 返回一个数组
array_flip(); //— 交换数组中的键和值
array_key_exists($key,$arr); //— 检查给定的键名或索引是否存在于数组中
array_keys($arr) //— 返回数组中部分的或所有的键名
array_values($arr) //— 返回数组中所有的值

array_rand();// — 从数组中随机取出一个或多个单元
array_sum(); //— 计算数组中所有值的和
array_unique(); //— 移除数组中重复的值
array_unshift ( $arr ,  "apple" ,  "raspberry" );//在数组开头插入一个或多个单元
extract(); //— 此函数会将键名当作变量名,值作为变量的值。
in_array($str,$arr); //— 检查数组中是否存在某个值
asort($arr);//— 对数组进行排序并保持索引关系
arsort($arr); //— 对数组进行逆向排序并保持索引关系
array_reverse($arr, true);//将一个数组逆向排序,如果第二个参数为true,则保持键名
list('a','b')=$arr;//用一步操作给一组变量进行赋值 $a=orange;b='banana';

reset($arr);//将数组指针指向第一个,也就是取第一个的值
end($arr);//将数组指针指向最后一个,也就是取最后一个的值
array_merge(); //— 合并一个或多个数组
array_pop(); //— 将数组最后一个单元弹出(出栈) 可以给变量赋值
array_shift(); //— 将数组开头的单元移出数组 可以给变量赋值
array_push(); //— 将一个或多个单元压入数组的末尾(入栈)
array_unshift ( $arr ,"apple" ,"raspberry" );//在数组开头插入一个或多个单元

文件操作函数

 /* * 文件操作函数 */

//写入文件
fopen($filename,$mode);//打开资源(文件)
fwrite($handle,$str);//写文件
fclose($handle);//关闭文件
file_put_contents($filename,$str,$mode);//一步写入

//读文件
fread($handle,字节数);//读文件
fgets($handle);//读一行
fgetc($handle);//读一个字符
file($filename);//读成一个数组中
file_get_contents($filename);//一步读取

tempnam ($dir ,$prefix);//建立一个具有唯一文件名的文件

//路径操作
basename("/etc/passwd");//passwd — 返回路径中的文件名部分
dirname("/etc/passwd");// /etc — 返回路径中的目录部分
realpath(string $path ); //— 返回规范化的绝对路径名
pathinfo(string $path); //— 返回文件路径的信息
getcwd();//取得当前工作目录


//目录和文件操作
file_exists($filename);//检查文件或目录是否存在
filectime($filename);//取得文件的创建时间
fileatime($filename);//取得文件的访问时间
filemtime($filename);//取得文件的修改时间
disk_free_space($path); //— 返回目录中的可用空间
disk_total_space($path); //— 返回一个目录的磁盘总大小
copy('原文件','目标文件'); //— 拷贝文件
unlink(); //— 删除文件
rmdir(); //— 删除目录
rename(); //— 重命名一个文件或目录

is_uploaded_file($_FILES ['file']['tmp_name']); //判断文件是否是通过 HTTP POST 上传的
move_uploaded_file($_FILES ['file']['tmp_name'],$path); //将上传的文件移动到新位置




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

函数调用

call_user_func  ( callable  $callback  [, mixed  $parameter  [, mixed  $...  ]] );
//把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数。

//调用类方法
call_user_func (array( $classname ,  'say_hello' ));
 call_user_func ( $classname  . '::say_hello' );  // As of 5.2.3

$myobject  = new  myclass ();
call_user_func (array( $myobject ,  'say_hello' ));

func_get_args(); — 返回一个包含函数参数列表的数组

正则

int preg_match  ( string $pattern  , string $subject  [, array &$matches  [, int $flags  = 0  [, int $offset  = 0  ]]] );
preg_match() 返回 pattern 的匹配次数。 它的值将是0次(不匹配)或1次,因为 preg_match() 在第一次匹配后 将会停止搜索。 preg_match_all() 不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误 preg_match() 返回 FALSE

mixed  preg_replace  ( mixed  $pattern  , mixed  $replacement  , mixed  $subject  [, int $limit  = -1  [, int &$count  ]] ); 执行一个正则表达式的搜索和替换

array preg_split  ( string $pattern  , string $subject  [, int $limit  = -1  [, int $flags  = 0  ]] );
通过一个正则表达式分隔给定字符串.

GD 和图像处理函数


/** * GD 和图像处理 函数 */
getimagesize($path);// — 取得图像大小
imagesx($path);// 取得图像宽度
imagesy($path);// 取得图像高度

// 创建画布,返回一个资源类型的变量$image.并在内存中开辟一块临时区域
$image = imagecreatetruecolor(500, 500);                     //创建画布的大小为500x500
// 设置图像中所需的颜色,相当于在画画时准备的染料盒
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);//为图像分配颜色为白色
$red = imagecolorallocate($image, 0xFF, 0x00, 0x00);//为图像分配颜色为红色
imagefill($image, 0, 0, $white);//为画布背景添充背景颜色
imageline($image,0,0,100,100,$red); //画一条线段
imagesetpixel($image,80,30,$red);// — 画一个单一像素
imagestring($image,5,200,200,"are you ok?",$red);//水平地画一行字符串 对象,字体大小,坐标,字符串,颜色
// imagettftext ($image,$size,$angle,$x,$y,$color,$fontfile,$text);//用 TrueType 字体向图像写入文本
// imagerectangle ($image, 10,10 , 80,80,$red);//画一个矩形 
// imagefilledrectangle ($image ,10,10 , 80,80,$red );//画一矩形并填充
// imagepolygon ( $image ,array (0,0, 40,20, 30,80),3 ,$red );//创建多边形
// imagefilledpolygon ( $image ,array (0,0, 40,20, 30,80),3 ,$red );//创建多边形并填充

// imagearc ( $image ,100,100,150,150,0,360,$red);// 画一个画椭圆弧 中间坐标+宽度和长度 起点角度+终点角度
// imagefilledarc ( $image , 100 , 100 , 150 , 150 , 0 , 260 , $red , IMG_ARC_PIE);//画一椭圆弧且填充

// imageellipse ( $image , 200 , 150 , 200 , 200 , $red );//画一个椭圆 半径中间坐标 + 宽度和长度
// imagefilledellipse ( $image , 200 , 150 , 200 , 200 , $red );//画一个椭圆并填充 半径中间坐标 + 宽度和长度
//
// 向浏览器中输出一个GIF格式的图片
header('Content-type: image/png'); //使用头函数告诉浏览器以图像方式处理以下输出
imagepng($image);                       //向浏览器中输出动态的
imagedestroy($image);                   //销毁图像释放资源


/** * 水印 */
$back = imagecreatefromjpeg($filename);             //创建背景图片的资源
$water = imagecreatefromgif($water);                    //创建水印图片的资源

/* 使用imagecopy()函数将水印图片复制到背景图片指定的位置中 */
imagecopy ($back,$water,$back_x,$back_y,$water_x,$water_y,$water_width,$water_height);//拷贝图像的一部分
imagestring($back,5,200,200,"are you ok?",$red);//文字水印
/* 保存带有水印图片的背景图片 */
imagejpeg($back,$filename);

imagedestroy($back);            //销毁背京图片资源$back
imagedestroy($water);               //销毁水印图片资源$water

imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h );//重采样拷贝部分图像并调整大小