Sự kiện

Thủ thuật PHP : Cắt chuỗi mà không làm mất nghĩa

Danh mục: PHP & MySQL
 

Hôm nay mình sẽ hướng dẫn các bạn cách lấy ra chuỗi con mà không làm nó mất đi ý nghĩa, ví dụ nếu bạn muốn lấy 1 chuỗi con từ 1 đoạn văn thì bạn thường sử dụng hàm substr, tuy nhiên hàm này đôi khi làm cho chuỗi con trở nên khó hiểu, chúng ta cùng thử 1 ví dụ sau đây:

cat chuoi trong php, string php, subtr ,thu thuat php, string cut

<?php

$mytext = "Chao Mung Ban Den Voi Thu Thuat Web";

$result = substr($mytext,0,7);

echo $result;

return $str;

?>

Kết quả của của câu lệnh trên là xuất ra màn hình dòng chữ “Chao Mu” , vậy có cách nào giúp chúng ta lấy ra từng câu tùy vào số lượng câu mà chúng ta muốn hiển thị không, mình có 2 hàm sau giúp các bạn làm điều đó

Hàm thứ 1 :

<?php

function _substr($str, $length, $minword = 3)

{

$sub = '';

$len = 0;

foreach (explode(' ', $str) as $word)

{

    $part = (($sub != '') ? ' ' : '') . $word;

    $sub .= $part;

    $len += strlen($part);

    if (strlen($word) > $minword && strlen($sub) >= $length)

    {

      break;

    }

 }

    return $sub . (($len < strlen($str)) ? '...' : '');

}

?>

Hàm trên sẽ chèn thêm dòng “…”  vào chuỗi con mà chúng ta lấy ra, nó giống như hàm substr nhưng nó không cắt từng kí tự mà chỉ cắt ra từng câu.
Ví dụ chúng ta áp dụng nó như sau :

<?php

echo _substr('Chao Mung Ban Den Voi Thu Thuat Web',7);

?>

// xuất ra màn hình là “Chao Mung…”

Hàm thứ 2:

<?php

function text_limit($str,$limit=10)

 {

 if(stripos($str," ")){

 $ex_str = explode(" ",$str);

 if(count($ex_str)>$limit){

 for($i=0;$i<$limit;$i++){

 $str_s.=$ex_str[$i]." ";

 }

 return $str_s;

 }else{

 return $str;

 }

 }else{

 return $str;

 }

 }

?>

Hàm trên hoạt động như sau:
– Chỉ định bao nhiêu câu mà bạn muốn hiển thị
– Tìm câu cuối cùng hiển thị là gì
– Nếu câu cuối không phải là khoảng trắng thì nó sẽ tìm đến câu kế tiếp và tìm cho đến khi thấy khoảng trắng.
– Hiển thị ra màn hình
Ví dụ dùng cho hàm trên như sau :

<?php

echo text_limit('Chao Mung Ban Den Voi Thu Thuat Web',7); Xuất ra "Chao Mung Ban Den Voi Thu Thuat "

echo text_limit('Chao Mung Ban Den Voi Thu Thuat Web',3); Xuất ra "Chao Mung Ban"

?>

Vậy là từ nay bạn không cần phải lo vấn đề lấy chuỗi con rồi phải không, hy vọng 2 hàm trên sẽ có ích cho các bạn , và chúc các bạn thành công.

 



BÀI VIẾT KHÁC
CODE GỢI Ý
BÌNH LUẬN

BẢN QUYỀN ®
MANGUON.COM đã đăng kí quyền tác giả: AR1682/GP-STTTP
Mọi chia sẻ nội dung thuộc tác quyền của MANGUON.COM phải ghi rõ "Nguồn MANGUON.COM"