php抓取中文字符,php獲取字符串中的指定字符

本文目錄一覽:

php 怎麼截取漢字字符串?

?php 

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

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

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

echo “

“; 

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指定截取字符串中的中英文或數字字符的實例分享

我們在開發過程中,經常會碰到截取中文英文數字等的問題,大家知道中文所佔的字符和英文數字是不同的;然後我們就會在項目的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'”);

這是解決方法

我沒看

懂你

貼上來的程序

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

希望可以幫得上

如何利用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 截斷字符 後查找到一段代碼。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-30 09:08
下一篇 2024-11-30 09:08

相關推薦

  • 英語年齡用連字符號(Hyphenation for English Age)

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

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

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

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

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

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

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

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

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

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

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

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

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

    編程 2025-04-29
  • Python讀取中文

    Python是一種高級編程語言,被廣泛地應用於各種領域中。而處理中文數據也是其中重要的一部分。本文將介紹在Python中如何讀取中文,為大家提供指導和幫助。 一、讀取中文文件 在P…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Python計算中文字符個數

    本文將從多個方面對Python計算中文字符個數進行詳細的闡述,包括字符串長度計算、正則表達式統計和模塊使用方法等內容。 一、字符串長度計算 在Python中,計算字符串長度是非常容…

    編程 2025-04-29

發表回復

登錄後才能評論