php截取中文字元串的代碼(php截取文本)

本文目錄一覽:

如何在php中截取字元串「xxx

substr(string,start,length)

string表示要截取的對象,start表示從哪個位置開始截取,0表示從頭開始,正數表示從這個數的位置後面截取,負數表示從結尾算開始截取的位置,但依然是從左到右截,length表示截取長度.負數表示排除或忽略結尾多少個字元

中文截取

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

$str,需要截斷的字元串

$start,截斷開始處,起始處為0

$length,要截取的字數

$encoding,網頁編碼,如utf-8,一個漢字是3個位元組

php 怎麼截取漢字字元串?

?php 

$str = ‘這樣一來我的字元串就不會有亂碼^_^’; 

echo “mb_substr:” . mb_substr($str, 0, 7, ‘utf-8’); 

//結果:這樣一來我的字 

echo “br”; 

echo “mb_strcut:” . mb_strcut($str, 0, 6, ‘utf-8’); 

//結果:這樣 

?

首先

1.確保你的Windows/system32下有php_mbstring.dll這個文件,沒有就從你Php安裝目錄extensions里拷入Windows/system32裡面。

2.在windows目錄下找到php.ini打開編輯,搜索mbstring.dll,找到

;extension=php_mbstring.dll把前面的;號去掉,這樣mb_substr函數就可以生效了

mb_strcut函數功能也可以截取字元串長度,下面實例具體看看區別在哪:

mb_substr();

如何利用PHP來截取一段中文字元串而不出現亂碼

/*

功能:截取全形和半形混合的字元串以避免亂碼

參數:

$str_cut 需要截斷的字元串

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

*/

function substr_cut($str_cut,$length = 30){ 

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;

}

說明: 

程序的關鍵語句是: 

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

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

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

如果字元的ASCII碼大於128,說明當前字元和下一個字元是屬於一個漢字的。 

則,$i++ 跳過對下一個字元的判斷。 

再結合循環中的 $i++ ,實際上,當遇到一個漢字時,$i 就會加 2 ,從而正確的跳過漢字。 

最終實現的效果是,$i 變數指向的要麼是半形的字元,要麼是全形漢字的首字元,不會指向 

全形漢字的第二個字元,所以,當$i ;= $length 時,循環結束,使用 

$str_cut = substr($str_cut,0,$i) . “…”; 截取字元時自然也就不會出現亂碼了。 

本人在寫一個程序時需要利用PHP從一段字元串中截取指定長度的一段字元下來。以前在寫ASP的時候,參考動網的程序寫過類似的程序,不過,還沒用PHP寫過。 

想偷懶,看有不有現成的代碼可以用。於是,在GOOGLE中輸入:PHP 截斷字元 後查找到一段代碼。

php 截取utf-8格式的字元串實例代碼

php

截取utf-8格式的字元串

php中,我們經常需要截取字元串。英文字元佔用一個位元組,中文字元佔用兩個位元組,但中文字元佔用兩個位元組是相對於GBK編碼而言但是在時下國際流行的UTF8編碼中,一個中文字元佔用3個位元組。本文章向大家介紹一個php

截取utf-8格式字元串的函數。

舉例說明:

function

truncate_utf8_string($string,

$length,

$etc

=

‘…’)

{

$result

=

”;

$string

=

html_entity_decode

(

trim

(

strip_tags

(

$string

)

),

ENT_QUOTES,

‘UTF-8’

);

$strlen

=

strlen

(

$string

);

for($i

=

0;

(($i

$strlen)

($length

0));

$i

++)

{

if

($number

=

strpos

(

str_pad

(

decbin

(

ord

(

substr

(

$string,

$i,

1

)

)

),

8,

‘0’,

STR_PAD_LEFT

),

‘0’

))

{

if

($length

1.0)

{

break;

}

$result

.=

substr

(

$string,

$i,

$number

);

$length

-=

1.0;

$i

+=

$number

1;

}

else

{

$result

.=

substr

(

$string,

$i,

1

);

$length

-=

0.5;

}

}

$result

=

htmlspecialchars

(

$result,

ENT_QUOTES,

‘UTF-8’

);

if

($i

$strlen)

{

$result

.=

$etc;

}

return

$result;

}

如果需要截取utf-8格式的字元串,直接調用這個函數即可。

?php

$str=”如果需要截取utf-8格式的字元串,直接調用這個函數即可。”;

echo

truncate_utf8_string($str,10);//輸出結果:如果需要截取utf-8格…

?

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

PHP指定截取字元串中的中英文或數字字元的實例分享

我們在開發過程中,經常會碰到截取中文英文數字等的問題,大家知道中文所佔的字元和英文數字是不同的;然後我們就會在項目的common里寫一些日常的函數包含時間計算轉換和中英文字元截取的函數;比如截取中英文的函數沒個幾行代碼恐怕拿不下來的吧,現在就告訴大家一個簡單的(自己本地運行過的),如有問題,請大家多多指教

$c

=

‘ddaabbccaa’;

$d

=

‘地球需要我們每個人的愛護’;

$frist1

=

mb_substr(

$c,

0,

1

,”UTF-8″);

//

d

$delete_last1

=

mb_substr($d,

-1,1,”UTF-8″);

//

echo

$frist1.’+++’.$delete_last1.’br/’;

//

d+++護

$frist2

=

mb_substr(

$d,

0,

1

,”UTF-8″);

//

$delete_last2

=

mb_substr($d,

-1,1,”UTF-8″);

//

echo

$frist2.’+++’.$delete_last2.’br/’;

//

地+++護

$e

=

’11aa22cc33′;

$f

=

‘aa地球需要我們每個人的愛護’;

$g

=

‘地球需要我們每個人的愛護gg’;

$h

=

‘地球需要我們每個人的愛護’;

$first3

=

mb_substr(

$e,

0,

1

,”UTF-8″);

//

1

$last3

=

mb_substr(

$f,

0,

1

,”UTF-8″);

//

a

$delete_last3

=

mb_substr($f,

-1,1,”UTF-8″);

//

$delete_last4

=

mb_substr($g,

-1,1,”UTF-8″);

//

g

$frist4

=

mb_substr(

$g,

0,

1

,”UTF-8″);

//

$delete_last5

=

mb_substr($h,

-1,1,”UTF-8″);

//

echo

$first3.’+++’.$last3.’—‘.$delete_last3.’***’.$delete_last4.”.$frist4.’br/’;

//

1+++a—護***g地

echo

$last3.’…’.$delete_last3.’br/’;

//

a…護

echo

$frist4.’…’.$delete_last5.’br/’;

//

地…護

//

這樣不管字元串里是中英文數字等都是可以的無需判斷,如:

」地…護「

或者

「地…」

或者

「…護」

PS:過濾字元串中空格的方法

去除字元串首尾中英文空格的方法:

function

mbTrim($str)

{

return

mb_ereg_replace(‘(^( |

)+|( |

)+$)’,

”,

$str);

}

下面的正則驗證時過濾掉用戶輸入的連續空格,包括全形空格和半形空格

$user

=

mb_ereg_replace(‘^( |

)+’,

”,

$user);

$user

=

mb_ereg_replace(‘( |

)+$’,

”,

$user);

$age

=

mb_ereg_replace(‘^( |

)+’,

”,

$age);

$age

=

mb_ereg_replace(‘( |

)+$’,

”,

$age);

$method

=

mb_ereg_replace(‘^( |

)+’,

”,

$method);

$method

=

mb_ereg_replace(‘( |

)+$’,

”,

$method);

$address

=

mb_ereg_replace(‘^( |

)+’,

”,

$address);

$address

=

mb_ereg_replace(‘( |

)+$’,

”,

$address);

php截取中文字元串

PHP中文

亂碼

的原因及解決方法

原因:1.PHP頁面語言本身的編碼類型不合適,這時候,你直接在腳本中寫的中文肯定是亂碼,不用說資料庫了;

解決方法:選擇’

UTF8

‘或者’gb2312’,這樣客戶瀏覽器會自動選擇並出現正確的中文顯示。注意:’UTF8’或者’gb2312’都可以正確顯示中文的。

2.資料庫MySQL中的編碼類型不正確。

解決方法:創建資料庫的時候,MySQL

字符集

選擇’UTF8’,MySQL

連接校對選擇utf8_general_ci,這樣創建的資料庫用來存儲中文肯定沒有問題,

否則,你的中文首先在MySQL中就是亂碼,更不要期望它會給你在PHP頁面中顯示正確。

3.與平時的腳本編輯環境有關。比如,有些內容是自己用word寫的,有些是用記事本寫的,有些用editplus、ultraplus等

文本編輯器

。有時候就直接在DW中寫中文了,

這樣做不出亂碼才怪呢。

解決方法:盡量用同一種編輯器。如果是拷貝來得既有的內容,建議用ultraplus中的編碼轉換功能把它轉換成utf8或者gb2312。

到底轉換成什麼類型並不重要,關鍵要求你的PHP

WEB應用程序

中的編碼要一致就行。

4.編程訪問

MySQL時,建議添加一行代碼:mysql_query(“SET

NAMES

‘GBK'”);

這是解決方法

我沒看

懂你

貼上來的程序

所以給你一些方法去解決亂碼的問題

希望可以幫得上

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python中將字元串轉化為浮點數

    本文將介紹在Python中將字元串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字元串轉化為…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論