PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo substr("1234567", 1, 3);
和
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo substr(123456,1, 3);
是一样的
界说
普通用双引号或单引号标识一个字符串。好比
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$str = "i love u";
$str = 'i love u';
它者二者是有一些区分的。后者将一切单引号的内容城市看成字符处置;前者则否则。好比
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$test = "iwind";
$str = "i love $test";
$str1 = 'i love $test';
echo $str; //将失掉 i love iwind
echo $str1; //将失掉 i love $test
一样的以下两个例子的行动也纷歧样的:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo "i love \test"; // 将失掉 i love est,已将\t视为本义
echo 'i love \test'; // 将失掉 i love \test
也正由于这个缘由,print能使用于复合语句中,而echo不克不及:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
isset($str) or print "str 变量不决义"; // 将输入"str 变量不决义"
isset($str) or echo "str 变量不决义";// 将提醒剖析毛病
echo一次可输入多个字符串,而print则不成以:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo "i ","love ","iwind"; // 将输入 "i love iwind"
print "i ","love ","iwind"; // 将提醒毛病
好比
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo <<< test
i love iwind
test;
要注重的是语句入手下手和停止的两个标签称号是一样的,且后一个标签称号前不克不及有空白,即要顶格写。文档句法输入的内容辨认变量称号和经常使用符号,大致形同双引号的感化。
输入echo,print外,PHP还供应了一些格局化字符串的函数,好比printf,sprintf,vprintf,vsprintf,在这里不作详解。
毗连
两个以上的字符串联接用"."操作符,依字符串的按次构成新的字符串。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$str = "i " . "love " . "iwind";
这里的$str 就是 "i love iwind";字符串。固然,还可使用 .= 操作符:
$str = ""; // 初始化
$str .= "i love iwind";
这里用到了初始化,是由于不决义变量在利用时会发生一个notice毛病,""或null可以复杂地代表空字符串。
长度
PHP供应strlen函数来盘算字符串的长度:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$str = "test";
echo strlen($str); // 将输入 4
有点奇异的是strlen将中日等汉字和全角字符都看成两个或四个长度盘算。好在mbstring或icon两个函数可以匡助处理这个成绩,好比:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$len = iconv_strlen($str, "GBK");
$len = mb_strlen($str, "GBK");
注:mbstring模块供应了大批的对含有多字节字符的字符串的处置函数,保举多加使用,因为这篇文章讲的是字符串入门,所以不盘算具体讲解。
分隔与毗连
PHP答应你把一个字符串依照一个分隔符停止分隔成一个数组,或将一个数组组分解一个字符串。看上面的例子:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$str = "i love iwind";
$array = explode(" ", $str);
下面的explode函数,就把$str字符串按空格字符停止分隔,了局前往一个数组 $array:array("i", "love", "iwind").与explode函数有相似功效的有:preg_split(), spliti(), split()等函数。
与此相反的,implode和join则能把一个数组联合成一个字符串,他们是具有完整不异功效的函数。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$array = array("i", "love", "iwind");
$str = implode(" ", $array);
例中的implode函数将数组$array的每一个元素用空格字符停止毗连,前往一个字符串 $str: "i love iwind".
裁剪
一个字符串首和尾,能够不是你想要的局部,就能够用trim,rtrim,ltrim等函数,分离去除一个字符串两头空格,一个字符串尾部空格,一个字符串首部空格。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo trim(" i love iwind "); // 将失掉 "i love iwind"
echo rtrim(" i love iwind "); // 将失掉 " i love iwind"
echo ltrim(" i love iwind "); // 将失掉 "i love iwind "
其实这三个参数不但可以去除字符串首尾的空格,还可以去除它们的第二个参数指定的字符,如:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo trim(",1,2,3,4,", ","); // 将失掉 1,2,3,4 两头的","号被裁失落了。
有时还会看到有人利用chop这个函数,其实它是rtrim的同义函数。
巨细写
关于英文字母来讲,可以用strtoupper,strtolower将其改变成大写或小写。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo strtoupper("i love iwind"); // 将失掉 I LOVE IWIND
echo strtolower("I LOVE IWIND"); // 将失掉 i love iwind
交换
交换的意义在于将一个字符串的一局部停止改动,使之成为别外一个新的字符串,以知足新的请求。PHP里凡是用str_replace("要交换的内容", "要代替原内容的字符串", "原字符串")停止交换。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo str_replace("iwind", "kiki", "i love iwind, iwind said"); // 将输入 "i love kiki, kiki said"
行将 原字符串中的一切"iwind"都交换成了"kiki".
str_replace是巨细写敏感的,所以对你不克不及假想用 str_replace("IWIND", "kiki",...)交换原字符串中的"iwind".
str_replace还可以完成多对一,多对多的交换,但没法完成一对多的交换:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo str_replace(array("iwind", "kiki"), "people", "i love kiki, iwind said");
将会输入
i love people, people said
第一个参数中的array("iwind", "kiki")都被交换成了"people"
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo str_replace(array("iwind", "kiki"), array("gentle man", "ladies"), "i love kiki, iwind said");
输入 i love ladies, gentle man said 。也就是说第一个数组中的元素被第二个数组中的绝对应的元素交换失落了,假如有一个数组比另外一个数组元素数要少,那末缺乏的城市看成空来处置。
与此有些相似的是strtr,用法请参阅手册,它们的对照请参阅 http://diary.4kiki.net/index.php?action=info&id=372 .
另外,PHP还供应了substr_replace,完成交换一局部的字符串。语法以下:
substr_replace (原字符串, 要替换的字符串, 入手下手交换的地位 [, 交换的长度])
个中,入手下手交换的地位从0入手下手盘算,应当小于原字符串的长度。要交换的长度是可选的。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo substr_replace("abcdefgh", "DEF", 3); // 将输入 "abcDEF"
echo substr_replace("abcdefgh", "DEF", 3, 2); // 将输入 "abcDEFfgh"
第一个例子中,从第三个地位(即"d")入手下手交换,从而把 "defgh"都交换成了“DEF”
第二个例子中,也是从第三个地位(即"d")入手下手交换,但只能交换2个长度,即到e,所以就把"de"交换成了"DEF".
PHP还供应了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数使用正则表达式来完成字符串交换,用法请参考手册。
查找与婚配
PHP里用于查找或婚配或定位的函数十分多,它们都有分歧的意义。这里只讲述用得对照多的strstr,stristr.后者与前者的功效,前往值都一样,只是不辨别巨细写。
strstr("母字符串", "子字符串")用来查找子字符串在母字符串中第一次呈现的地位,并前往母字符串中从子字符串入手下手到母字符串停止的局部。好比
echo strstr("abcdefg", "e"); //将输入 "efg"
假如找不到子字符串,则前往空。由于可以用来判别一个字符串中是不是含有别的一个字符串:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$needle = "iwind";
$str = "i love iwind";
if (strstr($str, $needle))
{
echo "外面有 iwind";
}
else
{
echo "外面没有 iwind";
}
将会输入"外面有 iwind"
HTML相干
1,htmlspecialchars($string)
这是它的最复杂用法,将字符串中的一些特别字符(望文生义)&,',"<,>转换成它们对应的HTML实体模式:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$str = "i love <font color=\"red\">kiki</font>, iwind said.";
echo htmlspecialchars($str);
将会输入
i love <font color="red">kiki</font>, iwind said.
2,htmlentities($string)
将一切能转换成实体模式的字符都转换成实体模式。
3,html_entity_decode($string);
PHP4.3.0今后到场的具有与htmlentities($string)相反的功效。
4,nl2br($string)
将字符串中一切换行符改变成<br /> + 换行符。如:
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
$str = "i love kiki,\n iwind said.";
echo nl2br($str);
将会输入
i love kiki,<br />
iwind said.
加密
加密字符串最经常使用的就是md5了,它将一个字符串转换成一个长32位的独一的字符串。
PHP: [Copy to clipboard]
--------------------------------------------------------------------------------
echo md5("i love iwind"); // 将输入 "2df89f86e194e66dc54b30c7c464c21c"