PHP中用到的一些字符串函数

时间:2023-11-10 20:31:32

/*常用的字符串输出函数
  *
  * echo()   输出字符串
  * print()  输出一个或多个字符串
  * die()  输出一条信息,并退出当前脚本
  * printf()  输出格式化字符串
  * sprintf()  把格式化的字符串写入到一个变量中
  *
  */
 
 #ucfirst 
 #将字符串中的首字母转换为大写
 $str="string";
 echo ucfirst($str);
 echo "<hr><br/>";

#ucwords()
 #将字符串中的每个单词的首字母大写

$ucword="hello everyone!";
 echo ucwords($ucword);
 echo "<hr><br/>";

#ltrim() rtrim() trim()
 #去除空格
 $str="123 This is a test.....";
        echo ltrim($str,"0..9")."<br/>";      #去除左侧的数字 
 echo rtrim($str,".")."<br/>";
 echo trim($str,"0..9A..Z.")."<br/>";     #去除字符串两端的大写字母,数字还有.

#HTML相关的字符串格式化函数
 #nl2br()
 #将字符串中的\n转换为"<br/>"
 $str="this is \n  hello world";
 echo nl2br($str).'<br/>';

#htmlspecialchars()
 #将html标记以字符的形式显示,不进行解释
 $str="<b>hello world</b>";
 echo $str."<br/>";
 echo htmlspecialchars($str);
 echo "<hr><br/>";

#addcslashes
 #添加反斜线
 $str=addcslashes("foo[]","A..z");
 echo $str."<br/>";
 echo addcslashes("zoo['.']",'A..z')."<br/>";

#convert_uuencode()
 #利用uudecode的方法对字符串进行编码
 $string="hello world";
 $str= convert_uuencode($string);
 echo $str."<br/>";
 echo convert_uudecode($str)."<br/>";

#html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' ]] )
 #与htmlentities方法相反,将进行编码后的html字符转换为浏览器能够编译的形式

$a="I want a bright <b>future</b>";
 $b= htmlentities($a)."<br/>";
 echo $b;
 echo html_entity_decode($b);
 echo "<hr><br/>";
 #htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )
 #与htmlspecialchars函数相反,将HTML实体转换为字符
 $c=htmlspecialchars($a);
 echo $c."<br/>";
 echo htmlspecialchars_decode($c)."<br/>";
 echo "<hr><br/>";

#lcfirst ( string $str )
 #将字符串的首字符小写
 $str="Hello World";
# echo lcfirst($str)."<br/>";

#md5_file ( string $filename [, bool $raw_output = false ] )
 #对文件进行md5加密
 #

$string="password";
 $str=md5($string);
 if($str=="5f4dcc3b5aa765d61d8327deb882cf99"){
  echo "The password is right <br/>";
 }

#parse_str ( string $str [, array &$arr ] )
 #将一个字符串进行解析,解析成变量和数组的形式

$str = "first=value&arr[]=foo+bar&arr[]=baz";
 parse_str($str,$input);
 print_r($input);
 echo "<hr><br/>";

#string sha1_file ( string $filename [, bool $raw_output = false ] )
 #计算文件的散列值

foreach(glob("C:/lamp/appache2/htdocs/*.php") as $ent){
  if(is_dir($ent)){
   continue;
  }
  echo $ent."(SHA1:".sha1_file($ent).")<br/>";
 }
 echo "<hr><br/>";

#int similar_text ( string $first , string $second [, float &$percent ] )
 #计算两个字符串的相似度,通过引用方式传递第三个参数,similar_text() 将
 #计算相似程度百分数。

$string1="rogerzhalili";
 $string2="zhangjieroger";
 if(similar_text($string1,$string2,$percent)){
  echo $string1." and ".$string2." has the similarity of:".$percent."<br/>";
 }
 echo "<hr><br/>";

#string str_shuffle ( string $str )
 #打乱一个字符串
 $string="I want you to solve this problem";
 echo str_shuffle($string)."<br/>";

#array str_split ( string $string [, int $split_length = 1 ] )
 #按照指定的长度对字符串进行分割
 $arr=str_split($string,3);

#str_word_count ( string $string [, int $format = 0 [, string $charlist ]] )
 #统计字符串中单词的数量
 echo "<hr><br/>";

#int strripos ( string $haystack , string $needle [, int $offset = 0 ] )
 #以不区分大小写的方式查找指定字符串在目标字符串中最后一次出现的位
 #置。与 strrpos() 不同,strripos() 不区分大小写。
 #offset用于指定从那个位置开始查找

$haystack='ababcd';
 $needle='Ab';
 echo "the last".$needle."postion is:".strripos($haystack,$needle)."<br/>";
 echo strrpos($haystack,'ab');
 echo "<hr><br/>";
 
 #string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
 #返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结
 #尾的字符串。 该函数区分大小写。如果想要不区分大小写,请使用
 #stristr()。

$a="the First test";
 $needle="Fi";
 echo strstr($a,$needle)."<br/>";
 if($c=strstr($a,"Fio")){
  echo "find".$c."<br/>";
 }
 else
 {
  echo "not find the string!<br/>";
 }
 echo "<hr><br/>";

#int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )
 #查找$needle子字符串在$haystack中出现的次数,$needle区分大小写

$hay="la la wa la wa wa lala";
 echo substr_count($hay,"la")."<br>";

#int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
 #正则匹配,将匹配后的结果存放到$matches(如果指定了$matches的话)

preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
  "Call 555-1212 or 1-800-555-1212", $phones);
 echo "<pre>";
 print_r($phones);
 echo "</pre>";
 echo "<hr><br/>";
 #preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
 #搜索subject中匹配pattern的部分, 以replacement进行替换.

$string = 'April 15, 2003';
 $pattern = '/(\w+) (\d+), (\d+)/i';
 $replacement = '${1}1,$3';
 echo preg_replace($pattern,$replacement,$string);
 echo "<hr><br/>";

#array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
 #通过一个正则表达式分隔给定字符串.

$str = 'string';
 $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
 print_r($chars);