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

可选。规定函数的模式。可能的值:

  • 0 - 默认。不检测多维数组(数组中的数组)。
  • 1 - 检测多维数组。

 

例子:

$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 )

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2012-08-13 09:27  hlp鹏  阅读(128)  评论(0)    收藏  举报