導航:首頁 > 編程語言 > php輸出字元串的長度

php輸出字元串的長度

發布時間:2023-12-12 12:30:51

A. php怎麼獲取字元串長度

PHP對中文字元串的處理一直困擾於剛剛接觸PHP開發的新手程序員。下面簡要的剖析一下PHP對中文字元串長度的處理:

(1)PHP自帶的函數如strlen()、mb_strlen()都是通過計算字元串所佔位元組數來統計字元串長度的,一個英文字元佔1位元組;

(2)中文則不然,做中文網站一般會選擇兩種編碼:gbk/gb2312或是utf-8。utf-8能兼容更多的字元,所以受到很多站長的喜愛。gbk與utf-8對中文的編碼不同,導致中文在gbk與utf-8編碼下所佔位元組也有差異。



B. 利用PHP函數計算中英文字元串長度的方法

本文實例講述了利用PHP函數計算中英文字元串長度的方法。分享給大家供大家參考。具體實現方法如下:
一般來說大家知道英文字元佔一個位元組,而中文字元gbk占兩個字元,utf8佔三個字元,很多人印象中php計算字元串長度就是strlen()函數,其實不然,它計算的是位元組的長度而非字元的長度,那麼如何獲取一個字元串中字元的長度呢?還有有mb_strlen().
具體代碼如下:
復制代碼
代碼如下:echo
$str
=
'PHP點點通';
echo
strlen($str);
//3*1+3*3=12
echo
mb_strlen($str,
'gb2312');
//3*1+3*2=9
echo
mb_strlen($str,
'utf-8');
//6

C. php文件中,一個字元串最長可以有多長

你說的是php的變數能存多少范圍吧?比如

$str='IamChinese';

一般來說,php不限制變數的長度

你可以打開你的php.ini,裡面有這樣的配置語句:(我用的mssql資料庫,就拿它舉例吧)

; Valid range 0 - 2147483647.Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647.Default = 4096.
;mssql.textsize = 4096


可見php確實對變數大小沒有限制(2G的限制目前確實可以視為不存在),只是在默認的配置下被限制到了4096位元組,亦即2048個漢字。

如果你想增大php的變數最大位元組的話,可以在php.ini中修改以下代碼:


ini_set("mssql.textsize",200000);
ini_set("mssql.textlimit",200000);

D. php怎麼把字元串轉化為數組

1. 怎麼把字元串轉成數組
$txt = str_replace("[","",$txt); 替換符號

$txt = str_replace("]","",$txt); 替換符號

$txt = str_replace(" " "",$txt); 這個是去掉中改空格

$txt = str_replace("=>",",",$txt); 替換符號

$array = explode(',',$txt); 字元串轉數組

var_mp($array);

搞定收工
2. 把字元串轉換賣凳判成數組
$str1='把中文轉換成數組粗薯'; $str2='abcdefg'; $str3='0123456789'; echo $str1{2}; echo mb_strlen($str1,'utf-8');輸出字元串的長度,當然用utf-8編碼, function str($str){ $arr=array(); for($i=0;$i

E. 最准確的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='';
//www.phpernote.com
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截取字元串長度函數的文章對大家的學習有所幫助。

F. php如何獲取中文字元長度,一個中文字元算一個

在PHP中專門的mb_substr和mb_strlen函數,可以對中文進行截取和計算長度,但是,由於這些函數並非PHP的核心函數,所以,它們常常有可能沒有開啟。要在php.ini中開啟即可。獲取長度實例:1 ,utf-8環境下使用

header('Content-type:text/html;charset=utf-8');
/**
*可以統計中文字元串長度的函數
*@param$str要計算長度的字元串
*@param$type計算長度類型,0(默認)表示一個中文算一個字元,1表示一個中文算兩個字元
*
*/
functionabslength($str)
{
if(empty($str)){
return0;
}
if(function_exists('mb_strlen')){
returnmb_strlen($str,'utf-8');
}
else{
preg_match_all("/./u",$str,$ar);
returncount($ar[0]);
}
}
$str='我們都是中國人啊,ye!';
$len=abslength($str);
var_mp($len);//return12
$len=abslength($str,'1');
echo'<br/>'.$len;//return22

/*
utf-8編碼下截取中文字元串,參數可以參照substr函數
@param$str要進行截取的字元串
@param$start要進行截取的開始位置,負數為反向截取
@param$end要進行截取的長度
*/
functionutf8_substr($str,$start=0){
if(empty($str)){
returnfalse;
}
if(function_exists('mb_substr')){
if(func_num_args()>=3){
$end=func_get_arg(2);
returnmb_substr($str,$start,$end,'utf-8');
}
else{
mb_internal_encoding("UTF-8");
returnmb_substr($str,$start);
}

}
else{
$null="";
preg_match_all("/./u",$str,$ar);
if(func_num_args()>=3){
$end=func_get_arg(2);
returnjoin($null,array_slice($ar[0],$start,$end));
}
else{
returnjoin($null,array_slice($ar[0],$start));
}
}
}
$str2='wo要截取zhongwen';
echo'<br/>';
echoutf8_substr($str2,0,-4);//returnwo要截取zhon

2,支持gb2312,gbk,utf-8,big5 中文截取方法

/*

* 中文截取,支持gb2312,gbk,utf-8,big5

*

* @param string $str 要截取的字串

* @param int $start 截取起始位置

* @param int $length 截取長度

* @param string $charset utf-8|gb2312|gbk|big5 編碼

* @param $suffix 是否加尾綴

*/

public function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

{

if(function_exists("mb_substr"))

{

if(mb_strlen($str, $charset) <= $length) return $str;

$slice = mb_substr($str, $start, $length, $charset);

}

else

{

$re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";

$re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";

$re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";

$re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";

preg_match_all($re[$charset], $str, $match);

if(count($match[0]) <= $length) return $str;

$slice = join("",array_slice($match[0], $start, $length));

}

if($suffix) return $slice."…";

return $slice;

}

G. 在php中,怎樣得到一個文本框中的字元串的長度

<input name="submit" type="submit" class="button" id="submit1" value="提交"></input></form><?php$str = $_POST["text1"]; //獲取文本框的字元串賦予 $str $a="字元串長度為:"; $b=strlen($str); //用strlen函數返回$str的字元串長度echo $a;echo $b;?>上面的程序,能不能看懂。有問題再問。

閱讀全文

與php輸出字元串的長度相關的資料

熱點內容
手機解壓30g文件要多久 瀏覽:708
php讀取文件格式 瀏覽:612
開發程序員的電影 瀏覽:743
pc端解壓文件下載 瀏覽:708
單片機C語言讀寄存器 瀏覽:164
linux火車源碼 瀏覽:793
小米手機應用加密怎樣解除 瀏覽:523
幫孩子解壓的句子 瀏覽:140
木匠編程 瀏覽:832
笑話pdf 瀏覽:441
pdf變形 瀏覽:852
微信app最下面的菜單欄叫什麼 瀏覽:249
我的世界晚上七點有什麼伺服器 瀏覽:176
雲伺服器不見了怎麼辦 瀏覽:965
怎麼看電腦ntp伺服器地址 瀏覽:579
程序員是干什麼的需要什麼素質 瀏覽:371
程序員畫圖工具哪個好 瀏覽:760
qq賬號被加密怎麼辦 瀏覽:441
怎麼找到永劫無間文件夾 瀏覽:94
linuxshell毫秒 瀏覽:539