本文目錄一覽:
php截取字元 怎樣遇空格停止並只截取第一個空格前的內容?
用charindex和substring可以實現截取
順便說一句,如果你得空格不是固定的,你就得定義一個字元串為”a,b,c,d,e,f………z”
根據空格個數,獲取列明,拼接語句.
PHP指字元數量截斷,在後面加上省略號。
substr可以截斷字元串,但是不能顯示省略號,用 Smarty 的的 truncate 方法可以把頁面的字元串截斷並顯示省略號。
如何利用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 中文字元串截取問題
preg_split()函數的意思。(意思為通過一個正則表達式分隔給定字元串)
array_splice() 函數與 array_slice() 函數類似,選擇數組中的一系列元素,但不返回,而是刪除它們並用其它值代替。
join() 方法用於把數組中的所有元素放入一個字元串。
?php
$str = ‘hypertext language programming’;
$chars = preg_split(‘/ /’, $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?
會輸出
Array(
[0] = Array (
[0] = hypertext
[1] = 0
)
[1] = Array (
[0] = language
[1] = 10
)
[2] = Array (
[0] = programming
[1] = 19
)
)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183241.html