<?php
//==================字符串处理函数=======================
//---------------------字符串截取------------------------
	//字符串截取
	echo substr("String",2,4);//从第二个开始截取四个字符
	
	//将字符串视为数组
	$str="abcdefg";
	//输出为c
	echo $str{2};
	echo $str[2];
	//----------------------------------------------------
	//---------------------输出函数-----------------------
	echo();
		echo "aaa","bbb","ccc";
	die();
		die("aaa");
		exit("aaa");//相同
		fopen("Hello.txt","r")or die("打开文件失败");
	print();
	//格式化输出
	printf();
		%%			//按百分比输出
		%b			//按二进制输出
		%c			//按字符输出
		%s			//按字符串输出
		%d			//按整数输出
		%f			//按浮点数输出
		%o			//按八进制输出
		%x			//按十六进制输出
		printf("%s---%s",$str,$str1);
	//格式化字符串并返回
	sprintf();
		$string=sprintf("%s---%s",$str,$str1);
		echo $string;
	//----------------------------------------------------
	//-----------------------删除内容--------------------
	//删除空格
	$str="   abc   ";
	trim($str);				//去除两边空格
	ltrim($str);			//去除左边空格
	rtrim($str);			//去除右边空格
	//删除特定字符
	$str="123abc456  ";
	trim($str,'1');			//删除两边边的1
	trim($str,'0..9');		//删除两边的0到9
	trim($str,'0..9 .');		//删除两边的0到9,空格,点
	
	//----------------------------------------------------
	//-------------------补充内容------------------------
	$str="abc";
	echo "<pre>";
	echo str_pad($str,10);	//补充10个字符(默认在右边填充空格)
	echo str_pad($str,10,"--","STR_PAD_BOTH");//右边补充
	echo str_pad($str,10,"--","STR_PAD_LEFT");	//左边补充
	echo "</pre>";
	//----------------------------------------------------
	//------------------大小写有关函数-------------------
	strtolower("HELLO");	//将字符串转换为小写
	strtoupper("hello");		//将字符串转换成大写
	ucfirst("hello");			//将首字母转换成大写
	ucwords("hello how");	//每个单词首字母都大写
	//----------------------------------------------------
	//--------------------自动换行-----------------------
	//自动在换行处添加换行
	$str="abc
	def";
	echo nl2br($str);
	/*输出为:
	abc
	def	*/
	//----------------------------------------------------
	//----------------------输出原形---------------------
	//将输入的html转换输出原形
	<input type="text" name="str" size="30">
	<input type="submit" value="提交">
	//接收表单内容
	echo $_GET["str"]."<br>";
	echo htmlspecialchars($_GET["str"])."<br>";
	//将输出中的反斜杠去掉
	echo stripslashes($_GET["str"])."<br>";
	//删除html标签
	echo strip_tags($_GET["str"])."<br>";
	//第二个参数位想要保留的标签
	echo strip_tags($_GET["str"],"<p><h1>")."<br>";
	//----------------------------------------------------
	//-------------------格式化货币----------------------
	//通过千位分组的方式格式化货币
	$price="123456.789";
	//默认取整
	echo number_format($price);//输出为:123,456
	//参数:数字,保留小数位数,小数点符号,千位分组符号
	echo number_format($price,"2",",",".");//输出为:123,456
	//----------------------------------------------------
	//--------------------字符串反转---------------------
	$str="How are you";
	echo $str."<br>";
	echo strrev($str)."<br>";//输出为:uoy era woH
	//----------------------------------------------------
	//----------------------加密--------------------------
	md5();			//对字符串加密
	md5_file();		//对文件加密
	//----------------------------------------------------
	//----------------------------------------------------
	//按字节比较字符串
	strcmp($str1,$str2);
		$str1==$str2	0
		$str1 < $str2		1
		$str1 > $str2		-1
	//登陆验证
	$username="Admin";
	$password="howareyou";
	if(strcmp($username,"admin")==0){
		echo "user exists";
	}else{
		echo "user is not exists";
	}
	//使用方法同上,但对大小写不敏感
	strcasecmp();
	//按自然数排序比较字符串
	strnatcmp();
	echo strnatcmp("2Hello","10Hello");	//-1
	echo strnatcmp("10Hello","2Hello");	//1
	/*
	//按音序排序
	Array(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
	)
	//按自然数排序
	array(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
	)*/

//----------------------字符串分割-----------------------
//------------------------split()-------------------------
	$date = "08/30/2006";	
	//按正则分割
	$arr= split("//.-/", $date);
	$arr= split("//.-/", $date,3);
	//按字符分割
	$arr= split("/", $date,3);
	
	//返回数组
	/*Array
	(
		[0] => 08
		[1] => 30
		[2] => 2006
	)*/

//========================================================
//----------------------字符串替换-----------------------
	$arr1 = array('one','two');		//被替换
	$arr2 = array('一','二');		//替换为
	$str = "onetwothreefourfivesixseveneightnineten";
	echo str_replace($arr1,$arr2,$str);

//--------------------------------------------------------
//--------------------替换字符串的子串-------------------
	echo substr_replace();
	/* 这两个例子使用 "bob" 替换整个 $var。*/
	echo substr_replace($var, 'bob', 0);
	echo substr_replace($var, 'bob', 0, strlen($var));
	/* 将 "bob" 插入到 $var 的开头处。*/
	echo substr_replace($var, 'bob', 0, 0);
	/* 下面两个例子使用 "bob" 替换 $var 中的 "MNRPQR"。*/
	echo substr_replace($var, 'bob', 10, -1);
	echo substr_replace($var, 'bob', -7, -1);
	/* 从 $var 中删除 "MNRPQR"。*/
	echo substr_replace($var, '', 10, -1);
//========================================================
//--------------------------------------------------------

//========================================================
//--------------------------------------------------------

//========================================================
//--------------------------------------------------------

//========================================================
//--------------------------------------------------------

//========================================================
//--------------------------------------------------------


//========================================================
//------------------查找字符位置函数---------------------

	strpos($str,search,[int])// 查找search在$str中的第一次出现的位置从int开始;
	
	stripos($str,search,[int])
	
	strrpos($str,search,[int])//查找search在$str中的最后一次出现的位置从int开始;
	
//========================================================
//---------------------提取子字符函数(双字节)----------
	submit($str,int start[,int length])//从$str中strat位置开始提取[length长度的字符串]。
	
	strstr($str1,$str2)//从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。
	
	stristr()//功能同strstr,只是不区分大小写。
	
	strrchr()//从最后一次搜索 到的字符处返回;用处:取路径中文件名

//========================================================
//------------------------替换字符串---------------------
	str_replace(search,replace,$str)//从$str中查找search用replace来替换

	str_irreplace(search,replace,$str)

	strtr($str,search,replace)//这个函数中replace不能为"";

//========================================================
//-----------------------获取字符长度--------------------
	int strlen($str)
//========================================================
//-----------------------比较字符函数--------------------

	int strcmp($str1,$str2)     $str1>=<$str2分别为1,0,-1
	
	int strcasecmp()		//同上(不分大小写)

	strnatcmp("4","14")	//按自然排序比较字符串
	
	strnatcasecmp()		//同上,(区分大小写)
//========================================================
//-----------------------分割成数组函数------------------

	str_split($str,len)		//把$str按len长度进行分割返回数组
	
	split(search,$str[,int])	//把$str按search字符进行分割返回数组int是分割几次,后面的将不分割
	
	$arr=explode("/",$str)	//按/分割字符串返回数组

//========================================================
//------------------------加空格函数---------------------

	chunk_split($str,2)		//向$str字符里面按2个字符就加入一个空格;
	
//========================================================
//--------------------------------------------------------
	chr、ord//返回指定的字符或ascii
//========================================================
//----------------------HTML代码有关函数-----------------

	nl2br()			//使\n转换为<br>。

	strip_tags($str[,'<p>'])		//去除HTML和PHP标记在$str中所有HTML和PHP代码将被去除;
								//可选参数为html和PHP代码,作用是将保留可选参数所写的代码。
	如:echo strip_tags($text, '<br><p>');


	htmlspecialchars($str[,参数])//页面正常输出HTML代码   参数是转换方式
//========================================================
//--------------------字符大小写转换函数-----------------

	strtolower($str)		//字符串转换为小写
	
	strtoupper($str)		//字符串转换为大写
	
	ucfirst($str)			//将函数的第一个字符转换为大写
	
	ucwords($str)		//将每个单词的首字母转换为大写
//========================================================
//------------------------数据库相关函数-----------------

	addslashes($str)			//使str内单引号(')、双引号(")、反斜线(\)与 NULL字符串转换为\',\",\\。
	
	magic_quotes_gpc = On	// 自动对 get post cookie的内容进行转义

	get_magic_quotes_gpc()	//检测是否打开magic_quotes_gpc

	stripslashes()			//去除字符串中的反斜杠
//========================================================
//-------------------------连接函数-----------------------

	implode(str,$arr) //将字符串数组按指定字符连接成一个字符串;implode()函数有个别名函数join

//----------------------------------------------------
chunk_split//(字符串,每个字符串的长度,字符串的间隔符)		
				//把字符串分割为一连串更小的部分
//----------分割合并字符串---------------------------
implode("/",$str) 		//把数组元素组合为一个字符串
explode("/",$str) 		//函数把字符串分割为数组
//----------获取数组长度-----------------------------
count();
//----------------------------------------------------
strlen			//返回字符串长度
				//1.可统计数组中所有字符串长度
//----------------------------------------------------
strpos()		//返回字符串在另一个字符串中第一次出现的位置
				//1.大小写不敏感
//----------------------------------------------------
stripos() 		//返回字符串在另一个字符串中第一次出现的位置
				//2.大小写敏感
//----------------------------------------------------
substr_replace()//把字符串的一部分替换为另一个字符串
//----------------------------------------------------
substr()		//返回字符串的一部分,截取字符串
//----------------------------------------------------
strtr()
	/*strtr(字符串,要替换的,替换为的)

				转换字符串中特定的字符
				1.区分大小写
				2.不可替换为空字符
	strtr(字符串,数组)
				将数组的键名改为键值*/
//----------------------------------------------------
str_replace//(要替换的字符串,替换为字符,在哪个字符串)
				/*使用一个字符串替换字符串中的另一些字符
				1.不区分大小写
				2.可替换为空格
				str_replace("要替换的旧内容", "要取代原内容的新字符", $被替换内容的变量名)
				str_replace(array('旧1','旧2','旧3'), array('新1','新2','新3'), $被替换内容的变量名)
				str_replace(array('旧1','旧2','旧3'), '新内容', $被替换内容的变量名)*/
//----------------------------------------------------
trim()
	/*trim(检查的字符串,[删除的字符默认以下全部])
				去除字符串两边的字符
				"\0"	NULL
				"\t" 	tab
				"\n" 	new line
				"\x0B"	纵向列表符
				"\r" 	回车
				" " 		普通空白字符
	trim(检查的字符串,[指定删除的字符])*/


addcslashes()		//在指定的字符前添加反斜杠。 4 
addslashes()		//在指定的预定义字符前添加反斜杠。 3 
bin2hex()			//把 ASCII 字符的字符串转换为十六进制值。 3 
chop()				//rtrim()的别名。 3 
chr()				//从指定的 ASCII 值返回字符。 3 
chunk_split()		//把字符串分割为一连串更小的部分。 3 
convert_cyr_string()//把字符由一种 Cyrillic 字符转换成另一种。 3 
convert_uudecode()	//对 uuencode 编码的字符串进行解码。 5 
convert_uuencode()	//使用 uuencode 算法对字符串进行编码。 5 
count_chars()		//返回字符串所用字符的信息。 4 
crc32()			//计算一个字符串的 32-bit CRC。 4 
crypt()				//单向的字符串加密法 (hashing)。 3 
echo()				//输出字符串。 3 
explode()			//把字符串打散为数组。 3 
fprintf()			//把格式化的字符串写到指定的输出流。 5 
get_html_translation_table()//返回翻译表。 4 
hebrev()				//把希伯来文本从右至左的流转换为左至右的流。 3 
hebrevc()				//同上,同时把(\n) 转为 <br / > 3 
html_entity_decode()	//把 HTML 实体转换为字符。 4 
htmlentities()			//把字符转换为 HTML 实体。 3 
htmlspecialchars_decode()// 把一些预定义的 HTML 实体转换为字符。 5 
htmlspecialchars()*	//将HTML代码原样输出在页面上
implode()			//把数组元素组合为一个字符串。 3 
join()				//implode()的别名。 3 
levenshtein()		//返回两个字符串之间的 Levenshtein 距离。 3 
localeconv()		//返回包含本地数字及货币信息格式的数组。 4 
ltrim()				//从字符串左侧删除空格或其他预定义字符。 3 
md5()				//计算字符串的 MD5 散列。 3 
md5_file()			//计算文件的 MD5 散列。 4 
metaphone()		//计算字符串的 metaphone 键。 4 
money_format()	//把字符串格式化为货币字符串。 4 
nl_langinfo()		//返回指定的本地信息。 4 
nl2br()				//在字符串中的每个新行之前插入 HTML 换行符。 3 
number_format()	//通过千位分组来格式化数字。 3 
ord()				//返回字符串第一个字符的 ASCII 值。 3 
parse_str()			//把查询字符串解析到变量中。 3 
print()				//输出一个或多个字符串。 3 
printf()			//输出格式化的字符串。 3 
quoted_printable_decode()	//解码 quoted-printable 字符串。 3 
quotemeta()		//在字符串中某些预定义的字符前添加反斜杠。 3 
rtrim()				//从字符串的末端开始删除空白字符或其他预定义字符。 3 
setlocale()			//设置地区信息(地域信息)。 3 
sha1()				//计算字符串的 SHA-1 散列。 4 
sha1_file()			//计算文件的 SHA-1 散列。 4 
similar_text()		//计算两个字符串的匹配字符的数目。 3 
soundex()			//计算字符串的 soundex 键。 3 
sprintf()			//把格式化的字符串写写入一个变量中。 3 
sscanf()			//根据指定的格式解析来自一个字符串的输入。 4 
str_ireplace()		//替换字符串中的一些字符。(对大小写不敏感) 5 
str_pad()			//把字符串填充为新的长度。 4 
str_repeat()		//把字符串重复指定的次数。 4 
str_replace()		//替换字符串中的一些字符。(对大小写敏感) 3 
str_rot13()			//对字符串执行 ROT13 编码。 4 
str_shuffle()		//随机地打乱字符串中的所有字符。 4 
str_split()			//把字符串分割到数组中。 5 
str_word_count()	//计算字符串中的单词数。 4 
strcasecmp()		//比较两个字符串。(对大小写不敏感) 3 
strchr()			//搜索字符串在另一字符串中的第一次出现。strstr()		//的别名 3 
strcmp()			//比较两个字符串。(对大小写敏感) 3 
strcoll()			//比较两个字符串(根据本地设置)。 4 
strcspn()			//返回在找到任何指定的字符之前,在字符串查找的字符数。 3 
strip_tags()		//剥去 HTML、XML 以及 PHP 的标签。 3 
stripcslashes()		//删除由 addcslashes()		//函数添加的反斜杠。 4 
stripslashes()		//删除由 addslashes()		//函数添加的反斜杠。 3 
stripos()			//返回字符串在另一字符串中第一次出现的位置(大小写不敏感) 5 
stristr()			//查找字符串在另一字符串中第一次出现的位置(大小写不敏感) 3 
strlen()			//返回字符串的长度。 3 
strnatcasecmp()	//使用一种“自然”算法来比较两个字符串(对大小写不敏感) 4 
strnatcmp()		//使用一种“自然”算法来比较两个字符串(对大小写敏感) 4 
strncasecmp()		//前 n 个字符的字符串比较(对大小写不敏感)。 4 
strncmp()			//前 n 个字符的字符串比较(对大小写敏感)。 4 
strpbrk()			//在字符串中搜索指定字符中的任意一个。 5 
strpos()			//返回字符串在另一字符串中首次出现的位置(对大小写敏感) 3 
strrchr()			//查找字符串在另一个字符串中最后一次出现的位置。 3 
strrev()			//反转字符串。 3 
strripos()			//查找字符串在另一字符串中最后出现的位置(对大小写不敏感) 5 
strrpos()			//查找字符串在另一字符串中最后出现的位置(对大小写敏感) 3 
strspn()			//返回在字符串中包含的特定字符的数目。 3 
strstr()			//搜索字符串在另一字符串中的首次出现(对大小写敏感) 3 
strtok()			//把字符串分割为更小的字符串。 3 
strtolower()		//把字符串转换为小写。 3 
strtoupper()		//把字符串转换为大写。 3 
strtr()				//转换字符串中特定的字符。 3 
substr_compare()	//从指定的开始长度比较两个字符串。 5 
substr_count()		//计算子串在字符串中出现的次数。 4 
substr_replace()	//把字符串的一部分替换为另一个字符串。 4 
trim()				//从字符串的两端删除空白字符和其他预定义字符。 3 
ucfirst()			//把字符串中的首字符转换为大写。 3 
ucwords()			//把字符串中每个单词的首字符转换为大写。 3 
vfprintf()			//把格式化的字符串写到指定的输出流。 5 
vprintf()			//输出格式化的字符串。 4 
vsprintf()			//把格式化字符串写入变量中。 4 
wordwrap()		//按照指定长度对字符串进行折行处理。 4