PHP---字符串操作

</pre><pre name="code" class="php"><?php
//查找
/* 字串查找:strpbrk
 * 首次出现的位置 strpos return(int 0--start)
* 最后一次出现 strrchr
*/
echo "<br>-------字串查找--strpbrk--------<br>";
echo strpbrk('abab', 'b').'<br>';           //bab
echo strpos('abab', 'a').'<br>';            //0
echo strrchr('abab', 'a').'<br>';           //ab

/* 字串比较
 * int strncmp(string str1,str2[,int len])
* str1>str2 正 1
* str1=str2 0
* str1<str2 负 -1
* len 从左(1)至右位子对比
* strcasecmp(),strncasecmp(),strnatcasecmp(),strstr(),natsort() and natcasesort()
*/


echo "<br>-------定位字符--strpos--------<br>";
$str = 'abcd@yahoo.com';
echo strpos($str, '@');                        //4
echo substr($str, 0,strpos($str,'@')).'<br>';         //abcd

echo "<br>-------字串重复--str_repeat--------<br>";
echo str_repeat("aabb", 2).'<br>';              //aabbaabb


echo "<br>-------字串出现的次数--substr_count--------<br>";
echo substr_count("aabb", 'a')."<br>";

echo "<br>-------字串比较--strncmp--------<br>";
echo strcmp("aaa", "bbb")."<br>";           //-1
echo strncmp("aaa", "abb",1)."<br>";               //0

//strstr 匹配开始至尾
echo strstr("aaa@yahoo.com","@")."<br>";          //@yahoo.com
//third parm(true print: left;false print:right)
echo strstr("aaa@yahoo.com", "@",true);          //aaa
echo strstr("aaa@yahoo.com", "@",false);         //@yahoo.com



/* trim,ltrim,rtrim,chop(同trim) 去除空格和其他特殊符号
 * string trim(string str[,string charlist])
 * 缺省默认:空格(" ")、制表符(\t)、换行符(\n)、回车符(\r)、空值(\0)
 * 用“..”通过第2个参数指定需要去除一个范围内的字符,如“a..d”指去掉ASCII码值介于a和d之间的字符
 */
echo "<br>-------去除空格和其他特殊符号--trim,ltrim,rtrim,chop(同trim)--------<br>";
$str = '.3去除空格和其他特殊符号圳6.6';
echo trim($str,', .')."<br>";                   //3去除空格和其他特殊符号圳6.6
echo trim($str,'0..9')."<br>";                  //.3去除空格和其他特殊符号圳6.

echo "<br>-------加入和去除反斜杠--addcslashes--------<br>";
$str = "this is 加入和去除反斜'杠";
$stri =  addcslashes($str, "'")."<br>";             
echo $stri;                                      //this is 加入和去除反斜\'杠
echo addcslashes($str, "th")."<br>";             //\t\his is 加入和去除反斜'杠

echo stripcslashes($stri);                       //去掉所有反斜杠


/* 分解字符串
 * array split(string pattern,string str[,int limit])
 * pattern 为分解标识符号,str 为操作原始串,limit 返回串个数的最大值
*/
echo "<br>-------分解字符串--split--------<br>";
$date = date("Y-m-d H:i:s");
list($y,$m,$d,$h,$i,$s) = split('[- :]', $date);
echo "$y 年$m 月 $d 日 $h 时 $i 分$s 秒<br>";



/* 格式化字符串
 * string sprintf(string format,mixed[args]...)
 * 常格式化数据的函数还有:printf(),sscanf(),fscanf()从文件中格式化输入,vsprintf() and number_format();
 */
echo "<br>-------格式化字符串--sprintf--------<br>";
$name = '小王';
$money = 100.5;
echo sprintf("name: %s,money: %01.2f",$name,$money);
printf("%d", "2014");           //2014
printf("%d", "2,014");          //2
printf("%d", ",2014");          //0

echo "<br>-------大小写转换----------<br>";
$str = 'aa bb CC';
echo strtolower($str)."<br>";        //aa bb cc
echo strtoupper($str)."<br>";        //AA BB CC
echo ucfirst($str)."<br>";           //Aa bb CC
echo ucwords($str)."<br>";           //Aa Bb CC



/* 
 * substr从左(0)到右
 */
echo "<br>-------字串获取(截获)--substr--------<br>";
$date = date("Y-m-d H:i:s");                     //2014-06-04 15:21:50
echo substr($date, 1)."<br>";                   //014-06-04 15:21:50
echo substr($date, 0,4)."<br>";                 //2014
echo substr($date, 11,5)."<br>";                //15:21

echo "<br>-------字串替换--substr_replace--------<br>";
echo substr_replace($date, '2015', 0,4)."<br>"; //2015-06-04 15:21:50
echo str_replace("bbb", "aaa", "bbbccc").'<br>';       //aaaccc

echo "<br>-------字串填充--substr_replace--------<br>";
$input = 'aa';
echo str_pad($input,6)."<br>";                    //'aa    '   
echo str_pad($input,6,'-').'<br>';                //'aa----'
echo str_pad($input, 6,'-',STR_PAD_LEFT)."<br>";  //'----aa'
echo str_pad($input, 6,'-',STR_PAD_BOTH)."<br>";  //'--aa--'

echo "<br>-------求串长度--strlen--------<br>";
//把所有人的邮件名改为bbb
$email = 'aaa@yahoo.com';
$i = strpos($email, "@");
$name = substr($email, 0,$i);
//echo substr_replace($email, "bbb", 0,$i);                //bbb@yahoo.com
echo substr_replace($email, "bbb", 0,strlen($name));     //bbb@yahoo.com

/* 获取ASCII编码
 * string chr(int ascii)
 * int ord(string string)
 */
echo "<br>-------获取ASCII编码--chr,ord--------<br>";

echo chr(65)."<br>";                  //A
echo ord('A')."<br>";                 //65



/* 字串排序
 * natsort(),sort()
 */
echo "<br>-------字串排序--natsort,sort--------<br>";
$arr1 = array('img1.png','img10.png','img2.png');
sort($arr1);
print_r($arr1);

natsort($arr1);
print_r($arr1);
/*
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img2.png
)
Array
(
    [0] => img1.png
    [2] => img2.png
    [1] => img10.png
)
 */



echo "<br>-------字串转为数组--str_split--------<br>";
print_r( str_split('aabbcc'));               //Array ( [0] => a [1] => a [2] => b [3] => b [4] => c [5] => c ) 
print_r(str_split('aabbcc',2));              //Array ( [0] => aa [1] => bb [2] => cc ) 

echo "<br>-------MD5----------<br>";
//echo md5_file("C:\d\d.txt")."<br>";      //d.txt 文件要存在
//echo md5("C:\d\d.txt");



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值