Kết quả 1 đến 2 của 2
  1. #1
    Super Moderator Zen Studio's Avatar
    Ngày tham gia
    19-06-2013
    Bài viết
    393
    Cảm ơn
    58
    Được cảm ơn 166 trong 123 bài viết

    xử lý chuỗi với CI

    CI hỗ trợ rất nhiều thao tác trên chuỗi, theo kinh nghiệm mình thấy thì hầu như các yêu cầu thông dụng liên quan về chuỗi và xử lý văn bản đều được CI hỗ trợ đầy đủ.
    Để sử dụng những function này, bạn cần phải load helper tương ứng.

    Các function có trong Text helper:
    Để sử dụng những function này, trong controller bạn phải thêm lệnh sau:
    PHP Code:
    $this->load->helper('text');
    Nếu cần load trong modelviewlibrary hay các helper khácbạn load như sau:
    $ci =& get_instance();
    $ci->load->helper('text'); 
    1. Xoá bỏ ký tự có dấu, ký tự đặc biệt:
    Ví dụ:
    PHP Code:
    $a “Đây là ví dụ của việc xoá dấu”;
    $b convert_accented_characters($a); 
    Lúc này $b = “Day la vi du cua viec xoa dau”;
    Function này hoạt động được với hầu hết các loại ngôn ngữ hiện nay trên thế giới, trừ các loại chữ tượng hình (tiếng Nhật, Hàn, ...) và chữ Phạn.

    2. Giới hạn độ dài đoạn văn bản theo số lượng từ:
    Thông thường khi hiển thị đoạn tóm tắt của một văn bản dài, bạn sẽ đếm số ký tự tối đa và cắt chuỗi, tuy nhiên vấn đề là từ cuối cùng có thể bị cắt mất một phần dẫn tới lỗi khi hiển thị hoặc người dùng có thể hiểu nhầm từ đó. Trong trường hợp này bạn nên dùng hàm word_limiter để cắt đoạn văn theo số lượng từ được giới hạn.
    Ví dụ:
    PHP Code:
    $a “Đây là ví dụ của cắt theo số từ”;
    $b word_limiter($a3);
    $c word_limiter($a3... Đọc tiếp ...);
    Lúc này:
    $b “Đây là ví...;
    $c “Đây là ví... Đọc tiếp ...
    3. Giới hạn độ dài văn bản theo số lượng ký tự:

    Tương tự như word_limiter nhưng function character_limiter lại cắt theo đúng số lượng ký tự bạn cần.
    Ví dụ:
    PHP Code:
    $a “Đây là ví dụ của cắt theo số từ”;
    $b character_limiter($a5);
    $c character_limiter($a5... Đọc tiếp ...);
    Lúc này:
    $b “Đây l...;
    $c “Đây l... Đọc tiếp ...
    4. Kiểm duyệt và xoá các từ/cụm từ xấu:
    Nếu bạn viết một trang có cho phép người dùng gửi đăng bài, và bạn muốn ngăn chặn người dùng gửi những từ tục tĩu gây ảnh hưởng xấu tới người khác. CI hỗ trợ function word_censor để kiểm duyệt và ngăn chặn hành động này.
    Ví dụ:
    PHP Code:
    $bad_word = array('darn''shucks''golly''phooey');
    $string word_censor($string$bad_word'****'); 
    Lúc này tất cả các từ được định nghĩa trong $bad_word có xuất hiện trong $string sẽ bị đổi thành '****'

    5. Tự động kiểm tra và chèn mã màu định dạng cho đoạn văn bản có code PHP, ASP, HTML, Javascript:
    Có nhiều cách để hiển thị một đoạn văn bản có mã code với đầy đủ màu sắc và định dạng. CI hỗ trợ một cách rất đơn giản mà bạn không phải làm nhiều, đó là function highlight_code.
    Ví dụ:
    PHP Code:
    $a “gán đoạn mã code vào đây”;
    $b highlight_code($a);
    echo 
    $b
    Lúc này bạn sẽ thấy mã code được hiển thị khá đẹp mắt trên trình duyệt. Màu sắc của các từ khoá, biến, ... được quy định trong file php.ini

    6. Tạo chuỗi tóm tắt bằng cách cách bỏ đoạn giữa
    Như trong diễn đàn này mọi người vẫn thấy, khi bạn gửi một đường link quá dài sẽ bị cắt ngắn bớt nhưng không phải cắt đoạn sau mà cắt bớt đoạn giữa và thêm dấu “...” vào. Trong CI để làm điều đó ta dùng function ellipsize.
    Ví dụ:
    PHP Code:
    $a 'đây là đoạn văn bản khá dài để làm ví dụ';
    $b ellipsize($a330.5'…'); 
    Kết quả sẽ là: đây là đoạ…ể làm ví dụ
    Trong đó các tham số lần lượt có ý nghĩa như sau:
    $a: chuỗi cần cắt
    33: Độ dài tối đa của chuỗi, nếu $a ngắn hơn độ dài này thì CI sẽ không làm gì cả
    0.5: Con số này chạy từ 0 -> 1, là phần trăm của vị trí sẽ bị cắt và nối thêm dấu “...”. Nếu bạn truyền vào 1 thì nó sẽ cắt cuối chuỗi (tương tự character_limiter). Nếu bạn truyền vào là 0 thì nó sẽ cắt và nối ở đầu chuỗi. Nếu bạn thích cắt và nối ở vị trí sao cho sau dấu ... dài bằng 2/3 đoạn trước dấu ... thì bạn sẽ truyền vào con số 2/3 ~ 0.6666666667
    '…': Nó sẽ nối cái chuỗi bạn truyền vào này thay cho đoạn bị cắt. Cụ thể trong trường hợp này … là dấu ... trong mã HTML đó bạn :), nếu bạn không truyền tham số cuối này thì mặc định CI sẽ là …


    Các function có trong String helper:
    Để sử dụng những function này, trong controller bạn phải thêm lệnh sau:
    $this->load->helper('string');
    Nếu cần load trong model, view, library hay các helper khác, bạn load như sau:
    PHP Code:
    $ci =& get_instance();
    $ci->load->helper('string'); 
    1. Tạo chuỗi ngẫu nhiên:
    $a = random_string('alnum', 16); // Tạo chuỗi ngẫu nhiên 16 ký tự từ các ký tự chữ cái (hoa thường) và chữ số.
    Tham số đầu ('alnum') có thể thay bằng:
    alpha: Ký tự chữ cái hoa thường.
    alnum: Chữ cái hoa thường và chữ số.
    numeric: Chỉ bao gồm chữ số.
    nozero: Bao gồm chữ số từ 1-9 (không có số 0).
    unique: MD5 của uniqid(). Lúc này tham số độ dài sẽ bỏ qua và chuỗi tạo thành luôn có 32 ký tự.
    sha1: Chuỗi mã hoá ngẫu nhiên theo security key mà bạn đã cấu hình trong file config.php .

    2. Lấy giá trị tuần tự và lặp lại theo chu kỳ vòng tròn của dãy các giá trị
    Mô tả thì khá khó hiểu xử lý chuỗi với CI nhưng mà cách dùng thì khá là đơn giản và hữu ích. Mình có một ví dụ thế này:
    Để tạo một table trên view mà mỗi dòng của nó có những màu nền khác nhau. Để làm điều đó mỗi tr mình gán một class khác nhau với css khác nhau. Cụ thể:
    Tức là <tr> đầu tiên của <table> sẽ có class = class1.
    <tr> tiếp theo của <table> sẽ có class = class2.
    <tr> tiếp theo nữa của <table> sẽ có class = class1. (lặp lại)
    <tr> sau đó của <table> sẽ có class = class2.

    Trong view mình sẽ có code thế này:
    <?php foreach ($data as $item) { ?>
    <tr class=”<?php echo alternator('class1','class2') ?>”>
    <?php } ?>
    CI sẽ tự động xác định dòng đó là dòng thứ bao nhiêu và tự lấy đúng class mà mình muốn xử lý chuỗi với CI
    Bạn có thể gọi alternator với số lượng tham số bất kỳ, ví dụ như để xuất chu kỳ tháng cho một năm bạn chỉ cần truyền vào kiểu như: alternator(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12).

    3. Xoá ký thừa tự lặp lại nhiều lần
    PHP Code:
    $a ,,,caan,, phai,, xoaa,,,, bo dau ,;
    $b reduce_multiples($a);// Lúc này $b = “,caan, phai, xoaa, bo dau,”
    $b reduce_multiples($a,TRUE);// Lúc này $b = “caan, phai, xoaa, bo dau” mất luôn dấu , ở đầu và cuối
    $b reduce_multiples($a“a”);// Lúc này $b = “,,,can,, phai,, xoa,,,, bo dau,” lúc này nó xoá bỏ chữ a thừa thay cho dấu , mặc định. 
    4. Làm đẹp đường dẫn bằng cách xoá các dấu / mà không làm mất đoạn http://
    Thông thường, đường dẫn có thể có xuất hiện nhiều dấu / không đẹp mắt và bạn cần xoá nó đi. Tuy nhiên vấn đề hay gặp phải là sau khi xoá thì nếu đường dẫn bắt đầu bằng http:// thì hai dấu // đó cũng mất đi một cái làm điên đầu các “học giả” xử lý chuỗi với CI Trong CI chỉ cần làm như sau:
    PHP Code:
    $a “http://domain.com//abc//defg//hjk”;
    $b reduce_double_slashes($a);
    Lúc này $b “http://domain.com/abc/defg/hjk” 
    PS:// các bác đừng chém em nhé, nhưng gì em tìm và học đều share hết cho các bác đấy
    Sửa lần cuối bởi Zen Studio; 04-07-2013 lúc 01:56 PM.
    hay cung chung toi chinh phuc tri thuc

  2. The Following 2 Users Say Thank You to Zen Studio For This Useful Post:

    dzung.tt (07-07-2013),PhanNguyenChuong (17-07-2013)

  3. #2
    Super Moderator maduong's Avatar
    Ngày tham gia
    30-03-2013
    Bài viết
    65
    Cảm ơn
    6
    Được cảm ơn 44 trong 28 bài viết
    Rất bổ ích

Chia sẽ và Bình Luận chủ đề xử lý chuỗi với CI trên facebook

Các Chủ đề tương tự

  1. web link thế này chuẩn seo chưa các bác
    Bởi vudesign trong diễn đàn Hỏi đáp
    Trả lời: 3
    Bài cuối: 28-02-2014, 11:03 AM
  2. error database . ai tung gap tinh trang nay chua
    Bởi vudesign trong diễn đàn Hỏi đáp
    Trả lời: 0
    Bài cuối: 19-02-2014, 01:41 PM
  3. Mình chuẩn bị chuyển sang Ngôn Ngũ Python rồi!
    Bởi 2webvn.com trong diễn đàn Cuộc sống
    Trả lời: 3
    Bài cuối: 23-10-2013, 10:29 AM
  4. .htaccess chuẩn cho Codeigniter
    Bởi 2webvn.com trong diễn đàn Turtorial
    Trả lời: 1
    Bài cuối: 16-05-2013, 09:00 PM

Các từ khóa xuất hiện trên google của chủ đề

Cắt văn bản theo từ khóa php

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •