PHP常用函数集合

字符串

<?php
/*
*字符串   ''  ""
*http://bbs.itcast.cn/thread-25872-1-1.html?bbsxhw
*/

chr(97);  //a 返回相对应于 ascii 所指定的单个字符。
ord('A');  //65 返回字符的 ASCII 码值
chunk_split('hello world',6,"..."); //Hello ...world!...  将字符串分割成小块
explode('a','1a2'); // array(0=>1,1=>2) — 使用一个字符串分割另一个字符串
implode( "," ,  array(a,b,c) ); //a,b,c — 将一个一维数组的值转化为字符串
str_repeat('a',5); //aaaaa   — 重复一个字符串
str_replace('111','bbb','aaa111'); // aaabbb— 子字符串替换
str_split('aabbcc' ,  3 );//array(0=>'aa',1=>'bb',2=>'cc') 将一个字符串转换为数组

/****************************************/
strpos('abc','a');// 0 — 查找字符串首次出现的位置  还有一个参数 为初始位置 默认0 ===false 不存在
stripos();// - 查找字符串首次出现的位置(不区分大小写) ===false 不存在

strrpos('abccab','b',1);// 6 — 计算指定字符串在目标字符串中最后一次出现的位置 ===false 不存在
strripos('abccab','B',1);// 6 — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写) ===false 不存在

strstr('name@example.com','@');//@example.com — 查找字符串的首次出现
stristr() ;//- strstr 函数的忽略大小写版本

strrchr();// — 查找指定字符在字符串中的最后一次出现

/*******===false 表示没有找到************/


strrev('abc'); //cba — 反转字符串
strlen('123456');//6 — 获取字符串长度 在strle下 UTF8的中文字符是3个长度
mb_strlen('中文a字1符','utf8');//6 - 获取字符串的长度 utf8中文为1个长度
trim('  123 ');//123 — 去除字符串首尾处的空白字符(或者其他字符)
substr( "abcdef" , - 3 ,  1 );  // 返回 "d"  返回字符串的子串
mb_substr();//获取字符串的部分 中文
/*
如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。

如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。

如果 string 的长度小于或等于 start,将返回 FALSE 。
*/

md5('123456'); //— 计算字符串的 MD5 散列值
substr_count('aabbccaaddatt','b',7); //— 计算字串出现的次数 区分大小写
strtolower('ABC');//abc — 将字符串转化为小写
strtoupper('abc');//ABC — 将字符串转化为大写
ucfirst(); //— 将字符串的首字母转换为大写
ucwords(); //— 将字符串中每个单词的首字母转换为大写
iconv("GB2312", "UTF-8", "你好");//字符串按要求的字符编码来转换
mb_convert_encoding("妳係我的友仔", "UTF-8", "GBK");//转换字符的编码
/*
需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
*/

str_shuffle($str);//随机打乱一个字符串
urlencode($str);//编码 URL 字符串
//返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode() )不同。 
urldecode($str); //- 解码已编码的 URL 字符串

过滤

/*
*
*过滤
*/

nl2br("fo\n bar");//foo<br /> bar — 在字符串所有新行之前插入 HTML 换行标记
strip_tags('<p>Test</p>'); //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" );//在数组开头插入一个或多个单元

array_filter($arr,$func); //— 用回调函数过滤数组中的单元 如果参数为空,则过滤为空的数组 返回array
array_walk($arr,$func); //— 使用用户自定义函数对数组中的每个元素做回调处理 返回Boole值
array_map($func,$arr); //— 将回调函数作用到给定数组的单元上 返回一个数组
array_reduce ( array $input , callable $function [, mixed $initial = NULL ] );//用回调函数迭代地将数组简化为单一的值
//如果指定了可选参数 initial,该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。 
//array_reduce 实例:
   echo array_reduce([
    ["id"=>1,'name'=>"a"],
    ["id"=>2,"name"=>"c"],
    ["id"=>3,"name"=>"d"]
    ], function($result , $v){
    return $result.','.$v['id'];
      });// string 1,2,3

文件操作函数

 /*
  *  文件操作函数
 */

//写入文件
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 );//重采样拷贝部分图像并调整大小
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值