10/10/2018, 13:29

Nhờ giúp đỡ về Code PHP tính dung lượng của Chuỗi hay mảng gì đó cũng được.

Chào các Bác.
Tình hình là bây giờ mình muốn tính dung lượng theo kib, hoặc mb của 1 Chuỗi hoặc 1 đoạn văn bản có trong Data mà không biết dùng phương thức gì, hay hàm gì để tính.
Các bác ở đây có ai biết thì chỉ bảo Em với ạ.

VD yêu cầu của EM là đoạn văn văn bản " Chào các Bác. " nặng bao nhiêu Kib ạ.

Cảm ơn các Bác nhiều.
Vô Thin viết 15:32 ngày 10/10/2018
Bạn thử cái này:

PHP Code:
<?php
$chuoi 
"Chuỗi của bạn ở đây";
print_r(unpack("C*"$chuoi));
?>
Bạn xem kết quả xuất ra màn hình sẽ biết nên dùng hàm unpack thế nào để lấy kết quả trả về rồi tính toán nhân với 1024 và các bội của 1024 để tính ra size theo KB, MB,... của chuỗi.
joctvn viết 15:34 ngày 10/10/2018
Được gửi bởi superthin
Bạn thử cái này:

PHP Code:
<?php
$chuoi 
"Chuỗi của bạn ở đây";
print_r(unpack("C*"$chuoi));
?>
Bạn xem kết quả xuất ra màn hình sẽ biết nên dùng hàm unpack thế nào để lấy kết quả trả về rồi tính toán nhân với 1024 và các bội của 1024 để tính ra size theo KB, MB,... của chuỗi.
NÓ hiển thị như thế này Bác ạ

Array ( [1] => 67 [2] => 104 [3] => 117 [4] => 225 [5] => 187 [6] => 151 [7] => 105 [8] => 32 [9] => 99 [10] => 225 [11] => 187 [12] => 167 [13] => 97 [14] => 32 [15] => 98 [16] => 225 [17] => 186 [18] => 161 [19] => 110 [20] => 32 [21] => 225 [22] => 187 [23] => 159 [24] => 32 [25] => 196 [26] => 145 [27] => 195 [28] => 162 [29] => 121 )

Em nhìn mà chẳng hiểu gì. Ko biết lấy số nào để *1024 nữa.

Chắc là do Em dốt PHP quá nên ko biết. Bác có thể cho nói thêm cho Em 1 cách cụ thể được ko ạ.
EM cảm ơn bác nhiều ạ.
Vô Thin viết 15:37 ngày 10/10/2018
Bạn có học bảng mã ASCII và hệ nhị phân cũng như về byte không đó? Nhìn dãy số trên mà không hiểu thì không phải kiến thức về PHP đâu, mà hóa ra là chưa hiểu các type trong lập trình (dù PHP thì type không ràng buộc chặt chẽ kiểu phải khai báo như C, Java).

Đơn giản nhất của bên trên là bạn lấy

PHP Code:
<?php

count
(unpack("C*"$chuoi));

?>
thì sẽ ra được số byte của chuỗi cần tính, có số byte rồi thì bạn tự quy đổi tiếp. Việc bạn không biết bao nhiêu byte thì được 1KB, 1MB,... thì nên khoan học PHP đã, học lại các khái niệm căn bản về máy tính đi đã.
joctvn viết 15:37 ngày 10/10/2018
Được gửi bởi superthin
Bạn có học bảng mã ASCII và hệ nhị phân cũng như về byte không đó? Nhìn dãy số trên mà không hiểu thì không phải kiến thức về PHP đâu, mà hóa ra là chưa hiểu các type trong lập trình (dù PHP thì type không ràng buộc chặt chẽ kiểu phải khai báo như C, Java).

Đơn giản nhất của bên trên là bạn lấy

PHP Code:
<?php

count
(unpack("C*"$chuoi));

?>
thì sẽ ra được số byte của chuỗi cần tính, có số byte rồi thì bạn tự quy đổi tiếp. Việc bạn không biết bao nhiêu byte thì được 1KB, 1MB,... thì nên khoan học PHP đã, học lại các khái niệm căn bản về máy tính đi đã.
Hi. Cảm ơn bạn nhé. Chỉ đơn giản câu count(unpack("C*", $chuoi)); mà mình cũng ko biết thật là kém cỏi.

Cảm ơn bạn đã giúp mình nhé.
Bài liên quan
0