字符串的處理

1.單雙引號的區別,定界符,雙引號能夠識別數組[]標記php

//推薦{}
$arr=array('one'->100);
echo "aaa$arr['one']aaa";//報錯,不能識別'
echo "aaa$arr[one]aaa";//aaa100aaa
echo "aaa{$arr[one]}aaa";//aaa100aaa,但會和同名常量衝突
echo "aaa{$arr['one']}aaa";//aaa100aaa
echo "aaa{$arr["one"]}aaa";//aaa100aaa
class Square {
    public function width(){}
};
$square = new Square();
echo "aaa $square->width aaa"//OK
echo "aaa $square->width00 aaa"//沒有特殊符號間隔,不能解析
echo "aaa {$square->width}00 aaa"//OK

2.字符串處理函數,隱式轉換爲字符串再處理,如數組長度count()/字符串長度strlen(),注:count('')爲1(和JS區別)html

3.建議這樣訪問元素(區別於數組):$str{1},注:每一個字符有相應的內存空間,只能裝下一個數組

<?php    
    $str='hello';
    $str[2]='world';
    echo $str;//hewlo
?>

4.字符串輸出函數安全

a.substr($str,1,1);
b.mb_substr($str,1,1,'utf-8');//專門處理中文字符
c.echo/print:print有返回值;echo指令方式能夠打印多個參數,逗號隔開
d.die/exit:輸出一個字符串並退出程序
e.printf():格式化輸出,參數如圖:

圖片描述

<?php    
    $int=100.678;
    printf("%1.2f,%d,%c"$int,$int,$int);//100.68,100,d
?>
f.chr/ord:查找ASC的相應字符/查找ASC
g.sprintf():格式化返回,以下:
<?php    
    $int=100.678;
    $str=sprintf("%1.2f,%d,%c"$int,$int,$int);//100.68,100,d
?>
    echo $str;//100.68,100,d

5.字符串轉換函數函數

<?php    
    $str="gggddd8hhhhello worldhhh8gggddd";
    $nstr=trim($str,"0..9gd");//0到9和包含gd的全刪
    echo $nstr;//hhhhello worldhhh
?>
c.str_pad():按需求填充字符串
<?php    
    $str="hello world";
    $nstr=str_pad($str,19,"#",STR_PAD_BOTH);
    echo $nstr;//####hello world####
?>
d.改變大小寫函數:strtolower/strtoupper/ucfirst/ucwords

6.HTML字符串格式化函數post

a.htmlspecialchars():HTML標記轉換函數
<?php    
    if(isset($_POST['dosubmit'])){
        //輸入任何內容直接輸出
        echo htmlspecialchars($_POST['shuru']);
    }
?>
<!DOCTYPE html>
<html>
    <head>        
    </head>
    <body>
        <form action="" method="post">
            <label for="shuru">title:</label><input type="text" id="shuru" name="shuru"/>
            <button type="submit" name="dosubmit">提交</button>
        </form>
    </body>
</html>
b.HTML特殊符號添加轉義字符函數:addslashes();
c.HTML特殊符號去掉轉義字符函數:stripslashes();
d.刪除HTML標籤:strip_tags($str,'<b><u>'); //只保留bu   
e.\n轉br:nl2br();

7.字符串格式化函數加密

md5(md5($str).'niwota');//多層md5進行加密

8.字符串比較函數spa

a.==比較
b.二進制安全比較,即逐個字母的ASCII比較,區分大小寫:strcmp($str1,$str2);//返回1/-1/0
c.同上,不區分大小寫:strcasecmp();
d.按天然順序比較:strnatcmp();/strnatcasecmp();
e.自定義排序:usort($arr,'strnatcasecmp');

9.字符串查詢函數code

strstr('name@example.com','@');//@example.com:
strstr('name@example.com','@',true);//name:
c.stristr():不區分大小寫,同上
相關文章
相關標籤/搜索