Hàm strlen[] được dùng để trả về chiều dài [số lượng ký tự] của một chuỗi.
Cú pháp:
strlen[string]
Đếm số lượng ký tự của chuỗi "Tai lieu hoc PHP"
Xem ví dụ
Lưu ý: Số lượng ký tự của một chuỗi có dấu và không dầu là hoàn toàn khác nhau, chuỗi có dấu sẽ có số lượng ký tự nhiều hơn chuỗi không có dấu.
Chuỗi "Tai lieu hoc PHP" và "Tài liệu học PHP" có số lượng ký tự khác nhau
Xem ví dụ
Tác dụng của hàm strlen[]
The strlen[]
function returns the length of a string.
The following table summarizes the technical details of this function.
Returns the length of the string on success, and 0 if the string is empty. |
PHP 4+ |
Syntax
The basic syntax of the strlen[]
function is given with:
The following example shows the strlen[]
function in action.
Parameters
The strlen[]
function accepts the following parameters.
string | Required. Specifies the string to check for length. |
Bài viết này đã giúp ích cho bạn?
strlen[]
Hàm của PHP trả về số ký tự ASCII.
strlen['borsc']
-> 5 [byte]
strlen['boršč']
-> 7 [byte]
$limit_in_kBytes = 20000;
$pointer = 0;
while[strlen[$your_string] > [[$pointer + 1] * $limit_in_kBytes]]{
$str_to_handle = substr[$your_string, [$pointer * $limit_in_kBytes ], $limit_in_kBytes];
// here you can handle [0 - n] parts of string
$pointer++;
}
$str_to_handle = substr[$your_string, [$pointer * $limit_in_kBytes], $limit_in_kBytes];
// here you can handle last part of string
.. hoặc bạn có thể sử dụng một chức năng như sau:
function parseStrToArr[$string, $limit_in_kBytes]{
$ret = array[];
$pointer = 0;
while[strlen[$string] > [[$pointer + 1] * $limit_in_kBytes]]{
$ret[] = substr[$string, [$pointer * $limit_in_kBytes ], $limit_in_kBytes];
$pointer++;
}
$ret[] = substr[$string, [$pointer * $limit_in_kBytes], $limit_in_kBytes];
return $ret;
}
$arr = parseStrToArr[$your_string, $limit_in_kBytes = 20000];
5 hữu ích 0 bình luận chia sẻ
answer
65
Có lẽ:
$num = 245354;
$numlength = strlen[[string]$num];
65 hữu ích 3 bình luận chia sẻ
answer
15
Câu trả lời được chấp nhận sẽ không hoạt động với những con số lớn. Cách tốt hơn để tính độ dài của bất kỳ số nào là gọi floor[log10[$num] + 1]
với một dấu kiểm cho 0
.
$num = 12357;
echo $num !== 0 ? floor[log10[$num] + 1] : 1; // prints 5
Nó có nhiều lợi thế. Nó nhanh hơn, bạn không thực hiện việc ép kiểu, nó hoạt động trên các số lớn, nó hoạt động với các hệ thống số khác nhau như bin, hex, oct.
Phương trình lôgarit với cơ số 10 sau đó làm cho tầng của nó và cộng thêm 1.
Giải pháp này có thể hoạt động độc lập trên cơ số, vì vậy nếu bạn muốn tính độ dài của nhị phân hoặc hex chỉ cần thay đổi cơ số của lôgarit.
Làm việc không cẩn thận
15 hữu ích 5 bình luận chia sẻ
answer
2
Giải pháp được chấp nhận đưa ra một vấn đề khi đánh giá các số âm.
Nó hoạt động với một số dương:
$num = 245354;
$numlength = strlen[[string]$num];
// Result: 6
Nhưng với một số âm, dấu [-] được thêm vào số đếm:
$num = -245354;
$numlength = strlen[[string]$num];
// Result: 7
Cách giải quyết nhanh chóng:
$num = -245354;
$numlength = strlen[[string]abs[$num]];
// Result: 6
2 hữu ích 0 bình luận chia sẻ
answer
1
Cách thanh lịch hơn :]
ceil[log10[$num]];
1 hữu ích 1 bình luận chia sẻ
answer
1
Bạn cũng có thể sử dụng một số phép toán cơ bản!
$digits = [int][log[$num,10]+1]
`
0 hữu ích 0 bình luận chia sẻ
answer
0
echo strlen[[string] abs[$num]]; // using **abs** it'll work with negative integers as well
0 hữu ích 3 bình luận chia sẻ
answer
0
Đã thử nghiệm trong PHP 4.4.9 - 8.0.0
$array = array[-1, 0, -0, 1, 4, 9, 10, -10, 20, -20, 100, -100];
foreach[ $array as $key => $num ]{
echo $key."\t{$num}\t=>\t".[$num !== 0 ? floor[log10[abs[$num]] + 1] : 1]."\n";
}
/* Output:
0 -1 => 1
1 0 => 1
2 0 => 1
3 1 => 1
4 4 => 1
5 9 => 1
6 10 => 2
7 -10 => 2
8 20 => 2
9 -20 => 2
10 100 => 3
11 -100 => 3
*/
0 hữu ích 0 bình luận chia sẻ
answer
0
Hàm sau hoạt động cho cả số nguyên hoặc số thực [hoạt động với PHP7 +]:
function digitsCount[$number]: int
{
$number = abs[$number];
$numberParts = explode[".", $number];
return
strlen[$numberParts[0]] +
[strlen[$numberParts[1] ?? 0]];
}
0 hữu ích 0 bình luận chia sẻ