Kiểm tra chuỗi trong php

Kiểu


Kết quả:
        
Con $congi mà trèo cây $caygi, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
6 gọi là chuỗi [hay xâu ký tự] đó là chuỗi các ký tự [biểu diễn nội dung văn bản - text]: ví dụ

Kết quả:
        
Con $congi mà trèo cây $caygi, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
7 là một chuỗi trong PHP.

Khai báo chuỗi ký tự

Thường thì bạn có 4 cách để có được chuỗi ký tự trong PHP:

  • Sử dụng cặp ký tự nháy đơn
    
    Kết quả:
            
    Con $congi mà trèo cây $caygi, 
    Hỏi thăm chú chuột đi đâu vắng nhà. 
    Chú chuột đi chợ đường xa.
    Mua mắm mua muối giỗ cha chú $congi.
    8
  • Sử dụng cặp ký tự nháy kép
    
    Kết quả:
            
    Con $congi mà trèo cây $caygi, 
    Hỏi thăm chú chuột đi đâu vắng nhà. 
    Chú chuột đi chợ đường xa.
    Mua mắm mua muối giỗ cha chú $congi.
    9
  • Sử dụng cú pháp heredoc
  • Sử dụng cú pháp nowdoc

Biểu diễn chuỗi theo nháy đơn ''

Đây là cách đơn giản để có được chuỗi ký tự. Chuỗi là các ký tự nằm giữa cặp nháy đơn


Kết quả:
        
Con $congi mà trèo cây $caygi, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
8. Khi dùng kiểu này muốn chứa ký tự

//OUT: I learn PHP
1 thì phải viết

//OUT: I learn PHP
2, muốn chứa

//OUT: I learn PHP
3 thì viết

//OUT: I learn PHP
4.

Ví dụ:

Biểu diễn chuỗi theo nháy kép ""

Chuỗi là các ký tự nằm giữa cặp nháy kép


Kết quả:
        
Con $congi mà trèo cây $caygi, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
9. Khi dùng cách tạo chuỗi này PHP sẽ tự động chuyển ký hiệu một số ký tự đặc biệt. Ví dụ:

//OUT: I learn PHP
6 là

//OUT: I learn PHP
7,

//OUT: I learn PHP
8 là

//OUT: I learn PHP
9,
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
0 là
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
1,
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
2 là
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
3,
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
4 là
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
5,

//OUT: I learn PHP
4 là
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
7 ...

Điều đặc biệt của chuỗi trong dấu "" là nó tự động chèn giá trị của biến chứa bên trong khai báo chuỗi.

Chạy code trên sẽ in ra kết quả: "I am learning PHP"

Biểu diễn chuỗi theo Heredoc

Nếu hai cách trên vẫn thấy gò bó trong việc sử dụng chuỗi thì bạn có thể tham khảo Heredoc, nó vẫn tận dụng được cách dùng "" tự chèn giá trị biến nhưng thoải mái hơn khi sử dụng các ký tự đặc biệt.

Heredoc bao giờ cũng bắt đầu bằng

$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
8, tiếp theo là một tên
$str = 'Chào';
echo strlen[$str];
//OUT: 5

echo mb_strlen[$str];
//OUT: 4
9 do bạn đặt rồi phải xuống dòng ngay, và cuối cùng phải kết thúc bằng
 $str = 'Hello World PHP!';
 echo str_word_count[$str];
 //OUT: 3
0 ở một dòng mới.

Ví dụ sau tôi chọn định danh có tên là

 $str = 'Hello World PHP!';
 echo str_word_count[$str];
 //OUT: 3
1:


Kết quả:

Con mèo mà trèo cây cau, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú mèo.

Biểu diễn chuỗi theo Nowdoc

Cách này khá giông với Heredoc, nhưng bắt đầu bằng

 $str = 'Hello World PHP!';
 echo str_word_count[$str];
 //OUT: 3
2 [có cặp

Kết quả:
        
Con $congi mà trèo cây $caygi, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.
8 - heredoc thì không có]. Nowdoc vẫn cho phép viết trực tiếp các ký tự đặc biệt nhưng sẽ không phân tích biến đề chèn vào chuỗi.

Trở lại bài thơ trên nếu dùng nowdoc:


Kết quả:
        
Con $congi mà trèo cây $caygi, 
Hỏi thăm chú chuột đi đâu vắng nhà. 
Chú chuột đi chợ đường xa.
Mua mắm mua muối giỗ cha chú $congi.

CÁC PHÉP TOÁN VÀ HÀM VỀ CHUỖI TRONG PHP

Có khả nhiều hàm xây dựng sẵn của PHP về chuỗi, bạn tham khảo thêm ở đây STRING. Sau đây chỉ đề cập vài hàm hay dùng:

Khi trang web được hiển thị trên trình duyệt thì sẽ hiển thị các thông tin cho người dùng dưới dạng chuỗi. Vì vậy nếu bạn xử lý chuỗi không hợp lý và đúng quy chuẩn thì trang web của bạn hiển thị cho người dùng không đúng như những gì bạn muốn hay những gì bạn muốn đem đến cho người dùng. Đồng thời đem lại trải nghiệm không tốt cho người dùng khi truy cập tới trang web.

Việc xử lý đầu ra cho một trang web cũng là một phần quan trọng trong việc phát triển trang web đem đến trải nghiệm tốt cho người dùng, cụ thể ở đây là việc xử lý chuỗi. Dưới đây là một nguyên tắc xử lý chuỗi và một số hàm xử lý chuỗi trong PHP.

2. Nguyên tắc khi xuất chuỗi.
  • Khi muốn nối 2 chuỗi với nhau có thể sử dụng toán tử “ . “ hoặc toán tử “ .= “

    ví dụ:


output:

Hello Viet Nam!
Hello Viet Nam!
HelloViet Nam! Viet Nam!

lưu ý: Khi dùng toán tử ‘.=’ thì ký tự cuối của chuỗi này sẽ nối với ký tự đầu của chuỗi kia không xuất hiện khoảng trắng giữa 2 chuỗi và sau khi thực hiện ‘.=’ thì biến


8 đã bị thay đổi.

  • Nếu bạn sử dụng dấu nháy "" để in ra chuỗi thì khi chèn biến bạn sẽ không phải nối chuỗi.

    ví dụ:


output: Hello Viet Nam!

  • Khi sử dụng dấu "" để in ra chuỗi đồng thời trong chuỗi có ký tự " thì phải dùng ký tự \ trước dấu " ở trong chuỗi.

    ví dụ:


output: Hello "Viet Nam"!

  • Ký tự ' xuất hiện trong chuỗi khi in ra sử dụng dấu "" thì chúng ta không phải thêm bất kỳ ký tự gì trước nó.

    ví dụ:


9.

  • ví dụ:

  • 
    

    output: 18

    str_word_count[
    
    
    9]

    • Hàm này có tác dụng đếm số từ có trong chuỗi $string.

    • ví dụ:

    
    

    output: 5

    str_repeat[
    
    
    9,
    
    
    3]

    • Hàm này có tác dụng lặp chuỗi
      
      
      9
      
      
      3 lần.
    • ví dụ:
    
    

    output:

    Xin chao Viet Nam!
    U23 Viet Nam co len!
    U23 Viet Nam co len!
    U23 Viet Nam co len!
    

    str_replace[
    
    
    6,
    
    
    7,
    
    
    9]

    • Hàm tìm kiếm chuỗi

      
      
      6 trong chuỗi
      
      
      9 và thay thế bằng chuỗi
      
      
      6 trong chuỗi
      
      
      9bằng chuỗi
      
      
      7.

    • ví dụ:

    
    

    output:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    0

    substr[
    
    
    9,
    
    
    5,
    
    
    6]

    • Hàm này có tác dụng cắt chuỗi

      
      
      9, cắt toàn bộ các phần của chuỗi trừ điểm bắt đầu ở vị trí
      
      
      5 đếm
      
      
      6 ký tự sẽ được giữ lại.

    • ví dụ:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    1

    output:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    2

    addcslashes[
    
    
    9,
    Xin chao Viet Nam!
    U23 Viet Nam co len!
    U23 Viet Nam co len!
    U23 Viet Nam co len!
    
    1]

    • Hàm

      Xin chao Viet Nam!
      U23 Viet Nam co len!
      U23 Viet Nam co len!
      U23 Viet Nam co len!
      
      2 trả về một chuỗi có dấu \ được chèn phía trước các ký tự của chuỗi
      
      
      9 mà các ký tự này được chỉ định trong chuỗi
      Xin chao Viet Nam!
      U23 Viet Nam co len!
      U23 Viet Nam co len!
      U23 Viet Nam co len!
      
      1.

    • ví dụ:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    3

    output:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    4

    addslashes[
    
    
    9]

    • Hàm có tác dụng chèn ký tự \ vào trước ký tự " hoặc ký tự ' nếu có trong chuỗi

      
      
      9.

    • ví dụ:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    5

    output:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    6

    strtoupper[
    
    
    9]

    • Sử dụng hàm để chuyển các ký tự trong chuỗi thành chữ hoa.

    • ví dụ:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    7

    output:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    8

    ucwords[
    
    
    9]

    • Sử dụng hàm này để chuyển các ký tự đầu tiên của các từ trong chuỗ

      
      
      9 thành chữ hoa.

    • ví dụ:

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    9

    output:

    
    
    0

    ucfirst[
    
    
    9]

    • Sử dụng hàm để chuyển ký tự đầu tiên của chuỗi

      
      
      9 thành chữ hoa.

    • ví dụ:

    
    
    1

    output:

    
    
    2

    strtolower[
    
    
    9]

    • Sử dụng hàm để chuyển hết các chữ cái trong chuỗi

      
      
      9 thành chữ in thường.

    • ví dụ:

    
    
    3

    output:

    
    
    44. Regular Expression
    • Khi bạn muốn kiểm tra định dạng chuỗi hay muốn kiểm tra định dạng dữ liệu truyền vào có đúng hay không thì có thể sử dụng Regular Expression để giải quyết vấn đề đó.

    • Regular Expression là một biểu thức chính quy được dùng để xử lý so khớp với dữ liệu giúp chúng ta có thể kiểm tra chuỗi một cách chi tiết hơn. Những biểu thức này sẽ có những nguyên tắc riêng và phải tuân theo nguyên tắc đó thì biểu thức chuỗi đầu vào mới hoạt động được.

    • ví dụ: muốn kiểm tra email nhập vào có đúng là định dạng của 1 email không?

    Một số quy tắc Regular Expressions trong PHP

    Hàm preg_match.

    • Hàm

      
      
      4 được dùng để so khớp dữ liệu đầu vào và chuỗi Regular Expressions trả về kết quả so khớp.

    • Cú pháp:

      
      
      5

      • 
        
        6là biểu thức Regular Expression
      • 
        
        7 là chuỗi cần kiểm tra
      • 
        
        8 là kết quả trả về, đây là một tham số truyền vào ở dạng tham chiếu.[có thể bỏ trống]
      • Kết quả trả về của hàm sẽ là
        
        
        9 nếu so khớp -
        Hello Viet Nam!
        Hello Viet Nam!
        HelloViet Nam! Viet Nam!
        
        00 nếu không so khớp
    • ví dụ:

    
    
    5

    output: Khop

    ở ví dụ này chuỗi

    
    
    7 được đem so khớp với mẫu
    
    
    6.

    • Chuỗi
      
      
      6 chúng ta không được phép khai báo tùy ý mà phải theo 1 số cú pháp thì chuỗi đó mới được đem ra so khớp, nếu không chương trình sẽ bị lỗi.

    Một số quy tắc khai báo chuỗi
    
    
    6

    • Khi khai báo chuỗi

      
      
      6 luôn phải đặt chuỗi trong cặp dấu / /. Nếu chỉ đặt 1 chuỗi hay 1 biểu thức hay quy tắc trong / / thì phép so khớp chỉ là so khớp ở đây có nghĩa là chỉ cần chuỗi
      Hello Viet Nam!
      Hello Viet Nam!
      HelloViet Nam! Viet Nam!
      
      06 xuất hiện chuỗi
      Hello Viet Nam!
      Hello Viet Nam!
      HelloViet Nam! Viet Nam!
      
      07 là trả về true.

      Hello Viet Nam!
      Hello Viet Nam!
      HelloViet Nam! Viet Nam!
      
      08

    • Nếu muốn so khớp tất cả của 1 chuỗi

      
      
      7 với 1
      
      
      6 thì phải sử dụng thêm cặp ^ và
      Hello Viet Nam!
      Hello Viet Nam!
      HelloViet Nam! Viet Nam!
      
      11 ở bên trong dấu //.

      • ^ bắt đầu
      • Hello Viet Nam!
        Hello Viet Nam!
        HelloViet Nam! Viet Nam!
        
        11 la kết thúc
    
    
    6

    output: Khong khop

    Vì ở đây yêu cầu toàn bộ chuỗi

    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    06 phải khớp với chuỗi
    Hello Viet Nam!
    Hello Viet Nam!
    HelloViet Nam! Viet Nam!
    
    07

    • Chuỗi
      
      
      6 cũng có thể được khai báo theo kiểu khuôn mẫu như sau:
    Khuôn mẫumô tả[a-z]chuỗi đầu vào phải là in thường gồm các ký tự từ a->z[A-Z]chuỗi đầu vào phải là in hoa gồm các ký tự từ A->Z[0-9]chuỗi đầu vào phải là các số từ 0->9
    • ví dụ: [0-9]
    
    
    7

    output: Khop

    Vì chuỗi subject có sự xuất hiện các chữ số từ 0 - 9

    • ví dụ: [a-z]
    
    
    8

    output: Khop

    Vì chuỗi subject có sự xuất hiện các chữ cái từ a-z

    Trên đây là cơ bản về một số điểm cần lưu ý trong Regular Expression, còn một số các quy tắc khác sâu hơn về khai báo chuỗi

    
    
    6mình sẽ trình bày ở phần tiếp theo. Nếu có thể mong mọi người góp ý để phần nội dung trên được hoàn chỉnh hơn!

    Chủ Đề