php函数(更新至09-24)
1.explode() 函数
explode() 函数把字符串分割为数组。本函数返回由字符串组成的数组,其中的每个元素都是由 separator 作为边界点分割出来的子字符串。
语法: explode(separator,string,limit)
separator:必须。规定在哪里分割字符串。 string:必须。要分割的字符串。 limit:可选。规定所返回的数组元素的最大数目。
例如:<?php $str = "Hello world. It's a beautiful day."; print_r (explode(" ",$str)); ?> 输出: Array( [0] => Hello [1] => world. [2] => It's [3] => a [4] => beautiful [5] => day. )
2.php strrchr()
php strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。 如果成失败,否则返回 false。
语法: strrchr(string,char)
参数 描述
string 必需。规定被搜索的字符串。
char 必需。规定要查找的字符。如果该参数是数字,则搜索匹配数字 ASCII 值的字符。 如: <?php echo strrchr("Hello world!","world"); ?> 输出: world!
3.substr() 函数
定义和用法 substr() 函数返回字符串的一部分。
语法 substr(string,start,length)
string:必需。规定要返回其中一部分的字符串。
start:必需。规定在字符串的何处开始。
•正数 - 在字符串的指定位置开始
•负数 - 在从字符串结尾的指定位置开始
•0 - 在字符串中的第一个字符处开始
length:可选。规定要返回的字符串长度。默认是直到字符串的结尾。
•正数 - 从 start 参数所在的位置返回
•负数 - 从字符串末端返回
例子 1 <?php echo substr("Hello world!",6); ?>
输出:world!
例子 2 <?php echo substr("Hello world!",6,5); ?>
输出:world
4.in_array()函数
in_array() 函数在数组中搜索给定的值。
语法:in_array(value,array,type)
如果给定的值 value 存在于数组 array 中则返回 true。
如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。
如果没有在数组中找到参数,函数返回 false。
注释:如果 value 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) {
echo "'12.4' found with strict check\n";
}
if (in_array(1.13, $a, true)) {
echo "1.13 found with strict check\n";
}
将输出:
1.13 found with strict check
5.implode() 函数
implode() 函数把数组元素组合为一个字符串(explode() 函数把字符串分割为数组。)
语法: implode(separator,array)
例子 <?php $arr = array('Hello','World!','Beautiful','Day!'); echo implode(" ",$arr); ?>
输出:Hello World! Beautiful Day!
6.strpos()
strpos — 查找字符串首次出现的位置
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
返回 needle 在 haystack 中首次出现的数字位置。如果没找到 needle,strpos() 将返回布尔型的 FALSE 值。(此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值,例如 0 或 ""(空串)。)
注意:应使用 === 运算符来测试此函数的返回值。
参数:
haystack :在该字符串中进行查找。
needle :如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。
offset :可选的 offset 参数可以用来指定从 haystack 中的哪一个字符开始查找。返回的数字位置是相对于 haystack 的起始位置而言的。
例一:
<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,
// 因为 'a' 是第 0 位置上的(第一个)字符。
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
?>
例二:
<?php
// 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?>
7.unset():释放变量的语句
在函数中,PHP unset全局变量只能销毁局部变量,并不能销毁全局变量.
< ?PHP
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = ‘bar’;
destroy_foo();
echo $foo;
?>
返回的结果为:bar
如果在程序中需要用到销毁 全局变量的应该如 何做呢?也很简单,用$GLOBALS数组来实现。看下面的 例子:
1. < ?PHP
2. function foo() {
3. unset($GLOBALS['bar']);
4. }
5. $bar = “something”;
6. foo();
7. var_dump($bar);
8. ?>
PHP unset()函数被我们用来销毁变量,但是往往在实际操作时不能使内存中的数据进行释放。
PHP unset()函数是用来销毁变量的,但很多时候,这个函数只把变量给销毁了,内存中存放的该变量的值仍然没有销毁,也就是没能达到我们想要的释放内存的 效果。这里建议大家用 $变量=null 的方法来释放其内存。
以下是关于PHP unset()函数的几点要点:
1. 该函数只有在变量值所占空间超过256字节长的时候才会释放内存
2. 只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放(也要执行1的判断)
8.php中print_r、var_dump和var_export几个函数的用法区别
下面介绍一下print_r、var_dump、var_export几个函数的用法区别,他们都是用来打印数组对象。
1、print_r ( $array/$var )
print
是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量。
print_r ($_REQUEST) ;
print_r ($_GET) ; /* 打印使用GET方法传递的表单内容*/
print_r($_POST) ; /* 打印使用表单POST方法传递过的数组内容*/
2、 var_dump ($object/$array/$var)
var 代表变量(Variable),变量包括对象、数组以及标量变量,dump有倒出之意,加在一块,就是将变量或对象的内容全部输出出来。
var_dump($DB) ; /*打印$DB数据库连接对象的内容*/
var_dump($fileHandle) ;
/*打印文件句柄对象的内容*/
var_dump($Smarty) ; /*打印Smarty模板对象*/
3、
var_export($object/$array/$var)
输出或返回一个变量的字符表示。此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码。可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示。
看下面代码:
<?php
$a = array (1,2, array("a","b","c")) ;
var_export ($a) ;
echo "<br>" ;
$v = var_export ($a , TRUE) ;
echo $v ;
?>
上例中,$v = var_export ( $a , TRUE)
表示返回的是PHP的源代码,可以直接用PHP脚本的数组文件中。
总结说明:
以上三个函数都可以打印对象的值、系统函数值以及数组的内容;
1、 echo 、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组;
2、 print_r 和
var_dump不仅可以打印数组、标量变量,还可以打印对象的内容;
3、
var_dump语句不仅能打印变量、数组内容,还可以显示布尔变量和资源(Resource)的内容;
4、var_export
函数返回关于传递给该函数的变量的结构信息,和 var_dump()函数类似,不同的是其返回的内容是合法的PHP代码。
9.php count()
count() 函数计算数组中的单元数目或对象中的属性个数。
对于数组,返回其元素的个数,对于其他值,返回 1。
如果参数是变量而变量没有定义,则返回 0。
如果 mode 被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数。
语法:count(array,mode)
| mode |
可选。规定函数的模式。可能的值:
|
例子:
$arr=array('color1'=>array('1','2','3'),'color2'=>array('1','/','3'),'color3'=>array('5','7','4'));
echo count($arr,COUNT_RECURSIVE);
结果为是12
count 函数 中 如果 mode 被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数(也就是结果的12)。如果不设置 mode 默认为0 。不检测多维数组(数组中的数组)(结果3)。
它是这样来计算的:
首先遍历的是外面的数组array得出有三个元素("color1","color2","color3") 为3
再遍历("color1","color2","color3")数组得出的是9个元素 为9
结果就是3+9=12
10.PHP Mail函数
HTTP 函数允许从脚本中直接发送电子邮件。运行时配置:邮件函数的行为受 php.ini 的影响。
11.php array_unique()
array_unique() 函数移除数组中的重复的值,并返回结果数组。
当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
返回的数组中键名不变。
<?php
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");
print_r(array_unique($a));
?>
输出:
Array ( [a] => Cat [b] => Dog )

浙公网安备 33010602011771号