PHP常用函数小结

常用函数:

@:是错误控制运算符,通常用来屏蔽错误信息


__FILE__:代表当前网页文件的完整物理路径
__DIR__:代表当前网页文件所在的文件夹
__LINE__:代表当前这个常量名所在的“行号”
__METHOD__:当前所在类的方法名


PHP_INT_MAX:整数最大常量值
round(num):四舍五入。
getType($变量名):获取该变量的类型
setType(变量名,类型)将变量强制转换为目标类型
isset():是否设置了变量值
empty():是否为空
unset():销毁变量
Is_int($x);//是否整数类型
Is_float($x);//是否浮点类型
Is_string($x);//是否字符串
Is_bool($x);//是否布尔类型
Is_null($x);是否为空
Is_array($x);//是否数组
Is_object($x);//是否对象
Is_numeric($x)//是否是一个数字
Is_scalar($x);// 判断是否为标量类型,int float bool string
function_exists(函数名):判断一个函数是否被定义过,返回值为布尔值
func_get_arg($i):返回函数指定的参数
func_get_args():返回函数的参数,数组。
func_num_args():返回函数的参数个数。

setcookie():设置cookie

/*
setcookie(name,value,expire,path,domain,secure)
参数	描述
name	必需。规定 cookie 的名称。
value	必需。规定 cookie 的值。
expire	可选。规定 cookie 的有效期。
path	可选。规定 cookie 的服务器路径。
domain	可选。规定 cookie 的域名。
secure	可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
*/
//echo $_COOKIE['user'];
//echo $HTTP_COOKIE_VARS["user"];
<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");

// 输出 cookie (在重载页面后)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "$name : $value <br />";
    }
  }
?>

ini_set():设置配置项

session_start(); 

ini_set('session.gc_maxlifetime',21600); 

strip_tags(): 函数剥去字符串中的 HTML、XML 以及 PHP 的标签

<!DOCTYPE html>
<html>
<body>

<?php
echo strip_tags("Hello <b>world!</b>");
?>
  
</body>
</html>

//运行这段代码world不会被加粗

使用SimpleXMLElement()操作XML文件

<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML;

$simple = new SimpleXMLElement($note);
var_dump($simple);
?>

simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象。

<!DOCTYPE html>
<html>
<body>

<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML;

$xml=simplexml_load_string($note);
print_r($xml);
?>

</body>
</html>

结果:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

simplexml_load_file() 函数把 XML 文档载入对象中。

simplexml_load_file(file,class,options,ns,is_prefix)
参数	描述
file	必需。规定要使用的 XML 文档。
class	可选。规定新对象的 class。
options	可选。规定附加的 Libxml 参数。
ns	可选。
is_prefix	可选。
返回值
返回类 SimpleXMLElement 的一个对象,该对象的属性包含 XML 文档中的数据。如果失败,则返回 false。
xml文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

php文件
<?php
if (file_exists('test.xml'))
  {
  $xml = simplexml_load_file('test.xml');
  var_dump($xml);
  }

else
  {
  exit('Error.');
  }
?>

结果:
object(SimpleXMLElement)#1 (4)
{
["to"]=> string(4) "George"
["from"]=> string(4) "John"
["heading"]=> string(8) "Reminder"
["body"]=> string(29) "Don't forget the meeting!"
}

json_encode() 对变量进行json编码

 json_encode ( $value [, $options = 0 ] )
注意:1、$value为要编码的值,且该函数只对UTF8编码的数据有效;
      2、options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP,                                       JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT;

      3、第二个参数一般不需要;

      4、json数据其实就是一个string,可以用var_dump()打印出来看数据类型;

      5、执行成功返回JSON数据,否则返回FALSE。

json_decode()对json变量进行解码

mixed json_decode ( string json[,boolassoc ] ) 
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 

参数 

json 
待解码的 json string 格式的字符串。 

assoc 
当该参数为 TRUE 时,将返回 array 而非 object 。 

 

string exec ( string $command [, array &$output [, int &$return_var ]] ):执行外部命令

command
要执行的命令。

output
如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。 数组中的数据不包含行尾的空白字符,例如 \n 字符。 
请注意,如果数组中已经包含了部分元素,exec() 函数会在数组末尾追加内容。如果你不想在数组末尾进行追加, 请在传入 exec() 函数之前 对数组使用 unset() 函数进行重置。

return_var
如果同时提供 output 和 return_var 参数, 命令执行后的返回状态会被写入到此变量。

画布宽高:

Imagesx(画布)宽
Imagesy(画布)高
字体字符的宽高:
Imagefontwidth(字体)字体字符宽
Imagefontheight(字体)字体字符高

类相关的函数:

class_exists("类名") 判断一个类是否存在
interface_exists("接口名") 判断一个接口是否存在
get_class($obj1) 获得某个对象的所属类
get_parent_class($obj1) 获得某个对象的所属类的父类
Array get_class_methods(类名) 获得一个类的所有的方法,结果是一个数组,里面存储的是这些方法的名称
Array  get_class_vars(类名) 获得一个类的所有属性,结果是一个数组,里面存储的是这些属性的名称
Array get_declared_classes(void) 获得“整个系统”当前页面所定义的所有类名,数组
Bool is_object($var):判断var是否是一个对象,是true,不是false
$obj instanceof A:判断变量obj是否是类A的实例

字符串函数:

输出与格式化:echo,print,printf,print_r,var_dump
字符串去除和填充:返回值都是string,原字符串不会被修改
ereg(pattern,str,[array $regs]) int返回,匹配的存到第三个参数数组中
trim(str[,指定字符]):去除字符串首尾指定字符,不指定去除空白字符
Ltrim(str[,指定字符]): 删除字符串开头的空白字符(或其他字符)
Rtrim(str[,指定字符]):删除字符串末端的空白字符(或者其他字符)
str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] ),指定的长度小于或等于字符串,返回原字符串,默认从右侧填充
字符串连接与分隔:
String implode([连接符(默认空字符串),]数组)
join:是implode函数的别名
Array explode(分隔符,字符串):将字符串通过指定符号分隔成数组
Array str_split(字符串[,指定每个数组元素的长度(默认为1)]):通过长度分隔字符串
字符串截取:
String substr(str,startindex[,length]):从指定位置开始截取
String strstr(str,str2):返回str中str2(首次出现)开始到结束字符串
String strrchr(str,str2):返回str中str2最后出现位置到str结束的字符串
字符串替换:
String/array str_replace(被替换字符串/数组元素,替换字符串(原字符串子字符串)/数组元素,原字符串/数组):
String substr_replace(str,replacestr,start[,length]):将str中从start位置开始的length长度字符串用replacestr替换。

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )substr_count() 返回子字符串needle 在字符串 haystack 中出现的次数。注意 needle 区分大小写。

/*参数
haystack
在此字符串中进行搜索。

needle
要搜索的字符串。

offset
开始计数的偏移位置。如果是负数,就从字符的末尾开始统计。

length
指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 haystack 的总长度,则打印警告信息。 负数的长度 length 是从 haystack 的末尾开始统计的。

返回值
该函数返回整型。*/
<?php
$text = 'This is a test';
echo strlen($text); // 14

echo substr_count($text, 'is'); // 2

// 字符串被简化为 's is a test',因此输出 1
echo substr_count($text, 'is', 3);

// 字符串被简化为 's i',所以输出 0
echo substr_count($text, 'is', 3, 3);

// 因为 5+10 > 14,所以生成警告
echo substr_count($text, 'is', 5, 10);


// 输出 1,因为该函数不计算重叠字符串
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

mixed count_chars ( string $string [, int $mode = 0 ] )返回字符串所用字符的信息

<?php
$data = "Two Ts and one F.";

foreach (count_chars($data, 1) as $i => $val) {
   echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n";
}
?>
/*
以上例程会输出:

There were 4 instance(s) of " " in the string.
There were 1 instance(s) of "." in the string.
There were 1 instance(s) of "F" in the string.
There were 2 instance(s) of "T" in the string.
There were 1 instance(s) of "a" in the string.
There were 1 instance(s) of "d" in the string.
There were 1 instance(s) of "e" in the string.
There were 2 instance(s) of "n" in the string.
There were 2 instance(s) of "o" in the string.
There were 1 instance(s) of "s" in the string.
There were 1 instance(s) of "w" in the string.
*/

str_replace(find,replace,string,count)
字符串长度与位置:
Int strlen(str):返回字符串长度
Int strpos(str,str2):返回str2在str中首次出现的位置
Int strrpos(str,str2);返回str2在str中最后一次出现的位置
字符转换:
String Strtolower(str):返回转换后的小写字符串
String Strtoupper(str):返回转后的大写字符串
String lcfirst(str):使第一个字母小写,返回
String ucfirst(str):首字母大写,并返回
String ucwords(str):将字符串中每个单词首字母大写,并返回
特殊字符处理:
String nl2br(str):在str中所有新行之前插入换行标记’<br/>’并返回
String addslashes(str):对str中的单引号,双引号,反斜线与NULL之前加反斜线,并返回
Stripslashes()去出反斜杠
String htmlspecialchars(str):将str中的html标记转换成实体(&npsb等),并返回
String htmlspecialchars_decode(str):与上面的函数对应,将实体转换成普通的字符(< >等)

时间函数:

microtime():返回类型是string,返回的的是秒数加微秒之和
microtime(true):返回类型是float
time():当前时间时间戳,是1970.1.1 00:00:00到当前的秒数,不包括微秒部分
date("Y-m-d H:i:s",时间戳):将时间戳转化为具体的时间,不加参数和time()一致。
sleep(n):停止运行指定秒数。
Int mktime(时,分,秒,月,日,年):返回指定日期的事件戳,从右往左可以逐一省略
Int strtotime(strtime):返回一个时间戳
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
date_add
date_diff()
bool date_default_timezone_set(时区):设定用于所有日期时间函数的默认时区
string date_default_timezone_get ( ):获取默认时区

数学函数:

Max():返回最大值,参数可以是数组,也可以是多个数值
Min():返回最小值,参数可以是数组,也可以是多个数值
float round(num[,precision]):对num保留指定位数小数.
Float ceil(num);向上取整
Float floor(num):向下取整
Abs(num):返回绝对值
Float sqrt(num):求平方根
pow ( number $base , number $exp ):返回base的exp次方的值
Int rand(int min,int max):返回min(包含)和max(包含)之间一个随机数。不加参数返回0到getrandmax()之间随机数
Int getrandmax():显示随机数最大的可能值
定界符:
Str=<<<”eof”
...
eof;

文件处理函数:

String file_get_contents($filename):将整个文件内容读入一个字符串
Int file_put_contents($filename,$data):将data写入文件,data可以是各种类型,返回值是写入的字节数,失败返回false.
Array file($filename):将文件内容读入数组中,一行为一个元素。
Resoure fopen($filename,打开方式):失败返回false
Bool fclose($resoure):成功返回true,失败返回false
String fread($resoure,$lenth):从文件读取length个字节,失败false
String stream_get_contents($resoure),读取文件全部内容
Int fwrite($resoure,$string):写文件,返回写入的字符,失败返回false
Int filesize($filename):返回文件的大小

目录函数:

Is_dir(file):返回true ,false
Chdir(directory):改变当前的目录
Chroot(directory):改变根目录,windows下不可用
Closedir(dir_handle):关闭目录句柄
Dir(directory):返回directory类的实例,包含handle,path两个属性和read()、rewind()和close()三个方法。
Getcwd():返回当前工作目录,无参数
Opendir(path,context):打开目录句柄
Readir(dir_handle):返回目录句柄中的条目
Rewinddir(dir_handle):重置目录句柄,相当于遍历之后把指针归位reset理解
Scandir(directory[,sorting_order,context]):放回指定目录中的文件和目录的数组
Glob(pattern[,flags]): 返回一个包含有匹配文件 / 目录的数组。如果出错返回 false

文件操作:

文件加载:include、require、include_once、require_once,成功返回1,失败false
include载入文件失败时(即没有找到该文件),抱一个“提示错误”,然后继续执行后续代码;可以配合分支语句使用
require载入文件失败时,报错并立即终止执行。不可配合分支语句使用,一般是在文件一开始就将文件引入。
include载入的文件不判断是否重复,只要有include语句,就会载入一次---即此时可能导致重复载入。
Include_once载入的文件会有内部判断机制,是否“前面的代码”已经载入过,如果载入过,就不再载入。

 

错误分级:

E_ERROR: 致命错误
E_WARNING: 警告性错误
E_NOTICE: 提示性错误
E_USER_ERROR: 自定义致命错误
E_USER_WARNING: 自定义警告错误
E_USER_NOTICE: 自定义提示错误
涉及到一个函数:Trigger_error("错误提示信息!",3种用户错误代号之一)
显示错误报告(error_reporting)
1. 修改php.ini中做修改error_reporting=E_ALL|E_NOTICE,影响全局所有php页面
2. 在当前页面设置ini_set("error_reporting",错误代号),当前页面
自定义错误处理:set_error_handler(‘f1’);
Function f1($errCode,$errMsg,$errFile,$errLine){}//参数是固定的代号、内容、文件、行号

数组的遍历:

Foreach($数组名 as $key=>$value){}
For($i=0;$i<$len;$i++){current($数组名);next($数组名)}

数组排序函数:

Bool sort(数组名):按值升序最数组排序
Bool Asort(数组名):按值升序保持索引关系
Bool ksort(数组名):按照键名进行升序排序
Bool rsort(数组名):按照值进行降序排序
Bool aarsort(数组名):按照值进行降序排序,并保持索引关系
Bool krsort(数组名)按照键名降序排序
Bool shuffle(数组名)打乱数组

数组指针函数:

$v1=current($数组); //获得数组的当前指针所在单元的“值”
$v2=key($数组); //获得数组当前指针所在单元的“键”(下标)
$v3=next($数组); //先将数组指针移向后一位,然后取得新单元的值
$v4=prev($数组); //先将数组的指针移向前一个单元,然后取得该单元的值。
$v5=end($数组); //先将数组的指针移向最后一个单元,然后取得该单元的值
$v6=reset($数组); //先将数组的指针移向第一个单元,然后取得该单元的值。

单元操作函数:

Mixed array_pop(数组) 出栈长度减一,返回出栈的值
Int array_push(数组,添加的值),添加到末尾(入栈),返回数组的长度
Mixed array_shift(数组)将第一个元素移除,并返回,长度减一
Int array_unshift(数组,添加的值):添加到数组头,返回数组长度
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ):把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用其中的单元取代

查找函数:

Bool in_array(查找值,数组):存在返回真,否则返回假
Bool array_key_exists(查找的索引,数组名);查找数组中是否有指定索引
Mixed array(查找值,数组):存在则返回对应的第一个键名,不存在返回false

数组其他函数:

Int Count(数组):计算数组长度
Array array_reverse(数组):返回顺序相反的数组
Array array_merge(数组1,数组2):合并两个数组
Bumber array_sum(数组):对数组中所有值求和
Array array_keys(数组):返回数组中所有的键名
Array array_values(数组):返回数组中所有的值
Array range(start,end[,step]):创建一个数组

魔术方法:

__construct(),类的构造函数

__destruct(),类的析构函数

__call(),在对象中调用一个不可访问方法时调用

__callStatic(),用静态方式中调用一个不可访问方法时调用

__get(),获得一个类的成员变量时调用

__set(),设置一个类的成员变量时调用

__isset(),当对不可访问属性调用isset()或empty()时调用

__unset(),当对不可访问属性调用unset()时被调用。

__sleep(),执行serialize()时,先会调用这个函数

__wakeup(),执行unserialize()时,先会调用这个函数

__toString(),类被当成字符串时的回应方法

__invoke(),调用函数的方式调用一个对象时的回应方法

__set_state(),调用var_export()导出类时,此静态方法会被调用。

__clone(),当对象复制完成时调用

__autoload(),尝试加载未定义的类

__debugInfo(),打印所需调试信息

魔术变量:

  __LINE__  文件中的当前行号。

  __FILE__  文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

  __DIR__  文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

  __FUNCTION__  常量返回该函数被定义时的名字

  __CLASS__  常量返回该类被定义时的名字(区分大小写)。

  __METHOD__  类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

  __NAMESPACE__  当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

超全局变量:

  $GLOBALS  储存全局作用域中的变量

  $_SERVER  获取服务器相关信息

  $_REQUEST  获取POST和GET请求的参数

  $_POST  获取表单的POST请求参数

  $_GET  获取表单的GET请求参数

  $_FILES  获取上传文件的的变量

  $_ENV  获取服务器端环境变量的数组

  $_COOKIE    浏览器cookie的操作

          设置cookie:setcookie(name, value, expire, path, domain);

          获取cookie:$_COOKIE["user"];

          删除cookie:setcookie("user", "", time()-3600);//设置过期时间

  $_SESSION  服务端session的操作

          使用session前一定要session_start()启动session

          储存session:$_SESSION["name"]="King";//数组操作

          销毁session:unset($_SESSION["name"]);//销毁一个

          session_destroy()和unset($_SESSION);//销毁所有的session

工厂模式:根据传递的参数创建相应的类

Class factory{
public static function create($className){
$obj=new $className();
Return $obj;


}
}

单例模式:

Class Single{
Private Static $instance=null;
Private function __contruct(){}//创建私有的构造函数
Private function __clone(){}//禁止克隆
Public static function getInstance(){//创建类
If(!isset(self::$instance))//如果没有生产
{self::$instance=new self();
Return self::$instance;
}
Else{
Return self::$instance;
}
}
}

Php重载:

Php重载不同于其他面向对象的相同名字不同形参方法的多次定义,而是一个对象使用未定义的属或方法时,其中的一些处理机制
属性重载:
__get($prop_name):获取未定义属性值,预先在类中定义个空数组用于存放未定义的属性
__set($p,$v):将未定义的属性保存到属性数组中
__isset($prop_name):通过数组中的索引判断是否有值
方法重载:
__call($method_name,$args[])调用不存在的方法时自动调用这个函数
__callstatic($method_name,$args[]),调用不存在的静态方法时。
接口:
Interface interfaceName{
。。。
}
Class className implements interface1,interface2{
。。。
}
自动加载:当new一个对象时;使用类的静态方法...
系统内部:__autoload()//假如多个类路径不同则找不到使用自定义自动加载
Function __autoload($name)
{
Require_once $name.’.class.php’;
}
自定义自动加载:
spl_autoload_register("func1");//声明“函数1”作为自动加载函数
spl_autoload_register("func2");//声明“函数2”也作为自动加载函数
Function func1($name){
//判断文件存在引入,不存在则不处理
@include_once ‘路径1’.$name.’.class.php’;
}
Function func2($name){//判断文件存在引入,不存在则不处理
@include_once ‘路径2’.$name.’.class.php’;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值