-
您當(dāng)前所在位置:首頁 → 網(wǎng)絡(luò)編程 → PHP編程 → php截取字符串
php截取字符串
時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)
-
1.substr(源字符串,其實(shí)位置[,長度])-截取字符串返回部分字符串
-
<?php
-
$str ="itmop.com";
-
echo substr($str, 2); //mop.com
-
echo substr($str, 2,3); //mop
-
echo substr($str, -2); //om 負(fù)數(shù)從結(jié)尾開始取
-
?>
但是當(dāng)你截取中文字符串的時候很容易出現(xiàn)亂碼,因?yàn)橐粋漢字是兩個字節(jié),而一個英文字母是一個字節(jié)。解決辦法如下:
2.mb_substr(),使用方法和substr相同,不過要開啟php.ini里面extension=php_mbstring.dll擴(kuò)展,不用擔(dān)心,一般的空間商
都會開啟這個擴(kuò)展的。
-
<?php
-
echo mb_substr("php點(diǎn)點(diǎn)通", 1,3,"UTF-8"); //hp點(diǎn)
-
?>
網(wǎng)上也有很多中文字符串截取教程,實(shí)現(xiàn)起來比較復(fù)雜,感覺還是用php自帶的函數(shù)實(shí)現(xiàn)起來比較好。整理的網(wǎng)絡(luò)資料(php代碼)如下:
(1)截取GB2312中文字符串
-
<?php
-
//截取GB2312中文字符串
-
function mysubstr($str, $start, $len) {
-
$tmpstr = "";
-
$strlen = $start + $len;
-
for($i = 0; $i < $strlen; $i++) {
-
if(ord(substr($str, $i, 1)) > 0xa0) {
-
$tmpstr .= substr($str, $i, 2);
-
$i++;
-
} else
-
$tmpstr .= substr($str, $i, 1);
-
}
-
return $tmpstr;
-
}
-
echo mysubstr("php點(diǎn)點(diǎn)通", 1, 5); //php點(diǎn)
-
?>
(2)截取utf8編碼的多字節(jié)字符串
-
<?php
-
//截取utf8字符串
-
function utf8Substr($str, $from, $len)
-
{
-
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
-
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
-
'$1',$str);
-
}
-
echo utf8Substr("php點(diǎn)點(diǎn)通", 1, 5); //hp點(diǎn)點(diǎn)通
-
?>
(3)支持 utf-8、gb2312都支持的漢字截取函數(shù)
-
<?php
-
//同時支持 utf-8、gb2312都支持的
關(guān)鍵詞標(biāo)簽:php,字符串
相關(guān)閱讀
-
熱門文章
plsql developer怎么連接數(shù)據(jù)庫-plsql deve2021年最好用的10款php開發(fā)工具推薦在 PHP 中使用命令行工具php應(yīng)用程序安全防范技術(shù)研究
人氣排行
詳解ucenter原理及第三方應(yīng)用程序整合思路、方法PHP中防止SQL注入攻擊PHP會話Session的具體使用方法解析PHP運(yùn)行出現(xiàn)Notice : Use of undefined constant 的解決辦法CakePHP程序員必須知道的21條技巧PHP如何清空mySQL數(shù)據(jù)庫PHP采集圖片實(shí)例(PHP采集)plsql developer怎么連接數(shù)據(jù)庫-plsql developer連接數(shù)據(jù)庫方法