编程10000问 2019-03-27
代码如下:
<?php $str = 1; echo $str .= ""; //数字转化为字符串再合并,结果:"1"。 echo "<br>"; echo $str += "1元"; //字符串转化为数字再相加,如"1XXX"转化为数字1,结果: 2。 echo "<br>"; ?>
代码如下:
<?php $str="12345ABc"; echo strtolower($str);//变小写,结果:"12345abc"。 echo "<br>"; echo strtoupper($str);//变小写,结果:"12345ABC"。 echo "<br>"; ?>
代码如下:
<?php $str = "字符串2"; echo mb_strlen($str, "UTF-8"); //返回字符串长度的函数,第二个参数是编码,由于页面用UTF-8编码,所以为这样。如果省去,返回内存占用的字节数(ASCII),即10。结果4 echo "<br>"; echo mb_substr($str, 1, 2, "UTF-8"); //返回字符截取,1为从”符”地址开始截取,2为截取2个"UTF-8"编码的字符,结果:“符串”。 echo "<br>"; /** * 知识点:现在开始接触函数了,每个函数都有()作为堆栈调用,()里面放0个或多个参数,可以自定义可以有默认值。而关键字比如echo是没有()的。 * 很多书用GB2312编码,取长度和子串时很麻烦。下面给大家参考一下不用上面的mb中文字符串扩展库实现原理: */ function my_mb_strlen($str, $code = "UTF-8") // 定义一个新函数,$str是必须传入的参数。 {$num= 0; if ($code == "UTF-8") { $str = iconv("UTF-8", "GB2312", $str); //转化为GB2312编码,ord函数返回对应的ASCII值判断每个字节该中文字符是否结束。 for($i = 0;$i < strlen($str);$i++) // 在此strlen($str)返回内存占用的字节数相当于mb_strlen($str) { if (ord($str[$i]) > 0xa0)$i++; //$str[$i]对应内存的i字节。如果直接用UTF-8判断会复杂些,因为编码的多样性UTF-8是网页常用编码,UTF-16(Unicode)是windows编码。 $num++; } } else { $num = "编码未实现"; } //有兴趣的自己查资料吧 return $num; } echo my_mb_strlen($str) . ";" . my_mb_strlen($str, "GB2312") . "<br>"; //该页编码用UTF-8,你却说传入的字符串3是GB2312,就算函数实现了也无法正确的。 ?>
代码如下:
<?php $str = "字符串4"; echo mb_strpos($str, '串4', 0, "UTF-8"); //查找从0开始找到的第一个子字符串位置,结果:2。如果查找不到,返回空(="");如果最后两个参数不要,返回6。 echo "<br>"; echo mb_strstr($str, '串', 0, "UTF-8"); //截取从0开始找到的第一个子字符串至结尾,结果:"串4"。如果查找不到,返回空(="");如果最后两个参数不要,返回相同=strstr($str,'串')。 echo "<br>"; echo str_replace("4", "不是4", $str) ; //字符串替换,结果: "字符串不是4"。 echo "<br>"; ?>
代码如下:
<?php $str=" 字符串5 "; echo $str=trim($str);//去除两边空格,结果:"字符串5"。 echo "<br>"; echo "color=\"red\"";//\手工转义里面的'、"、\,使之存储到内存,结果"color="red"" echo "<br>"; $str="<br>123"; echo htmlentities($str) ; //字符串转义<>&'"避免和html标识冲突,使之能在html浏览器端显示出来,结果:"<br>123"。 echo "<br>"; ?>