A. php,一個簡單的問題,判斷變數字元長度和類型的格式
strlen PHP 內置函數 獲取 字元串長度
$alen=strlen($a);
if($alen>6 && $alen<12){
echo '我是6-12之間的字元串';
}else{
echo '我不是6-152之間的字元串';
}
判斷數字 可以用PHP 內置函數 is_numeric
if(is_numeric($a)){
echo '是數字';
}else{
echo '不是數字';
}
B. php字元串長度判斷出問題,希望大神幫忙看下!
就你這代碼而言,$unfold和$close確實會同時輸出啊。
$conditions_a = " 」. $unfold.「 」. $close.「 「;//這里的代碼太長了我就沒貼出來
$conditions_b= " 」. $unfold.「 」. $close.「 「;//這里的代碼太長了我就沒貼出來
把代碼發完整點。
C. PHP獲取中英混合字元串長度的方法
今晚在寫框架的表單驗證類時,需要判斷某個字元串長度是否在指定區間內,很自然地,想到了PHP中的strlen函數。
.代碼如下:
$str
=
'Hello
world!';
echo
strlen($str); //
輸出12
然而在PHP自帶的函數中,strlen及mb_strlen都是通過計算字元串所佔位元組數來計算長度的,在不同的編碼情況下,中文所佔的位元組數是不同的。在GBK/GB2312下,中文字元佔2個位元組,而在UTF-8下,中文字元佔3個位元組。
.代碼如下:
$str
=
'你好,世界!';
echo
strlen($str); //
GBK或GB2312下輸出12,UTF-8下輸出18
而我們在判斷字元串長度時往往需要判斷的是字元的數量,而非字元串所佔位元組數,如在UTF-8下的這段PHP代碼:
.代碼如下:
$name
=
'張耕暢';
$len
=
strlen($name);
//
輸出
FALSE,因為在UTF-8下三個中文佔9個位元組
if($len
>=
3
&&
$len
<=
8){
echo
'TRUE';
}else{
echo
'FALSE';
}
那麼有什麼方便而實用的方法可以獲得含中文字元串的長度呢?可以用正則計算出中文字元的個數,在GBK/GB2312編碼下除以2,UTF-8編碼下則除以3,最後再加上非中文字元串的長度,但這樣未免太過麻煩。
WordPress這么一段代碼,借鑒如下:
.代碼如下:
$str
=
'Hello,世界!';
preg_match_all('/./us',
$str,
$match);
echo
count($match[0]); //
輸出9
思想是用正則表達式將字元串分割成單個字元,並直接用count計算出匹配到的字元數,便是我們想要的結果了。
但以上代碼在UTF-8編碼下並不能處理GBK/GB2312的中文字元串,因為GBK/GB2312的中文字元會被識別為兩個字元而計算出來的中文字元數量會翻倍,於是我想到了這么一個辦法:
.代碼如下:
$tmp
=
@iconv('gbk',
'utf-8',
$str);
if(!empty($tmp)){
$str
=
$tmp;
}
preg_match_all('/./us',
$str,
$match);
echo
count($match[0]);
可兼容GBK/GB2312及UTF-8編碼,經小量數據測試通過,但暫未確定是否完全正確,盼有大牛指點一二。
以上本意是為了框架可以兼容多種編碼格式,但一般在日常開發中,一個項目是已經可以確定為何種編碼的,因此可以使用以下函數來方便地獲取字元串長度:
.代碼如下:
int
iconv_strlen
(
string
$str
[,
string
$charset
=
ini_get("iconv.internal_encoding")
]
)
D. php字元串長度如何計算
說明
strlen ( string $string ) : int
返回給定的字元串 string 的長度。
參數
string
需要計算長度的字元串。
返回值
成功則返回字元串 string 的長度;如果 string 為空,則返回 0。
更新日誌
版本 說明
5.3.0 Prior versions treated arrays as the string Array, thus returning a string length of 5 and emitting an E_NOTICE level error.
範例
Example #1 strlen() 範例
E. php 如果判斷TEXT輸入框裡面的字元串為10位
在php中判斷是:
$len = strlen($_POST['usernsme']);
if($len==10){
echo "長度為:10";
}
javascript中判斷:
var user_name =document.getElementById("username");
var len = user_name.length;
if(len ==10){
alert('長度為10');
}
希望採納為最佳
F. PHP如何判斷兩個字元串長度和其中一個字元串的值
<form method="post">
賬號:<input type="text" name="account" /><br />
密碼:<input type="password" name="pwd" /><br />
<input type="submit" value="判斷" />
</form>
<?php
if(!empty($_POST['account'])){
$acc=$_POST['account'];
$pwd=$_POST['pwd'];
$acc_len=strlen($acc);
$pwd_len=strlen($pwd);
if(is_numeric($pwd)){
if($acc_len==12 && $pwd_len==12){
if($pwd>1000){
echo '正確!';
}
}
}else{
echo '錯誤!';
}
}
?>
G. 用PHP統計字元串長度
PHP 計算字元串長度代碼示例如下,具體邏輯在代碼中。
<?php
//統計字元串長度,適用中文,字母,數字混編
functionget_strlength($str){
//強字元串統一轉換為utf-8格式
$encode=mb_detect_encoding($str,array('ASCII','UTF-8','GB2312','GBK'));
if(!$encode=='UTF-8'){
$str=iconv('UTF-8',$encode,$str);
}
//初始化字元串長度
$count=0;
//循環統計
for($i=0;$i<strlen($str);$i++){
//獲取字元串首字母對應的ASCII值
$value=ord($str[$i]);
if($value>127){
$count++;
if($value>=192&&$value<=223){
$i++;
}elseif($value>=224&&$value<=239){
$i=$i+2;
}elseif($value>=240&&$value<=247){
$i=$i+3;
}else{
die('字元串異常!!');
}
}
$count++;
}
return$count;
}
//測試
echoget_strlength("中國人2015年的gdp為:6666");
//25
?>
H. 判斷是否為指定長度內字元串的php函數
復制代碼
代碼如下:
//———————————————————————————–
//
函數名:CheckLengthBetween($C_char,
$I_len1,
$I_len2=100)
//
作
用:判斷是否為指定長度內字元串
//
參
數:$C_char(待檢測的字元串)
//
$I_len1
(目標字元串長度的下限)
//
$I_len2
(目標字元串長度的上限)
//
返回值:布爾值
//
備
註:無
//———————————————————————————–
function
CheckLengthBetween($C_cahr,
$I_len1,
$I_len2=100)
{
$C_cahr
=
trim($C_cahr);
if
(strlen($C_cahr)
<
$I_len1)
return
false;
if
(strlen($C_cahr)
>
$I_len2)
return
false;
return
true;
}
//———————————————————————————–
I. php哪個函數能取得字元串長度
PHP對中文字元串的處理一直困擾於剛剛接觸PHP開發的新手程序員。下面簡要的剖析一下PHP對中文字元串長度的處理:
PHP自帶的函數如strlen()、mb_strlen()都是通過計算字元串所佔位元組數來統計字元串長度的,一個英文字元佔1位元組。例:
$enStr = 『Hello,China!』;
echo strlen($enStr); // 輸出:12
而中文則不然,做中文網站一般會選擇兩種編碼:gbk/gb2312或是utf-8。utf-8能兼容更多的字元,所以受到很多站長的喜愛。gbk與utf-8對中文的編碼不同,導致中文在gbk與utf-8編碼下所佔位元組也有差異。
gbk編碼下每個中文字元所佔位元組為2,例:
$zhStr = 『您好,中國!』;
echo strlen($zhStr); // 輸出:12
utf-8編碼下每個中文字元所佔位元組為3,例:
$zhStr = 『您好,中國!』;
echo strlen($zhStr); // 輸出:18
那麼如何計算這組中文字元串的長度呢?有人可能會說gbk下獲取中文字元串長度除以2,utf-8編碼下除以3不就行了嗎?但是您要考慮字元串並不老實,99%的情況會以中英混合的情況出現。
這是WordPress中的一段代碼,主要思想就是先用正則將字元串分解為個體單元,然後再計算單元的個數即字元串的長度,代碼如下(只能處理utf-8編碼下的字元串):
$zhStr = 『您好,中國!』;
$str = 『Hello,中國!』;
// 計算中文字元串長度
function utf8_strlen($string = null) {
// 將字元串分解為單元
preg_match_all(「/./us」, $string, $match);
// 返回單元個數
return count($match[0]);
}
echo utf8_strlen($zhStr); // 輸出:6
echo utf8_strlen($str); // 輸出:9 收起
J. php判斷字元串長度問題
if(!preg_match("/.{2,30}/",$City)){
exit("請選擇城市!");
}
這個是正則表達式的寫法,不懂的話建議你學習下正則表達式,開發實用性很高
前後/ 是起始結束符號
. 代表任意字元
{2,30} 前一個內容2次 ~ 30次