php截取字元函數,php截取文本

本文目錄一覽:

php字元串截取函數用法分析

本文實例分析了php字元串截取函數用法。分享給大家供大家參考。具體分析如下:

php自帶的截取字元串的函數只能處理英文,數字的不能截取中文混排的,後面一個示例比較好用,第一個主要是給初學者學學用的,具體代碼如下:

複製代碼

代碼如下:?php

//構造字元串

$str

=

“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

echo

“原字元串:b”.$str.”/bbr”;

//按各種方式進行截取

$str1

=

substr($str,5);

echo

“從第5個字元開始取至最後:”.$str1.”br”;

$str2

=

substr($str,9,4);

echo

“從第9個字元開始取4個字元:”.$str2.”br”;

$str3

=

substr($str,-5);

echo

“取倒數5個字元:”.$str3.”br”;

$str4

=

substr($str,-8,4);

echo

“從倒數第8個字元開始向後取4個字元:”.$str4.”br”;

$str5

=

substr($str,-8,-2);

echo

“從倒數第8個字元開始取到倒數第2個字元為止:”.$str5.”br”;

?

支持中英文混合截取,代碼如下:

複製代碼

代碼如下:?php

/*

——————————————————

參數:

$str_cut

需要截斷的字元串

$length

允許字元串顯示的最大長度

程序功能:截取全形和半形(漢字和英文)混合的字元串以避免亂碼

——————————————————

*/

function

substr_cut($str_cut,$length)

{

if

(strlen($str_cut)

$length)

{

for($i=0;

$i

$length;

$i++)

if

(ord($str_cut[$i])

128)

$i++;

$str_cut

=

substr($str_cut,0,$i).”..”;

}

return

$str_cut;

}

?

希望本文所述對大家的php程序設計有所幫助。

php截取字元串函數

php

//構造字元串

$str = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

echo “原字元串:”.$str.”

“;

//按各種方式進行截取

$str1 = substr($str,5);

echo “從第5個字元開始取至最後:”.$str1.”

“;

$str2 = substr($str,9,4);

echo “從第9個字元開始取4個字元:”.$str2.”

“;

$str3 = substr($str,-5);

echo “取倒數5個字元:”.$str3.”

“;

$str4 = substr($str,-8,4);

echo “從倒數第8個字元開始向後取4個字元:”.$str4.”

“;

$str5 = substr($str,-8,-2);

echo “從倒數第8個字元開始取到倒數第2個字元為止:”.$str5.”

“;

?

支持中英文混合截取。

代碼如下 複製代碼

/*

——————————————————

參數:

$str_cut 需要截斷的字元串

$length 允許字元串顯示的最大長度

程序功能:截取全形和半形(漢字和英文)混合的字元串以避免亂碼

——————————————————

*/

function substr_cut($str_cut,$length)

{

if (strlen($str_cut) $length)

{

for($i=0; $i $length; $i++)

if (ord($str_cut[$i]) 128) $i++;

$str_cut = substr($str_cut,0,$i).”..”;

}

return $str_cut;

}

?

php字元截取

當漢字被截斷時,根據編碼規則他總是要把後邊的其他字元拉過來一起作為漢字解釋,這就是出現亂碼的原因。而值為0x81到0xff與0x00組合始終都顯示為「空」

根據這一特點,在substr的結果後面補上一個chr(0),就可以防止出現亂碼了

先看段代碼

複製代碼

代碼如下:

?php

$len

=

15;

$str

=

“這個新聞或是文章的標題很長,需要只顯示前面一些字,後面用…來代替”;

echo

strlen($str)=$len

?

$str

:

(substr($str,0,$len).chr(0).”…”);

?

chr(0)相關知識:

null是什麼都沒有,而chr(0)的值是0。表示成16進位是0x00,表示成二進位是00000000

雖然chr(0)不會顯示出什麼,但是他是一個字元。

最準確的php截取字元串長度函數

說是最精確截取長度,其實我也不敢確定是否是最精確的,具體有多精確看下面的效果就知道了:

先上測試用的字元串:

?php

header(“Content-Type:text/html;charset=utf-8”);

echo

cn_substr_utf8(‘我是一個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘ai\’2145m

a

ch3我[是一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘【我,是一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘我是一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘我是,一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘我,是,一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘我是asd一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘【我i\’m[是一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘【i\’m

a

ch我[是一,個,和哈,哦也,,國家!’,12);

echo

‘br

/’,cn_substr_utf8(‘【i\’2145m

a

ch3我[是一,個,和哈,哦也,,國家!’,12);

下面是精確截取字元串的效果圖:

具體函數代碼如下:

//utf-8中文截取,單位元組截取模式

function

cn_substr_utf8($str,$length,$append=’…’,$start=0){

if(strlen($str)$start+1){

return

”;

}

preg_match_all(“/./su”,$str,$ar);

$str2=”;

$tstr=”;

//

for($i=0;isset($ar[0][$i]);$i++){

if(strlen($tstr)$start){

$tstr.=$ar[0][$i];

}else{

if(strlen($str2)$length

+

strlen($ar[0][$i])){

$str2.=$ar[0][$i];

}else{

break;

}

}

}

return

$str==$str2?$str2:$str2.$append;

}

如果大家認為還不夠準確大家可以在此基礎上進行改進,或者是創新,希望這篇關於php截取字元串長度函數的文章對大家的學習有所幫助。

php語言中字元串分割用什麼函數?

「php分割字元串的函數有explode()和str_split() explode()」【摘要】

php語言中字元串分割用什麼函數?【提問】

「php分割字元串的函數有explode()和str_split() explode()」【回答】

explode() 函數使用一個字元串分割另一個字元串,並返回由字元串組成的數組。【回答】

php截取字元串用哪個函數?

有兩個函數,具體看你需求滿足誰,無中文使用substr,有中文使用mb_substr函數

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304917.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-01 11:06
下一篇 2025-01-01 11:06

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 英語年齡用連字元號(Hyphenation for English Age)

    英語年齡通常使用連字元號表示,比如 “five-year-old boy”。本文將從多個方面探討英語年齡的連字元使用問題。 一、英語年齡的表達方式 英語中表…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python字元轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智慧等領域廣泛應用。在很多場景下需要將字元串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字元轉列…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論