php字符串比较详细表达

如果str1大于str2的,0如果str1小于str2的&gt,有语言(print 字符串,字符串操作都是一个重要的基础,int strcmp(string str1,string str2)),是字符串的连接符,可以把两个或两个以上的字符串连接成一个字符串

粗略字符串比较operator (==) 就成了。
*/

无论是哪一类语言,字符串操作都是三个最主要的底子,往往是归纳而根本。正像人说话同样,一般有形体(图形分界面),有语言(print 字符串?),鲜明字符串能表达越来越多的事物。PHP提供了多量的字符串操作函数,效能庞大,使用也比较轻松,详细请参见  . 以下将轻易的汇报它的职能和特征。  

动用函数strcmp()函数字符串举行相比

1、字符串的连接符
半角符号“.”是字符串的连接符,能够把两个或两个以上的字符串连接成二个字符串。举个例子:
<?php
$name = “一聚教程网:”;
$url = www.51ebk;
echo $name . $url . “.com”;
?>
 运行结果为:一聚教程网:www.111cn.net
 
2、去除字符串首尾空格和特殊字符
 用户在输入数据时,平日会在无意识中输入多余的空格,在稍微境况下,字符串中不允许出现空格和特殊字符,此时快要去除字符串中的空格和特殊字符。
 
2.1 trim()函数
trim()函数用于去除字符串起始地方以及甘休地方的空格,并重返当前去掉空格后的字符串。
语法格式:string trim(string str [,string charlist]);
trim()函数的参数str是要操作的字符串对象,参数charlist是可选参数,钦赐须要从待定的字符串中去除特定的字符,假如不设该参数,则有所的可选字符都将被剔除。参数charlist的可选值如下:
参数值/说明
    NULL,空值
t    tab,制表符
n   换行符
x0B    垂直制表符
r    回车符
” ”    空格
注:除了以上暗中认可的过滤字符外,也足以在charlist中提供应和需要要过滤的特殊字符
例如:
<?php
$str = “rr(:@_@ 一聚教程网 @_@:)”;
echo trim($str);    //去除字符串左右两侧的空格
echo “<br />”;     //实践换行
echo trim($str, “rr(::)”);  //去除字符串左右两侧的特殊字符rr(::) 
?>
 运维结果:
(:@_@ 一聚教程网 @_@:)
@_@ 一聚教程网 @_@
 
2.2 ltrim()函数
ltrim()函数用于去除字符串侧面的空格大概钦命字符串。
语法格式如下:
string ltrim(string str[, string charlist]);
例如:
<?php
$str = ” (:@_@ 一聚教程网 @_@:) “;
echo ltrim($str);    //去除字符串左边的空格
echo “<br />”;
echo ltrim($str, “(:@_@ “);    //去除字符串侧边的字符@_@:)
?>
运维结果为:
(:@_@ 一聚教程网 @_@:)
一聚教程网 @_@:)
 
2.3rtrim()函数
 rtrim()函数用于去除字符串左边的空格或许钦定字符串。
语法格式如下:
string rtrim(string str[, string charlist]);
例如:
<?php
$str = ” (:@_@ 一聚教程网 @_@:) “;
echo rtrim($str);    //去除字符串侧面的空格
echo “<br />”;
echo rtrim($str, “@_@:) “);    //去除字符串侧面的字符@_@:)
?>
 运维结果为:
(:@_@ 一聚教程网 @_@:)
(:@_@ 一聚教程网

$str1 = “test”;
$str2 = “test”;
if ($str1 == “test”)  echo “ok-1”;  
if ($str1 == $str2)   echo “ok-2”;

弱类型 

int strcmp(string str1,string str2))
参数str1和参数str2制定要比较的四个字符串,假如相等则重临0;如若参数str1大于参数str2则重临值大于0;如果参数str1小于参数str2则重回值小于0。

字符串转义、还原的主意有三种:一种是手动转义、还原字符串数据,另一种是机关转义、还原字符串数据。
1、手动转义、还原字符串数据
字符串能够用单引号(’)、双引号(””)、定界符({})3种情势定义。当使用字符串时,很大概在该字符串中留存这两种标识与PHP脚本混淆的字符,因而必须求做转义语句。那就须求在他前头加转义符号“”。
“”是三个转义字符,紧跟在“”前面包车型地铁字符将变得没有其余意义。
例如:
<?php
    echo “I’m Tom”;
?>
运维结果是:I’m 汤姆。
2、自动转义、还原字符串数据
机关转义、还原字符串数据能够运用PHP提供的addslashes()函数和stripslashes()函数来贯彻。
addslashes()函数用来为字符串参加斜线“”。
stripslashes()函数用来将选用了addslashes()函数转义后的字符串还原。
例如:
<?php
    $str = “I’m Tom”;
    $str2 = addslashes($str);    //对字符串中的特殊字符进行转义
    echo $str2 . “<br />”; 
    echo stripslashes($str2);     //将转义后的字符串苏醒,然后输出
?>
 运行结果:
I’m Tom
I’m Tom
如上多少个函数完成了对点名字符串实行活动转义和回复。除了上边介绍的情势以外,还能够对要转义、还原的字符串实行一定的界定界定,通过行使addcslashes()函数和stripcslashes()函数完毕对点名范围内的字符串进行机动转义、还原。
addcslashes()函数实现转义字符串中的字符,即在钦定的字符串前增加反斜线。
stripcslashes()函数用来将利用addcslashes()函数转义的字符串还原。
例如:
<?php
    $str = “自学PHP就上一聚教程网”;
    $str2 = addcslashes($str, “自学PHP就上一聚教程网”);
    echo $str2 . “<br />”;    //输出转义后的字符串
   echo stripcslashes($str2);    //输出还原后的字符串
?>
运作结果:
327324321247PHP276315311317321247260311315370 
进修PHP就上一聚教程网 

/*
字符串大于或小于相比较,利用了strcmp函数操作,它回到<0如果str1小于str2的>
0,若是str1大于str2的,和0
*/

PHP是弱类型语言,所以任何种类的数量一般能够一贯使用于字符串操作函数里,而自动转换来字符串类型,进行管理,如: 

实例:

长度
PHP提供strlen函数来计量字符串的尺寸:
$str = “test”;
echo strlen($str); // 将输出 4
稍许古怪的是strlen将中国和扶桑等汉字以及全角字符都用作多个或七个长度总计。幸亏mbstring或icon三个函数能够支持化解那个标题,举例:
$len = iconv_strlen($str,
“GBK”);
$len = mb_strlen($str, “GBK”);
注:mbstring模块提供了汪洋的对包括多字节字符的字符串的管理函数,推荐多加运用,由于那篇小说讲的是字符串入门,所以不打算详细表明。
相隔与连接
PHP允许你把贰个字符串根据几个相间符举行分隔成叁个数组,或许将二个数组组合成叁个字符串。看上边包车型客车例子:
$str = “i love iwind”;
$array = explode(” “, $str);
下面的explode函数,就把$str字符串按空格字符举行分隔,结果回到叁个数组
$array:array(“i”, “love”,
“iwind”).与explode函数有周边作用的有:preg_split(), spliti(),
split()等函数。
与此相反的,implode和join则能把叁个数组结合成四个字符串,他们是颇具一模一样成效的函数。
$array = array(“i”, “love”, “iwind”);
$str = implode(” “, $array);
例中的implode函数将数组$array的种种成分用空格字符实行连接,重返二个字符串
$str: “i love iwind”.
裁剪
八个字符串首和尾,恐怕不是您想要的一些,就足以用trim,rtrim,ltrim等函数,分别去除三个字符串两端空格,三个字符串尾部空格,三个字符串首部空格。
echo trim(” i love iwind “); // 将得到 “i love iwind”
echo rtrim(” i love iwind “); // 将得到 ” i love iwind”
echo ltrim(” i love iwind “); // 将得到 “i love iwind”
实质上那多个参数不仅可以够去除字符串首尾的空格,还能去除它们的第二个参数钦赐的字符,如:
echo trim(“,1,2,3,4,”, “,”); // 将获取 1,2,3,4 两端的”,”号被裁掉了。
一时还有可能会看到有人使用chop这几个函数,其实它是rtrim的同义函数。
大小写
对此乌克兰语字母来讲,能够用strtoupper,strtolower将其转换成大写或小写。
echo strtoupper(“i love iwind”); // 将得到 I LOVE IWIND
echo strtolower(“I LOVE IWIND”); // 将得到 i love iwind
比较
一般能够用 !=, ==
相比多个对象是否等于,只所以说是多少个指标,是因为它们不自然全体为字符串,也足以为整型等等。例如
$a = “joe”;
$b = “jerry”;
if ($a != $b)
{
echo “不相等”;
}
else
{
echo “相等”;
}
如果用
!==,===(可以看出多了二个等号)相比较的话,七个指标的花色要严格相等工夫回去true;不然用==,!=则会将字符串自动调换到相应的品类,以便举行相比.
22 == “22”; // 返回 true
22 === “22”; // 返回false
正因为如此,所以大家的顺序时常会生出一些想不到的“意外”:
0 == “我爱你”; // 返回true
1 == “1 我爱你”;// 返回true
PHP里还或者有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(),
strncmp(),它们皆以倘诺前面四个比继任者大,则赶回大于0的整数;假诺后边贰个比后面一个小,则赶回小于0的卡尺头;如若两岸对等,则赶回0.它们相比较的原理与任何语言的条条框框都以一模一样的。
strcmp是用来区分轻重缓急写(即大小写敏感)的字符串相比较:
echo strcmp(“abcdd”, “aBcde”); // 再次回到 1 (>0), 相比较的是 “b”和”B”
strcasecmp用于不区分轻重缓急写的字符串比较:
echo strcasecmp(“abcdd”, “aBcde”); // 重回 -1 (<0),
相比的是”d”和”e”
strncmp用于相比字符串的一部分,从字符串的初始开首比较,第七个参数,为要比较的尺寸:
echo strncmp(“abcdd”, “aBcde”, 3); // 返回 1 (>0), 比较了 abc 和 aBc

$str1 = “test”;  
$str2 = “test”;  
$str3 = “apple”;  
$str4 = “zebra”;   
if (strcmp($str1,$str2) == 0) echo “ok”;  
if (strcmp($str1,”test”) == 0) echo “ok”;  
if (strcmp($str1,$str3) > 0) echo “$str1 > $str3”;  
if (strcmp($str1,$str4) < 0) echo “$str1 < $str4”;

echo substr(“1234567”, 1, 3);  
和 
echo substr(123456,1, 3);  
是完全一样的 

 代码如下

strncasecmp用于不区分轻重缓急写的相比较字符串的一片段,从字符串的初阶开端比较,第八个参数,为要比较的尺寸:
echo strncasecmp(“abcdd”, “aBcde”, 3); // 重回 0, 相比了 abc 和 aBc,
由于不区分轻重缓急写,所以两岸是完全一样的。
还会有一种景况是一味比较字符串大小,达不到我们约定的供给,比方照常理
10.gif 会比 5.gif 大,但只要接纳方面多少个函数,就能回去 -1,即表示
10.gif比5.gif,针对这种状态,PHP提供了几个自然相比的函数strnatcmp,strnatcasecmp:
echo strnatcmp(“10.gif”, “5.gif”); // 返回 1 (>0)
echo strnatcasecmp(“10.GIF”, “5.gif”); // 返回 1 (>0)
替换
轮换的意义在于将一个字符串的一有的开始展览改变,使之造成别外叁个新的字符串,以满意新的必要。PHP里常常用str_replace(“要替换的内容”,
“要代替原内容的字符串”, “原字符串”)进行交流。
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还是能够兑现多对一,多对多的替换,但不可能兑现部分多的交替:
echo str_replace(array(“iwind”, “kiki”), “people”, “i love kiki, iwind
said”);
将会输出
i love people, people said
第贰个参数中的array(“iwind”, “kiki”)都被替换到了”people”
echo str_replace(array(“iwind”, “kiki”), array(“gentle man”, “ladies”),
“i love kiki, iwind said”);
出口 i love ladies, gentle man said
。相当于说第三个数组中的成分被第一个数组中的相呼应的因素交替掉了,假若有贰个数组比另四个数组成分数要少,那么相差的都会当作空来处理。
与此有个别类似的是strtr,用法请参阅手册.
其余,PHP还提供了substr_replace,完结替换部分的字符串。语法如下:
substr_replace (原字符串, 要代表的字符串, 初步轮换的岗位 [,
替换的长度])
内部,开始交替的任务从0起首总结,应该小于原字符串的尺寸。要替换的尺寸是可选的。
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”
比如找不到子字符串,则赶回空。因为能够用来剖断三个字符串中是否包罗别的叁个字符串:
$needle = “iwind”;
$str = “i love iwind”;
if (strstr($str, $needle))
{
echo “里面有 iwind”;
}
else
{
echo “里面未有 iwind”;
}
将会输出”里面有 iwind”

/*
*/

定义 

<?php
$str1=”a”;    //定义字符串常量
$str2=”b”;    //定义字符串常量
$str3=”ccc”;          //定义字符串常量
$str4=”CCC”;          //定义字符串常量
echo strcmp($str1,$str2);//这七个字符串相等
echo strcmp($str3,$str4);//注意该函数区分轻重缓急写
?>

字符串删除操作

$str1 = “test”;  
$str2 = ”  test     “;   
if ($str1 == $str2) echo “ok-1”;  
if ($str1 == trim($str2)) echo “ok-2”;  
if (strcmp($str1,$str2) == 0) echo “ok-3”;  
if (strcmp($str1,trim($str2)) == 0) echo “ok-4”;

貌似用双引号或单引号标记一个字符串。例如 

注意:该函数区分字母大小写。

是如此的

$str = “i love u”;  
$str = ‘i love u’;  

运用==举行比较

$result = mysql_query($sql);
$string = ‘{“array”:[‘;
while($row = mysql_fetch_array($result)){
$string .= ‘{“id”:”‘.$row[‘id’].'”},’;
}
$string = substr($string,0,-1);
$string .= ‘]}’;
$string = substr($string,0,-1) 那行代码的乐趣是,对$string
进行裁剪,从第 0 位伊始,到尾数第贰个。

它者两个是有一对区分的。后面一个将整个单引号的剧情都会作为字符管理;前者则不然。举例 

 代码如下

这么的结果是,如若sql查询后有结果集的话,没难题,但是如若结果集为 空
的话,字符串就形成了{“array”:]}
,数组被破坏了。想经过决断结果集是不是为空来管理,可是 使用 empty($result)
并未用,因为那几个结果集是还是不是为空,须要用 mysql_fetch_array()
来决断。所以扩大$result 为空的论断退步了。

$test = “iwind”;  
$str = “i love $test”;  
$str1 = ‘i love $test’;  
echo $str; //将得到 i love iwind  
echo $str1; //将得到 i love $test  

$a = “joe”;
$b = “jerry”;
if ($a != $b)
{
    echo “不相等”;
}
else
{
    echo “相等”;
}

那别的贰个化解办法便是从字符串上入手了。笔者的主见是,我想删除最终多个字符,但是它必须满足有个别条件,举个例子最后二个字符是
‘,’ ,看php 的api 上,有如此三个方法 rtrim() ,trim()
正是剔除一些特别字符用的,rtrim()
是只对字符串的左侧操作。把代码改成上面就OK了。

一律的以下八个例子的作为也不雷同的: 

更加多详细内容请查看:

$string = rtrim($string,’,’);
PHP 提供的字符串操作的 API 依然相比丰裕的。

echo “i love test”; // 将赢得 i love est,已经将t视为转义  
echo ‘i love test’; // 将得到 i love test  

字符串调换到数组

之所以得以简简单单认为双引号里的剧情是通过“解释”过的,单引号的是“所见即所得”的(特殊地,”会被认作贰个”)。总来说之,双引号方式的更是灵活一些,当然单引号会适用于有些出奇的地方,这里就不作解说了。 

By 新一 | 2013 年 6 月 28 日 0 Comment
前几日在php论坛中看到感觉朋友发了一个帖子请教php怎样把字符串调换来数组;作为php技术员的新一先是反应是联想到explode(),implode()那多少个函数。新一也是用当中的函数举行转形成数组的。

输出 

澳门京葡网站,con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&selt[3]=4

PHP里的出口最常用的是echo,print.两者都不是的确的函数,而是语言构造,所以调用时没有须要用双括号(比方 

&con[4]=30&selt[4]=2&con[5]=4&selt[5]=1&con[6]=11&con[7]=12
上面就是网上朋友供给转变来PHP数组的字符串;下边也是新一提供PHP调换代码

echo(“test”);print(“test”)).在输出的时候两侧都能够兑现赋值: 
echo $str=”test”; //一方面输出test,一方面把”test”赋给字符串变量 $str  
print $str=”test”;  

新一的PHP代码也得以化解字符串转产生数组的难点。最终phper网民应该在手册上面查到了parse_str()函数就可以把字符串转变来PHP数组;上边介绍一下parse_str()函数的认证让投机在脑力中好有影像.
 parse_str() 函数把询问字符串剖析到变量中。

二者除了名字不平等外,依然有别的不同的。print具备重回值,平昔重回1,而echo未有,所以echo比print要快一些: 

parse_str(string,array)
string:要求转移的字符串;
array:重回到贰个数组中;
一经未有设置array的话就覆盖同名变量

$return = print “test”;  
echo $return; // 输出1  

也正因为那个缘故,print能选用于复合语句中,而echo不可能: 

isset($str) or print “str 变量未定义”; // 将出口”str 变量未定义”  
isset($str) or echo “str 变量未定义”;// 将唤起深入分析错误  

echo三遍可输出多少个字符串,而print则无法: 
echo “i “,”love “,”iwind”; // 将输出 “i love iwind”  
print “i “,”love “,”iwind”; // 将唤起错误 

echo,print还是能输出被称作“文档句法”的字符串,句法如: 
echo <<< 标具名称  
…  
字符串内容  
…  
标签字称;  
比如  

echo <<< test  
i love iwind  
test;  

要专注的是语句最先和竣事的三个标签名称是一律的,且后二个标具名称前不能够有空白,即要顶格写。文档句法输出的内容识别变量名称和常用符号,大约形同双引号的效应。 

输出echo,print外,PHP还提供了一部分格式化字符串的函数,比如printf,sprintf,vprintf,vsprintf,在此处不作详解。 
连接