五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > PHP中substr和mb_substr的使用方法及參數(shù)設(shè)置

PHP中substr和mb_substr的使用方法及參數(shù)設(shè)置

文章來源:365jz.com     點(diǎn)擊數(shù):372    更新時(shí)間:2018-01-09 10:00   參與評(píng)論

大家都知道js中字符串截取字符有函數(shù)substr和substring,那php呢,php沒有直接可用的substring函數(shù),但是有substr函數(shù)。
不信自己可以測(cè)試一下。 下面給出一段正確的代碼。

<?
$a="me";
echo(substr($a,,));//輸出me
?>
下面又給出一段錯(cuò)誤的代碼
<?
$a="me";
echo(subString($a,,));
?>

substr() 函數(shù)返回字符串的一部分。

substr(string,start,length)

string:要截取的字符串

start:

正數(shù) - 在字符串的指定位置開始
負(fù)數(shù) - 在從字符串結(jié)尾的指定位置開始
0 - 在字符串中的第一個(gè)字符處開始

length:

可選。規(guī)定要返回的字符串長度。默認(rèn)是直到字符串的結(jié)尾。
正數(shù) - 從 start 參數(shù)所在的位置返回
負(fù)數(shù) - 從字符串末端返回

PHP substr()的用法詳解

定義和用法

substr() 函數(shù)返回字符串的一部分。使用substr()函數(shù)截取中文可能會(huì)出現(xiàn)亂碼,建議使用mb_substr() 函數(shù)截取中文。

語法

substr(string,start,length)

 

參數(shù) 描述
string 必需。規(guī)定要返回其中一部分的字符串。
start

必需。規(guī)定在字符串的何處開始。

  • 正數(shù) - 在字符串的指定位置開始
  • 負(fù)數(shù) - 在從字符串結(jié)尾的指定位置開始
  • 0 - 在字符串中的第一個(gè)字符處開始
length

可選。規(guī)定要返回的字符串長度。默認(rèn)是直到字符串的結(jié)尾。

  • 正數(shù) - 從 start 參數(shù)所在的位置返回
  • 負(fù)數(shù) - 從字符串末端返回

 

提示和注釋

注釋:如果 start 是負(fù)數(shù)且 length 小于等于 start,則 length 為 0。

例子

<?php
$str = 'hello world!';
echo substr($str, 4); // o world! 左起第4開始向右截取到末尾
echo substr($str, 4, 5); // o wor 左起第4開始向右取5位
echo substr($str, 4, -1); // o world 左起第4與右起第1之間的字符
echo substr($str, -8, 4); // o wo 右起第8開始向右截取4位
echo substr($str, -8,-2); // o worl 右起第8與右起第2之間的字符
?>

PHP substr()函數(shù)可以分割文字,但要分割的文字如果包括中文字符往往會(huì)遇到問題,這時(shí)可以用mb_substr()/mb_strcut這個(gè)函數(shù),mb_substr() /mb_strcut的用法與substr()相似,只是在mb_substr()/mb_strcut最后要加入多一個(gè)參數(shù),以設(shè)定字符串的編碼,但是 一般的服務(wù)器都沒打開php_mbstring.dll,需要在php.ini中把php_mbstring.dll打開。

function: mb_substr( $str, $start, $length, $encoding )

$str,需要截?cái)嗟淖址?br /> $start,截?cái)嚅_始處
$length,長度(注意,這個(gè)跟mb_strimwidth不同,1就代表一個(gè)中文字符)
$encoding,編碼,我設(shè)為 utf-8

例:截?cái)辔恼聵?biāo)題,控制在15個(gè)文字
代碼如下:
<?php echo mb_substr(get_the_title(), 0, 15,"utf-8"); ?> 
 
<?php
echo mb_substr('我們都是好孩子hehe',0,9);
?>
輸出:我們都

現(xiàn)在我們加上字符集utf-8
<?php
echo mb_substr('我們都是好孩子hehe',0,9,'utf-8');
?>

輸出:我們都是好孩子he

第一個(gè)是以三個(gè)字節(jié)為一個(gè)中文,這就是utf-8編碼的特點(diǎn),下面加上utf-8字符集說明,所以,是以一個(gè)字為單位來截取的



下面是截取UTF-8編碼下字符串的函數(shù)

 function sub_str($str, $length = 0, $append = true)
 {
     $str = trim($str);
     $strlength = strlen($str);

     if ($length == 0 || $length >= $strlength)
     {
         return $str;  //截取長度等于0或大于等于本字符串的長度,返回字符串本身
     }
     elseif ($length < 0)  //如果截取長度為負(fù)數(shù)
     {
         $length = $strlength + $length;//那么截取長度就等于字符串長度減去截取長度
         if ($length < 0)
         {
             $length = $strlength;//如果截取長度的絕對(duì)值大于字符串本身長度,則截取長度取字符串本身的長度
         }
     }

     if (function_exists('mb_substr'))
     {
         $newstr = mb_substr($str, 0, $length, EC_CHARSET);
     }
     elseif (function_exists('iconv_substr'))
     {
         $newstr = iconv_substr($str, 0, $length, EC_CHARSET);
     }
     else
     {
         //$newstr = trim_right(substr($str, 0, $length));
         $newstr = substr($str, 0, $length);
     }

     if ($append && $str != $newstr)
     {
         $newstr .= '...';
     }

     return $newstr;
 }

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (372人查看,0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)