jojuniori
10/30/2016 - 9:06 PM

#PHP语句

<?php
  echo substr("Hello world",6);
  //world
?>

语法
substr(string,start,length)

参数	描述
string	必需。规定要返回其中一部分的字符串。
start	
必需。规定在字符串的何处开始。
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾开始的指定位置开始
0 - 在字符串中的第一个字符处开始
如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
length	
可选。规定被返回字符串的长度。默认是直到字符串的结尾。
正数 - 从 start 参数所在的位置返回的长度
负数 - 从字符串末端返回的长度
<?php
  echo strncmp("I love China!","I love Shanghai!",6);
  //0
?>

语法
strncmp(string1,string2,length)

参数	描述
string1	必需。规定要比较的首个字符串。
string2	必需。规定要比较的第二个字符串。
length	必需。规定比较中所用的每个字符串的字符数。

技术细节
返回值:	
本函数返回:
0 - 如果两个字符串相等
<0 - 如果 string1 小于 string2
>0 - 如果 string1 大于 string2
<?php
  echo stristr("Hello world!","WORLD");
  //world!
?>
注释:该函数是不区分大小写的。如需进行区分大小写的搜索,请使用 strstr() 函数。

语法
stristr(string,search,before_search)


参数	描述
string	必需。规定被搜索的字符串。
search	
必需。规定要搜索的字符串。
如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。
before_search	
可选。默认值为 "false" 的布尔值。
如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。

技术细节
返回值:	返回字符串的剩余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。
<?php
  echo str_replace("world","Shanghai","Hello world!");
  //Hello Shanghai!
?>

定义和用法
str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。
该函数必须遵循下列规则:
如果搜索的字符串是数组,那么它将返回数组。
如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。
如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用。
注释:该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。
注释:该函数是二进制安全的。

语法
str_replace(find,replace,string,count)

参数	描述
find	必需。规定要查找的值。
replace	必需。规定替换 find 中的值的值。
string	必需。规定被搜索的字符串。
count	可选。对替换数进行计数的变量。

技术细节
返回值:	返回带有替换值的字符串或数组。
语法
preg_split(string pattern, string subject, int [limit]);

返回值
数组

内容说明
本函数可将字符串依指定的规则分开。切开后的返回值为数组变量。参数 pattern 为指定的规则字符串、参数 subject 则为待处理的字符串、参数 limit 可省略,表示欲处理的最多合乎值。
<?php 
  $patterns = array("/(19|20\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");
  $replace = array("\\3/\\4/\\1", "$\\1 =");
  print preg_replace($patterns, $replace, "{startDate} = 1969-6-19");
  //$startDate = 1969-6-19
?>

语法
preg_replace(mixed pattern, mixed replacement, mixed subject);

返回值
混合类型资料

内容说明
本函数以 pattern 的规则来解析比对字符串 subject,欲取而代之的字符串为参数 replacement。返回值为混合类型资料,为取代后的字符串结果。
下面的例子演示了将文本中所有 <pre></pre> 标签内的关键字(php)显示为红色。
<?php 
   $str = "<pre>学习php是一件快乐的事。</pre><pre>所有的phper需要共同努力!</pre>"; 
   $kw = "php"; preg_match_all('/<pre>([sS]*?)</pre>/',$str,$mat); 
   for($i=0;$i<count($mat[0]);$i++)
   {
      $mat[0][$i] = $mat[1][$i]; 
      $mat[0][$i] = str_replace($kw, '<span style="color:#ff0000">'.$kw.'</span>', $mat[0][$i]); 
      $str = str_replace($mat[1][$i], $mat[0][$i], $str); 
   } 
   echo $str; 
?>

语法
preg_match_all( string pattern, string subject, array matches [, int flags ] )

参数	说明
pattern	正则表达式
subject	需要匹配检索的对象
matches	存储匹配结果的数组
flags	可选,指定匹配结果放入 matches 中的顺序,可供选择的标记有:
PREG_PATTERN_ORDER:默认,对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推
PREG_SET_ORDER:对结果排序使 $matches[0] 为第一组匹配项的数组,$matches[1] 为第二组匹配项的数组,以此类推
PREG_OFFSET_CAPTURE:如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量
例子 1 :
<?php
  if (preg_match("/php/i", "PHP is the web scripting language of choice.", $matches)) {
     print "A match was found:". $matches[0];
  } else {
     print "A match was not found.";
  }
  //A match was found:PHP
?> 
在该例子中,由于使用了 i 修正符,因此会不区分大小写去文本中匹配 php 。
提示:preg_match() 第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all() 函数。

例子 2 ,从一个 URL 中取得主机域名 :
<?php 
   // 从 URL 中取得主机名 
   preg_match("/^(http://)?([^/]+)/i","http://www.5idev.com/index.html", $matches); 
   $host = $matches[2]; // 从主机名中取得后面两段 
   preg_match("/[^./]+.[^./]+$/", $host, $matches); 
   echo "域名为:{$matches[0]}"; 
   //域名为:5idev.com 
?> 

语法
preg_match( string pattern, string subject [, array matches ] )

参数	说明
pattern	正则表达式
subject	需要匹配检索的对象
matches	可选,存储匹配结果的数组, $matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推
<?php
  $people = array("Bill", "Steve", "Mark", "David");
  
  if (in_array("Mark", $people))
    {
    echo "匹配已找到";
    }
  else
    {
    echo "匹配未找到";
    }
  //匹配已找到
?>

定义和用法
in_array() 函数搜索数组中是否存在指定的值。
注释:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。

语法
in_array(search,array,type)

参数	描述
search	必需。规定要在数组搜索的值。
array	必需。规定要搜索的数组。
type	可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
<?php
  $str = "Hello world. I love Shanghai!";
  print_r (explode(" ",$str));
  //Array ( [0] => Hello [1] => world. [2] => I [3] => love [4] => Shanghai! )
?>  
注释:"separator" 参数不能是空字符串。

语法
explode(separator,string,limit)

参数	描述
separator	必需。规定在哪里分割字符串。
string	必需。要分割的字符串。
limit	
可选。规定所返回的数组元素的数目。
可能的值:
大于 0 - 返回包含最多 limit 个元素的数组
小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
0 - 返回包含一个元素的数组
<?php
  $cars=array("Volvo","BMW","Toyota");
  echo count($cars);
  //3
?>

语法
count(array,mode);


参数	描述
array	必需。规定数组。
mode	
可选。规定模式。可能的值:
0 - 默认。不对多维数组中的所有元素进行计数
1 - 递归地计数数组中元素的数目(计算多维数组中的所有元素)

说明
count() 函数计算数组中的单元数目或对象中的属性个数。
对于数组,返回其元素的个数,对于其他值,返回 1。如果参数是变量而变量没有定义,则返回 0。
如果 mode 被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数。