Php基础字符串篇
1、單引號與雙引號的區別:
雙引號的內容是經過PHP語法分析器解析過的,任何變量在雙引號中都會被轉換為它的值進行輸出,而單引號的內容是所見即所得,無論有無變量,都被當作普通字符串進行原樣輸出;另外在進行sql查詢之前,所有字符串都必須加單引號,防止可能的注入漏洞和sql錯誤;
2、字符串連接符:
半角句號.是字符串連接符,可以把兩個或兩個以上的字符串連接成一個字符串,應用字符串連接符無法實現大量的字符串拼接,PHP允許在雙引號中直接包含字符串變量進行連接;
3、字符串常用操作函數:
trim() 去除字符串首尾空格和特殊字符,并返回去掉空格和特殊字符之后的字符串。
addcslashes() 函數在指定的字符前添加反斜杠。第二個參數可以是 字符、字符串、或范圍字符如“a..z” "A..Z"
addslashes() 函數在指定的預定義字符前添加反斜杠。
預定義字符是:單引號 (')、雙引號 (")、反斜杠 (\)、NULL
strlen() 確定字符串長度
mb_strlen() 確定中文字符串長度,gbk編碼下每個中文字符所占字節為2,utf-8編碼下每個中文字符所占字節為3,但這樣過于麻煩,在此借鑒wordpress中的一段代碼:
大小寫轉換 strtolower 小寫? strtoupper 大寫 ucfirst 將字符串第一個字母大寫? ucwords將字符串每個單詞首字母大寫
字符串比較是否相等:strcmp()? 區分大小寫比較是否相等返回true或false? strcasecmp() 不區分大小寫比較是否相等,返回true或false
截取中英文混合字符串,防止出現亂碼的方法:
/* * 中文截取,支持gb2312,gbk,utf-8,big5 * @param string $str 要截取的字串 * @param int $start 截取起始位置 * @param int $length 截取長度 * @param string $charset utf-8|gb2312|gbk|big5 編碼 * @param $suffix 是否加尾綴 */ function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {if(function_exists("mb_substr")){if(mb_strlen($str, $charset) <= $length) return $str;$slice = mb_substr($str, $start, $length, $charset);}else{$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";preg_match_all($re[$charset], $str, $match);if(count($match[0]) <= $length) return $str;$slice = join("",array_slice($match[0], $start, $length));}if($suffix) return $slice."…";return $slice;中英文混合字符串反轉:
UTF-8編碼:
$str = '中文.it動力!'; echo str_rev_gb($str); /** 此函數的作用是反轉中文字符串 mb_strlen() 獲取字符的長度 mb_substr() 獲取字符的單個元素 krsort() 按照鍵值逆序排序數組 implode() 將數組拼接為字符串 explode() 使用字符串分隔字符串*/ function str_rev_gb($str){//判斷輸入的是不是utf8類型的字符,否則退出if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){exit("輸入類型不是UTF8類型的字符串");}$array=array();//將字符串存入數組$l=mb_strlen($str,'UTF-8');for($i=0;$i<$l;$i++){$array[]=mb_substr($str,$i,1,'UTF-8');}//反轉字符串krsort($array);//拼接字符串$string=implode($array);return $string; }echo utf8_strrev($str,false); //正則表達式 function utf8_strrev($str, $reverse_numbers = true){$pattern = $reverse_numbers ? '/./us' : '/(\d+)?./us';preg_match_all($pattern, $str, $ar);return join('',array_reverse($ar[0])); }GBK編碼: function strrev_ext ($str) {if (is_string($str)) {$len = strlen($str);$newstr = "";for ($i = $len - 1; $i >= 0; $i -= 1) {if(ord($str{$i})>160){$newstr .= $str{$i-1}.$str{$i};$i-=1;}else{$newstr.=$str{$i};}}return $newstr;}else{return false;} } //函數使用示范//純英文字符 $str="abcde"; echo strrev_ext($str)."<br />"; //純漢字 $str="中華人民"; echo strrev_ext($str)."<br />"; //中英混合 $str="中國china人民people"; echo strrev_ext($str)."<br />"; str_split() 字符串轉數組 無分隔符explode() 使用一個字符串分割另一個字符串返回數組
另外,更多PHP字符串操作可參考該網址
總結
- 上一篇: ThinkPhp框架基础知识
- 下一篇: Php基础时间篇