10/10/2018, 00:13

Giới hạn số ký tự chữ số xuất ra từ dữ liệu (PHP)? HELP!!

demo:

cho 1 vd...
Mình có 1 tiêu đề mẫu tin trên 20 ký tự..., vậy mình muốn khi xuất dữ liệu từ mysql ra ngoài thì cái "tiêu đề mẫu tin" đó ko dc hiển thị trên 10 ký tự mà chỉ dc đúng 10 thôi...
demo 2:
qwe qwe qwe qwe qwe qwe qwe qwe
==>
qwe qwe qw ...

---------------------

Xin hãy san sẻ cho mình biết! xin cảm ơn
hoangcn02 viết 02:13 ngày 10/10/2018
Nếu muốn hiện 1 số chữ nào đó thui, thì pác đưa vào mảng, sau đó show ra x phần tử đầu tiên, số x này pác tự chọn :-)
phamduyvt viết 02:17 ngày 10/10/2018
<?echo str_str($chuoi,0,10)?>
diepnghitinh viết 02:29 ngày 10/10/2018
Được gửi bởi phamduyvt
<?echo str_str($chuoi,0,10)?>
liệu có sự nhầm lẫn nào ở đây ko bạn ! Mình làm ko dc... phải dùng hàm substr($text,0,10) mới ra kết quả! Nhưng mình muốn kết quả hiện ra phải là như vậy " qweqweqweqw... " chứ ko phải là như vầy "qweqweqweqw" mong các bạn giúp đỡ.
3do viết 02:22 ngày 10/10/2018
Được gửi bởi diepnghitinh
Nhưng mình muốn kết quả hiện ra phải là như vậy " qweqweqweqw... " chứ ko phải là như vầy "qweqweqweqw" mong các bạn giúp đỡ.
em bó tay
lnt viết 02:15 ngày 10/10/2018
1. Dùng mb_substr mới đúng cho chuỗi Unicode, nếu không sẽ ngắt giữa ký tự unicode và cho ra mã. Diễn đàn này cũng bị lỗi như vậy.
2. Nếu muốn giới hạn chuỗi n ký tự thì ngắt n-1 ký tự đầu rồi ghép thêm ký tự ... (tra Charcter Map để tìm ký tự có ba chấm, tùy font chữ)
tiendx2002 viết 02:20 ngày 10/10/2018
Được gửi bởi lnt
1. Dùng mb_substr mới đúng cho chuỗi Unicode, nếu không sẽ ngắt giữa ký tự unicode và cho ra mã. Diễn đàn này cũng bị lỗi như vậy.
Đúng.
Được gửi bởi lnt
2. Nếu muốn giới hạn chuỗi n ký tự thì ngắt n-1 ký tự đầu rồi ghép thêm ký tự ... (tra Charcter Map để tìm ký tự có ba chấm, tùy font chữ)
Giải pháp (not code):
+ (if) Check nếu nhỏ hơn hoặc bằng độ dài cần cắt: => trả về nguyên bản.
+ (else) Check nếu dài hơn => trước tiên (substr) lấy 1 xâu có độ dài đúng bằng độ dài cần cắt, sau đó bỏ đi phần sau dấu cách cuối cùng (substr, strrpos).
+ Gắn thêm ba dấu chấm (...) vào kết quả.
+ Trả về giá trị.
Thân mến.
mr.newbie viết 02:27 ngày 10/10/2018
Code nhanh theo gợi ý trên của chú Tiến, bạn nào dùng nếu có lỗi thì tự sửa nhé.
Code:
$cString = "Chào tất cả mọi người  - Đây sẽ là một tiêu đề rất dài, rất dài đấy, dài lắm lắm lắm cơ"; // Temporary string		
$iChar = "100"; // Max number of character(s) for cutting
$iOutput = "85"; // Max number of character(s) for the output
if(strlen($cString) > $iChar)
{
    $cOutput = mb_substr($cString, 0, $iOutput, "UTF-8");
    while(substr($cOutput, -1) != " ")
    {
        $cOutput = substr($cOutput, 0, strlen($cOutput)-1);
    }
    $cOutput = $cOutput." ...";
}
echo $cOutput;
WanderingRiver viết 02:13 ngày 10/10/2018
Em có xin sửa lại một chút . Trong trường hợp bài viết không đến 100 từ thì nó sẽ chẳng hiện thị được cái gì hết như vậy bác nên thay đoạn cuối từ $cOutput = $cOutput." ..." thành $cString = $cOutput." ..." nếu để vào trong function thì hay hơn một chút nữa . Thành thật cám ơn các bác đã chỉ bảo thêm.
mr.newbie viết 02:21 ngày 10/10/2018
ờ, code nhanh nhầm.
Nói chung chả cần biến $cOutput, replace all cái $cOutput bằng cái $cString là ổn.
Bài liên quan
0