php数组序列化函数(php常用数组函数和用法)

php数组序列化函数(php常用数组函数和用法)

PHP中函数其实是一个具有复杂逻辑的代码块,而这种代码块通常可以在很多地方重复使用。函数是使用了一种特殊的结构来将要重复使用的代码进行包裹,后期可以通过定义的函数名字来直接实现重复代码块的调用。

<?php

其他

isset() 变量是否存在

boolean empty() 检查变量是否存在,并判断值是否为非空或非0

void unset() 销毁变量

header(‘Content-Type: text/html; charset=utf-8′);

method_exists($obj, $method) 判断对象的方法是否可用

file_exists($file) 判断文件是否存在

function_exists();

class_exists($class_name);

gettype();获取数据类型

set_magic_quotes_runtime() 0 for off, 1 for on 当遇到反斜杆、单引号,将会自动加上一个反斜杆,保护系统和数据库的安全

ini_set(,);

string getcwd ( void ) 取得当前工作目录

数据类型转换

强制转换

$i = 1;

$j = (int)$i;

settype

$i = 1;

settype($i,’float’);

floatval

$i = 1;

$j = floatval ($i)

安全

function strReplace($str)

{

$strResult = $str;

if(!get_magic_quotes_gpc())//判断设置是否开启

{

$strResult = addslashes($strResult);//转换sql语句特殊字符

}

return $strResult;

}

function quotes($content)

{

//如果magic_quotes_gpc=Off,那么就开始处理

if (!get_magic_quotes_gpc())

{

//判断$content是否为数组

if (is_array($content))

{

//如果$content是数组,那么就处理它的每一个单无

foreach ($content as $key=>$value)

{

$content[$key] = addslashes($value);

}

}

else

{

//如果$content不是数组,那么就仅处理一次

addslashes($content);

}

}

//返回$content

return $content;

}

编码转换

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )

iconv();

时间

date_default_timezone_set(“PRC”);

date(“Y-m-d H:i:s”);

time();

date(“Y-m-d H:i:s”,time() 3600)

ini_set(‘date.timezone’, ‘PRC’);

msec sec microtime() 以秒返回时间戳 explode(‘ ‘, microtime())

$mtime = explode(‘ ‘, microtime());

$s = $mtime[1] $mtime[0];

number_format($s,5);//保留5位小数

魔术方法

__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。

__destruct() 当删除一个对象或对象操作终止的时候,调用该方法。

__get() 当试图读取一个并不存在的属性的时候被调用。

__set() 当试图向一个并不存在的属性写入值的时候被调用。

__call() 当试图调用一个对象并不存在的方法时,调用该方法。

__toString() 当打印一个对象的时候被调用

__clone() 当对象被克隆时,被调用

__isset()

__unset()

__autoload($classname)

__sleep()

__wakeup()

系统常量

__FILE__ 当前文件名

__LINE__ 当前行数

__FUNCTION__ 当前函数名

__CLASS__ 当前类名

__METHOD__ 当前对象的方法名

PHP_OS 当前系统

PHP_VERSION php版本

DIRECTORY_SEPARATOR 根据系统决定目录的分隔符 /\

PATH_SEPARATOR 根据系统决定环境变量的目录列表分隔符 ; :

E_ERROR 1

E_WARNING 2

E_PARSE 4

E_NOTICE 8

M_PI 3.141592

$_SERVER

$_ENV 执行环境提交至脚本的变量

$_GET

$_POST

$_REQUEST

$_FILES

$_COOKIE

$_SESSION

$_GLOBALS

输出

echo //Output one or more strings

print //Output a string

print_r() //打印关于变量的易于理解的信息。

var_dump() //打印变量的相关信息

var_export() //输出或返回一个变量的字符串表示

printf(“%.1f”,$num) //Output a formatted string

sprintf() //Return a formatted string

错误处理

@1/0

error_reporting(E_ALL) 显示所有错误

error_reporting(0)

trigger_error(“Cannot divide by zero”, E_USER_ERROR);

try

{

throw new Exception(“执行失败”);

}

catch (Exception $ex)

{

echo $ex;

}

error_reporting(E_ERROR | E_WARNING | E_PARSE); 用来配置错误信息回报的等级

字符串处理

string trim(“eee “) trim (‘ffffe’,’e’) //ltrim rtrim

array explode(“.”, “fff.ff.f”) 按指定字符切割

string implode(“.”, $array) 别名:join 把数组值数据按指定字符连接起来

array str_split(“eeeeeeee”,4) 按长度切割字符串

array split(“-“,”fff-ff-f”) 按指定字符切割

int strlen(‘ffffffff’) 取字符长度

string substr ( string $string , int $start [, int $length ] )

substr($a,-2, 2) 截取字符

int substr_count($text, ‘is’) 字符串出现的次数

string strstr($text, ‘h’) 第一次出现h后的字符串 //别名:strchr

int strpos($text, ‘h’) 第一次出现h的位置

strrpos();最后一次出现h的位置

strrchr(‘aa.jpg’,’.’); .jpg

str_replace(‘a’, ‘ttt’, $t) 把$t里的’a’替换为’ttt’

strtr($t,’is’,’pef’) 把$t中i替换成p,s替换成e,f被忽略

strtr(“hi all, I said hello”, array(“hello” => “hi”)) 把’hello’转换成’hi’

string md5_file(‘1.txt’,false) 文件数据md5加密

string md5()

int strcmp(string str1, string str2) 字符串比较

int strcasecmp(string str1, string str2) 忽略大小写

string str_pad($i, 10, “-=”, STR_PAD_LEFT) 在原字符左边补’-=’,直到新字符串长度为10

STR_PAD_RIGHT

STR_PAD_BOTH

string str_repeat(‘1’, 5) 重复5个1

void parse_str(‘id=11’); echo $id; 将字串符解析为变量

array preg_grep(“/^(\d )?\.\d $/”, array(11.2,11,11.2)) 匹配数据

array preg_split (“/[\s,] /”, “hypertext language,programming”); 按指定的字符切割

array pathinfo(string path [, int options]) 返回文件路径的信息

string basename ( string path [, string suffix] ) 返回路径中的文件名部分

string dirname ( string path ) $_SERVER[PHP_SELF] 返回路径中的目录部分

string nl2br(“foo isn’t\n bar”) “foo isn’t<br> bar” 把换行转成<br>

string chr ( int ascii ) chr(97) —> a

int ord(‘a’) 97

mixed str_word_count ( string string [, int format [, string charlist]] )

string str_shuffle (‘abc’) 打乱字符串顺序

string strrev($str) * 翻转一个字符串

string strtolower($str) * 将字符串 $str 的字符全部转换为小写的

string strtoupper($str) * 将字符串 $str 的字符全部转换为大写的

string ucfirst ($str) * 将字符串 $str 的第一个单词的首字母变为大写。

string ucwords($str) * 将字符串 $str 的每个单词的首字母变为大写。

string addslashes(“I’m”) I\’m 使用反斜线引用字符串 这些字符是单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)

get_magic_quotes_gpc()

string stripcslashes(“I\’m”) I’m 将用addslashes()函数处理后的字符串返回原样

strip_tags(“<p>tt</p>”, ‘<p>’) 去除html、xml、php标记,第二个参数用来保留标记

string urlencode(string str)

string urldecode(string str)

string htmlspecialchars(“<a href=’test’>Test</a>”, ENT_QUOTES) 转换特殊字符为HTML字符编码

&lt;a href='test'&gt;Test&lt;/a&gt;

ENT_COMPAT –对双引号进行编码,不对单引号进行编码

ENT_QUOTES –对单引号和双引号进行编码

ENT_NOQUOTES –不对单引号或双引号进行编码

string htmlentities(‘<p>ff</p>’, ENT_QUOTES) 转换特殊字符为HTML字符编码,中文会转成乱码

数组处理

int count( mixed var [, int mode] ) 别名:sizeof() 取数组长度

string implode(“.”, $array) 别名:join 把数组值数据按指定字符连接起来

array explode(“.”, “fff.ff.f”) 按指定字符切割

array range(0, 6, 2) 返回数组 array(0,2,4,6) 第一个参数为起使数,第二个参数为结束数,第三个参数为数据增加步长

void unset ( mixed var [, mixed var [, …]] )

array array_pad ($a, 5, ‘s’)用’s’将数组填补到指定长度

bool shuffle ( array $array ) 将数组打乱

mixed array_rand ( array input [, int num_req] )从数组中随机取出一个或多个单元的索引或键名

array array_count_values ( array input )统计数组中所有的值出现的次数

array array_combine ( array keys, array values ) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

bool array_key_exists ( mixed key, array search )检查给定的键名或索引是否存在于数组中

mixed array_search ( mixed needle, array haystack [, bool strict] )在数组中搜索给定的值,如果成功则返回相应的键名

bool is_array ( mixed var )

bool in_array ( mixed needle, array haystack [, bool strict] )检查数组中是否存在某个值

number array_sum ( array array )计算数组中所有值的和

array array_unique ( array array )移除数组中重复的值

mixed array_shift ( array &array )将数组开头的单元移出数组

int array_unshift ( array &array, mixed var [, mixed …] )在数组开头插入一个或多个单元

int array_push($a, “3”, 1) 把’3’、’1’压入$a,将一个或多个单元压入数组的末尾(入栈),第二个参数开始就是压入的数据

mixed array_pop ( array &array )将数组最后一个单元弹出(出栈)

mixed reset ( array &array )将数组的内部指针指向第一个单元

mixed current ( array &array ) 返回数组中的当前单元 值

mixed next ( array &array )

mixed prev ( array &array )

mixed end ( array &array ) 返回数组中的最后一个单元 值

mixed key ( array &array ) 返回数组中的当前个单元 键

array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回数组中所有的键名

array array_values ( array input ) 返回数组中所有的值

array array_splice ( array $input, int offset [, int length [, array replacement]] ) 把数组中的一部分去掉并用其它值取代

array array_merge ( array array1 [, array array2 [, array …]] )合并一个或多个数组

array array_flip ( array trans )交换数组中的键和值

int extract( array var_array [, int extract_type [, string prefix]] ) 从数组中将变量导入到当前的符号表

array compact ( mixed varname [, mixed …] ) 建立一个数组,包括变量名和它们的值

bool sort ( array &array [, int sort_flags] )从最低到最高重新安排

bool natsort($a) 用“自然排序”算法对数组排序

bool rsort ( array &array [, int sort_flags] )对数组进行逆向排序(最高到最低)

bool asort ( array &array [, int sort_flags] )对数组进行排序并保持索引关系

bool arsort ( array &array [, int sort_flags] ) 对数组进行逆向排序并保持索引关系

bool ksort ( array &array [, int sort_flags] )对数组按照键名排序

bool krsort ( array &array [, int sort_flags] )对数组按照键名逆向排序

usort(array array, callback cmp_function) 使用用户自定义的比较函数对数组中的值进行排序

回调函数返回值作用:

0 不做操作

-1 将$a所在单元先前移动

1 位置不发生变化

如果usort($a ,”cmp”); 中的$a数组只有2个值的情况下,很简单,cmp()第一个参数为$a[1],cmp()第二个参数为$a[0]; 通过cmp比较,返回1则$b>$a , $a[0],$a[1]按原序列排; 返回-1 则反之,$a[0], $a[1]互换位置;返回 0则表示两个数字大小一样,如果是文字的按照第一个字母的ASCII值比较.

如果usort($a ,”cmp”); 中的$a数组超过2个值的情况, 则需要通过递归完成排序

array array_filter ( array input [, callback callback] ) 用回调函数过滤数组中的单元

bool array_walk ( array &array, callback funcname [, mixed userdata] ) 对数组中的每个成员应用用户函数

array array_map ( callback callback, array arr1 [, array …] )将回调函数作用到给定数组的单元上

array array_fill ( int start_index, int num, mixed value ) 用给定的值填充数组

array_fill(5, 3, ‘a’)–>array(5=>’a’,6=>’a’,7=>’a’)

array array_chunk ( array input, int size [, bool preserve_keys] )将一个数组分割成多个

发表评论

登录后才能评论