Trang

Thứ Năm, 18 tháng 7, 2013

Zend_Filter [Zend Framework]

Zend Filter giúp chúng ta xử lý dữ liệu trước khi in ra màn hình hay trước khi insert vào database
1. Lọc lấy chữ và số (Alnum)
- Không lấy khoảng trắng
    $filter = new Zend_Filter_Alnum();
    $return = $filter->filter('This is (my) content: 123');
    // returns 'Thisismycontent123'

- Lấy luôn khoảng trắng
    $filter = new Zend_Filter_Alnum(array('allowwhitespace' => true));
    $return = $filter->filter('This is (my) content: 123');
    // returns 'This is my content 123'

2. Lọc lấy chữ (Alpha)
- Không lấy khoảng trắng
    $filter = new Zend_Filter_Alpha();
     
    print $filter->filter('This is (my) content: 123');
    // return Thisismycontent

- Lấy luôn khoảng trắng
    $filter = new Zend_Filter_Alpha(array('allowwhitespace' => true));
     
    print $filter->filter('This is (my) content: 123');
    // return This is my content

3. Lọc lấy số (Digits)
    $filter = new Zend_Filter_Digits();
     
    print $filter->filter('October 2009');
   // return 2009

4. Lọc lấy thư mục cha
    $filter = new Zend_Filter_Dir();
     
    print $filter->filter('/etc/passwd');
    // return "/etc"

    $filter = new Zend_Filter_Dir();
     
    print $filter->filter('C:/Temp/x');
    // return "C:/Temp"

5. Lọc lấy tên file
    $filter = new Zend_Filter_BaseName();
     
    print $filter->filter('/vol/tmp/filename');
    // return "filename"

    $filter = new Zend_Filter_BaseName();
     
    print $filter->filter('/vol/tmp/filename.txt');
    // return filename.txt

6. Thay thế emty string thành Null
    $filter = new Zend_Filter_Null();
    $value  = '';
    $result = $filter->filter($value);
    // returns null instead of the empty string

7. Tìm kiếm và thay thế theo regular expression
    $filter = new Zend_Filter_PregReplace(array('match' => '/bob/',
                                                'replace' => 'john'));
    $input  = 'Hy bob!';
     
    $filter->filter($input);
    // returns 'Hy john!'
Hoặc
$filter = new Zend_Filter_PregReplace();
$filter->setMatchPattern(array('bob', 'Hy'))
       ->setReplacement(array('john', 'Bye'));
$input  = "Hy bob!";
 
$filter->filter($input);
// returns 'Bye john!'

8. Chuyển chuỗi thành chữ thường
    $filter = new Zend_Filter_StringToLower();
     
    print $filter->filter('SAMPLE');
    // returns "sample"

Xác định encoding
$filter = new Zend_Filter_StringToLower(array('encoding' => 'UTF-8'));

9. Chuyển chuỗi thành chữ hoa
    $filter = new Zend_Filter_StringToUpper();
     
    print $filter->filter('Sample');
    // returns "SAMPLE"

Xác định encoding
$filter = new Zend_Filter_StringToUpper(array('encoding' => 'UTF-8'));

10. Cắt bỏ khoảng trống đầu cuối
    $filter = new Zend_Filter_StringTrim();
     
    print $filter->filter(' This is (my) content: ');
   // return 'This is (my) content:'. Notice that the whitespace characters have been removed.

    $filter = new Zend_Filter_StringTrim(':');
    // or new Zend_Filter_StringTrim(array('charlist' => ':'));
     
    print $filter->filter(' This is (my) content:');
    // return 'This is (my) content'

11. Lọc kí tự xuống dòng
$filter = new Zend_Filter_StripNewLines();
 
print $filter->filter("This is (my)\n\rcontent: ');
//return 'This is (my) content:'

12. Lọc thẻ XML và HTML
- Bỏ toàn bộ các thẻ XML và HTML
    $filter = new Zend_Filter_StripTags();
     
    print $filter->filter('<B>My content</B>');
    // return 'My content'

When the content contains broken or partitial tags then the complete following content will be erased
   $filter = new Zend_Filter_StripTags();
     
    print $filter->filter('This contains <a href="http://example.com">no ending tag');
   // return 'This contains' 
  
- Không bỏ các thẻ mình muốn
    $filter = new Zend_Filter_StripTags(array('allowTags' => 'a'));
     
    $input  = "A text with <br/> a <a href='link.com'>link</a>";
    print $filter->filter($input);
    // returns: A text with a <a href='link.com'>link</a>

- Không bỏ thuộc tính nào đó của một thẻ
    $filter = new Zend_Filter_StripTags(array('allowAttribs' => 'src'));
     
    $input  = "A text with <br/> a <img src='picture.com' width='100'>picture</img>";
    print $filter->filter($input);
    // returns: A text with a <img src='picture.com'>picture</img>

9. Callback - Tự viết hàm kiểm tra
Để làm được việc này chúng ta cần thực hiện 2 việc: Tạo thư viện hàm riêng, gọi hàm kiểm tra và đưa ra các xử lý.

a. Tạo thư viện hàm riêng
Thư viện của Zend rất lớn và được cập nhật liên tục, vì thế thư viện riêng của chúng ta nên để riêng biệt với thư viện Zend

Bước 1: Vào thư mục library tạo một thư mục Me

Bước 2: Mở file application.ini thêm dòng sau
autoloadernamespaces.Me = "Me_"

Bước 3: Trong thư mục Me ta viết class để filter
<?php
class Me_Tenfile{
    // các hàm filter cần thiết  
}
?>

Giả sử ta lọc lấy số chẵn
<?php
class Me_Myfilter{
    public function soChan($so)
       {
           if($so%2 == 0)
             return $so;
       }
}
?>

b. Gọi hàm filter và đưa ra các xử lý
Trong Controller ta viết như sau:
public function mycheckAction()
 {
     $check = new Me_Myfilter;
     $fil = new Zend_Filter_Callback(array($check,'soChan'));
     $kq = $fil->filter(52);
     echo $kq;
}

Nguồn: Sưu tầm Internet

Không có nhận xét nào:

Đăng nhận xét