Change

(SERIES PHP) Bài 6:Hàm xử lý chuỗi trong PHP - Hàm & Ví dụ & Giải thích

Thảo luận trong 'PHP' bắt đầu bởi longhiryu, 18 Tháng chín 2011.

  1. longhiryu Administrator

    Chuỗi là một dạng dữ liệu có thể lưu trong biến của ngôn ngữ lập trình PHP và không kém phần quan trọng trong việc lập trình của mọi ngôn ngữ.

    Hôm nay, Itelvn.net sẽ trình bày cho các bạn các hàm xử lý chuỗi trong PHP nhằm giúp các bạn đang học lập trình có được những phuơng thức xử lý của dạng dữ liệu này.

    1. echo và hàm print():

    - Hai hàm này được dùng để in ra dữ liệu.
    PHP:

    <?php
    $a
    ="I am learning PHP on <b> Itelvn.net </b>.";
    echo 
    "<b> ECHO:</b>";
    echo 
    "<br>";
    echo 
    $a;
    echo 
    "<br>";
    echo 
    "<font color='red'> PHP is easy to learn. </font>";
    echo 
    "<br>";
    echo 
    "$a PHP is easy to lean.";
    echo 
    "<br>";

    print 
    "<b> PRINT: </b>";
    print 
    "<br>";
    print 
    $a;
    print 
    "<br>";
    print 
    "<font color='red'> PHP is easy to learn. </font>";
    print 
    "<br>";
    print 
    "$a PHP is easy to lean.";
    ?>
    - echo() và print() khá giống nhau, có thể dùng để in biến dạng chuỗi, mã HTML, kết hợp biến và chuỗi và cấu trúc cũng khá giống nhau.

    Đối với echo():
    - Ta không thể viết xuống dòng trong câu lệnh echo như một số ngôn ngữ khác:
    PHP:

    <?php
    echo "Hello World";

    echo 
    "This spans
    multiple lines. The newlines will be
    output as well"
    ;

    echo 
    "This spans\nmultiple lines. The newlines will be\noutput as well.";

    echo 
    "Escaping characters is done \"Like this\".";
    ?>

    -
    Dùng echo để in ra mảng có giá trị chuỗi:
    PHP:

    <?php
    $baz 
    = array("value" => "foo");
    echo 
    "this is {$baz['value']} !";
    ?>
    - Nối hai chuỗi với nhau:
    PHP:
    <?php
    $a
    ="Itelvn";
    $b=".net";
    echo 
    $a
    echo 
    "<br>" ;     
    echo 
    $a,$b;     
    ?>
    Đối với print():
    - Nhìn chung là các chức năng khá giống với echo() nhưng vẫn có một số điểm khác biệt bên dưới.

    * Khác biệt giữa echo() và print():

    - print() và echo() không thực sự là hàm (function) mà là ngôn ngữ xây dựng (a language construct). Vì thế chúng ta không cần dùng dấu ngoặc khi dùng in ra các thông số.
    - echo() có thế xuất ra nhiều thông số
    PHP:
    void echo     ( string $arg1    [, string $...   ] )
    còn print chỉ một.
    PHP:
    int print     ( string $arg    )
    - echo() không trả về giá trị nhưng print() luôn trả về giá trị là 1.
    - Nhìn chung thì tốc độ echo() được đánh giá nhanh hơn print()
    - Vì echo không phải là hàm nên ta không thể viết như thế này:
    PHP:

    <?php // Because echo does not behave like a function, the following code is invalid.
    ($some_var) ? echo 'true' : echo 'false'?>
    nhưng có thể viết với print():
    PHP:

    <?php // However, the following examples will work:
    ($some_var) ? print 'true' : print 'false'?> 
    Ví dụ: bạn không thể viết
    PHP:
    $hello = echo "Hello boy"
    mà phải viết
    PHP:
    $hello = print("Hello boy");
    print_r() : xuất biến ra dạng người có thể đọc được

    Ví dụ:
    - Nếu viết hàm print thế này sẽ cho ra kết quả
    PHP:
    <?php
       $a 
    = array ('a' => 'apple''b' => 'banana''c' => array ('x''y''z'));
       
    print_r ($a);
    ?>
    khác với:
    PHP:
    <?php
    print($a);
    ?>


    2. Hàm strlen():
    - Hàm này dùng để đô độ dài của một chuỗi.
    - Giá trị trả về là độ dà của chuỗi và 0 nếu chuỗi trống.
    VD:
    PHP:
    <?php
    $str 
    'Itelvn.net';
    echo 
    "The length of Itelvn.net is: ";
    echo 
    strlen($str); //10

    echo "<br>";

    $str ' Itelvn .net ';
    echo 
    "The length of ( Itelvn .net ) is: ";
    echo 
    strlen($str); //13
    ?>
    - Hàm strlen() trả về NULL khi thực hiện trên mảng và sẽ có thông báo lỗi.
    - Hàm strlen() sẽ đếm sai nếu dùng để đếm chuỗi tiếng Việt có dấu vì thế ta có thế dùng hàm mb_strlen() để thay thế:
    PHP:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php
    $a
    ="Ngày mai là ngày đầu tiên tôi đi học.";
    $b=strlen($a);
    $c=mb_strlen($a,"utf-8");
    echo 
    $b;
    echo 
    "<br>";
    echo 
    $c;
    ?>


    3. Hàm strpos(), stripos(),substr(), stristr(), strstr():


    - strpos(): Trả về vị trí xuất hiện của ột chuỗi trong một chuỗi khác. Hàm này chỉ trả về vị trí của chuỗi đầu tiên xuất hiện trong tường hợp có nhiều chuỗi giống nhau tồn tại.
    PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php
    $mystring 
    'Itelvn.net';
    $findme   'vn';
    $pos strpos($mystring$findme);

    if (
    $pos === false) {
        echo 
    "Chuỗi '$findme' Không được tìm thấy trong '$mystring'";
    } else {
        echo 
    "Chuỗi '$findme' Được tìm thấy trong '$mystring'";
        echo 
    ". Tại vị trí $pos";
    }
    ?>
    - stripos(): hàm tìm kiếm chuỗi với vị trí bắt đầu tìm kiếm được xác định trước, có tính năng tương tự như strpos(), trong VD dưới, chuỗi được bắt đầu tìm kiếm từ vị trí số 2. Hàm này dùng trong PHP5.
    PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php
    $mystring 
    'Itelvn.net';
    $findme   'vn';
    $pos stripos($mystring$findme2);

    if (
    $pos === false) {
        echo 
    "Chuỗi '$findme' Không được tìm thấy trong '$mystring'";
    } else {
        echo 
    "Chuỗi '$findme' Được tìm thấy trong '$mystring'";
        echo 
    ". Tại vị trí $pos";
    }
    ?>
    - substr(): trả về chuỗi được lựa chọn bởi thông số định trước.
    VD: Lấy chuỗi bắt đầu từ vị trí thứ 2 và lấy 3 kí tự. Kết quả là 'elv'. Lưu ý: nếu đếm từ đầu ta bắt đầu từ 0.
    PHP:
    <?php
    $rest 
    substr("Itelvn.net"23); 
    echo 
    $rest;
    ?>
    VD: Lấy chuỗi ở vị trí -3, và lấy 3 kí tự. Kết quả là 'net' . Lưu ý: nếu đếm ngược lại ta dùng số âm, và bắt đầu từ -1
    PHP:
    <?php
    $rest 
    substr("Itelvn.net", -33); 
    echo 
    $rest;
    ?>
    - stristr(): hàm trả về một chuỗi bắt đầu từ thông số định trước, không phân biệt kí tự HOA hay thường.

    VD:
    PHP:
    <?php
      $domain 
    'Itelvn.net';
      echo 
    stristr($domain'E'); // trả về elvn.net
    ?>
    VD: Ta cũng có thể truyền thông số là mã ASCII của một kí tự nào đó vào hàm này.
    PHP:
    <?php
      $string 
    'Itelvn.net';
      echo 
    stristr($string73); // 73 là mã ASCII của 'I'
    // outputs: Itelvn.net
    ?>
    - strstr(): hàm này trả về chuỗi bắt đầu với kí tự được định trước. Phần biệt chữ HOA và chữ thường (chính xác kí tự được truyền vào)
    VD: lấy Domain từ một email.
    PHP:
    <?php
    $email  
    'admin@itelvnnet';
    $domain strstr($email'@');
    echo 
    $domain// prints @itelvn.net
    ?>
    Tạm thời thế đã, sẽ post tiếp cho mọi người tham khảo.


    SERIES Lập trình Website với PHP và MySQL


Chia sẻ trang này

sua ong chua | mat ong| blog rao vat | son my thuat | sơn mỹ thuật | ban dat trung son | dai ly son nuoc | Blog làm SEO | Thủ thuật WEB | luoi inox | son nuoc | sơn nội thất | au trung ong | banh trung thu | banh trung thu | au trung ong |