Ngu ngơ học làm web (63) - Chuỗi trong PHP – phần 1

Tiếp theo của: Ngu ngơ học làm web (62) - Ứng dụng “Trắc nghiệm tính cách”
------

Phần 63. Chuỗi trong PHP – phần 1

Đây là clip số 36:


Chuỗi luôn được bao bởi cặp dấu nháy đôi (“”) hoặc cặp dấu nháy đơn (‘’). Để ý sự khác nhau của hai dấu này, hiểm nôm na: ‘’: là chuỗi tuyệt đối, “” là chuỗi tương đối. Muốn viết kí tự đặc biệt dùng dấu \.

Để nối chuỗi, sử dụng dấu chấm (.).

Để ý sự khác nhau khi viết 1.2 và 1 . 2, ví dụ:

$test1 = 1.2;
$test2 = 1 . 2;
echo gettype($test1); //double
echo gettype($test2); // string

Sử dụng hàm strlen() để lấy chiều dài của chuỗi. Tuy nhiên, nếu chuỗi có chứa dấu tiếng Việt (UTF-8) thì hàm strlen() không còn đúng nữa, hãy thay thế bằng hàm mb_strlen(). Ví dụ, mb_strlen($str,'utf-8');

Đây là clip số 37:


Hàm str_word_count() dùng để đếm số từ trong một chuỗi. Tuy nhiên, nếu chuỗi chứa dấu tiếng Việt, hàm này cũng không đúng.

Để chuyển chữ thường thành chữ hoa, sử dụng hàm strtoupper($str).

Để chuyển chữ hoa thành chữ thường, sử dụng hàm strtolower($str).

Để chuyển kí tự đầu tiên của chuỗi thành chữ hoa, sử dụng hàm ucfirst($str).

Để chuyển kí tự đầu tiên của chuỗi thành chữ thường, sử dụng hàm lcfirst($str).

Để chuyển kí tự đầu tiên của mỗi từ trong chuỗi thành chữ hoa, sử dụng hàm ucwords($str).

Có thể hiểu: chuỗi chính là mảng của các kí tự.

Hàm stripos($str, $str1): trả về vị trí của chuỗi $str1 đầu tiên trong chuỗi $str. Ví dụ hàm stripos("abcdefgh", "def"); sẽ trả về giá trị 3.

Hàm strripos($str, $str1): trả về vị trí của chuỗi $str1 cuối cùng trong chuỗi $str. Ví dụ hàm strripos("abcdefghdef", "def"); sẽ trả về giá trị 8.

Đây là clip số 38:


Để đảo ngược chuỗi, sử dụng hàm strrev(). Ví dụ, strrev('abc');

Để trích chuỗi con từ chuỗi mẹ, sử dụng hàm substr(). Ví dụ,

- substr('abcdef', 3); kết quả sẽ là ‘def’.

- substr('abcdef', 3, 2); kết quả sẽ là ‘de’.

- substr('abcdef', -2); kết quả sẽ là ‘ef’.

- substr('abcdef', -3, 2); kết quả sẽ là ‘de’.

Để xóa bỏ các kí tự nằm bên trái của chuỗi, sử dụng hàm ltrim($str, $params). Nếu $params bằng rỗng, sẽ xóa các kí tự sau: “\0” (NULL), “\t” (tab), “\n” (new line), “\x0B” (vertical tab), “\r” (carriage return), “ ” (khoảng trắng). Thường sử dụng hàm này để xóa bỏ các khoảng trắng ở phía trái của chuỗi.

Ví dụ, ltrim('abcdef', 'abc'); kết quả xuất ra là ‘def’.

Để xóa bỏ các kí tự nằm bên phải của chuỗi, sử dụng hàm rtrim($str, $params). Nếu $params bằng rỗng, sẽ xóa các kí tự sau: “\0” (NULL), “\t” (tab), “\n” (new line), “\x0B” (vertical tab), “\r” (carriage return), “ ” (khoảng trắng). Thường sử dụng hàm này để xóa bỏ các khoảng trắng ở phía phải của chuỗi.

Ví dụ, rtrim('abcdef', 'ef'); kết quả xuất ra là ‘abcd’.

Để xóa bỏ các kí tự nằm bên trái và phải của chuỗi, sử dụng hàm trim($str, $params). Nếu $params bằng rỗng, sẽ xóa các kí tự sau: “\0” (NULL), “\t” (tab), “\n” (new line), “\x0B” (vertical tab), “\r” (carriage return), “ ” (khoảng trắng). Thường sử dụng hàm này để xóa bỏ các khoảng trắng ở phía trái và phải của chuỗi.

Ví dụ, trim('abcdefab', 'ab'); kết quả xuất ra là ‘cdef’.

Bài tập: xóa bỏ khoảng trắng dư thừa trong một chuỗi. Ví dụ “         nguyễn     văn  tèo        ” sẽ chuyển thành “nguyễn văn tèo”.

Đây là đoạn mã:

<?php
            $str = '   nguyen    van   teo    ';
            // bỏ khoảng trắng ở hai đầu -> 'nguyen van teo'
            $str = trim($str);
            // chuyển chuỗi thành mảng
            $array = explode(' ', $str);
            // bỏ các phần tử khoảng trắng trong mảng
            foreach ($array as $key => $value) {
                        if(trim($value) == null) {
                                    unset($array[$key]);
                        }
            }
            // chuyển mảng thành chuỗi
            $str = implode(' ', $array);
            echo $str;
?>

Đây là clip số 39:


Để kiểm tra một chuỗi có rỗng hay không, sử dụng hàm: isset() và trim(). Ví dụ,

if(!isset($str) || trim($str) == '') {
                        echo 'Mảng rỗng';
            }else { echo 'Mảng không rỗng'; }

Để trích xuất nội dung trong một chuỗi, sử dụng hàm substr($str, $start, $length);

Ví dụ,

- substr('abcdef', 0); kết quả là ‘abcdef’.

- substr('abcdef', 0, 2); kết quả là ‘ab’.

- substr('abcdef', -3, 2); kết quả là ‘de’.

Ví dụ, xây dựng hàm rút gọn một chuỗi,

            function truncateString ($str, $maxChars = 50, $holder = '...') {
                        $result = $str;
                        if(strlen($str) > $maxChars) {
                                    $result = substr($str, 0, $maxChars).$holder;
                        }
                        return $result;
            }

Để lặp chuỗi, sử dụng hàm str_repeat($str, $n);

Đây là clip số 40:


Hàm chr() trả về kí tự tương ứng với mã ASCII truyền vào. Ví dụ, chr(65); sẽ xuất chữ A.

Hàm ord() trả về giá trị ASCII của kí tự đầu tiên trong chuỗi. Ví dụ, ord(‘Abc’); sẽ xuất số 65.

Sử dụng hàm parse_str() để chuyển các nội dung truy vấn vào các biến hoặc mảng. Ví dụ,

<?php
            $str = 'name=teo&age=10';
            parse_str($str);
            echo $name . '<br>';
            echo $age;
?>

Nếu truyền tham số cho hàm parse_str() là một mảng, thì nội dung truy vấn sẽ được đưa vào mảng. Ví dụ,

<?php
            $str = 'name=teo&age=10';
            parse_str($str, $array);
            echo '<pre>';
            print_r($array);
            echo '</pre>';
?>

Phân tích URL: sử dụng hàm parse_url() để truy xuất các thành phần protocol, domain name, path, … của một URL.

Chú ý: #hash hay #id_fragment là một vị trí trong trang web, được định vị bằng thuộc tính id của HTML. ví dụ, <div id="item1"></div>.

Ví dụ về phân tích một URL,

<?php
            $str = 'http://www.google.com:80/hinh-anh.php?id=123&page=6#item2';
            $data = parse_url($str);

            echo '<pre>';
            print_r($data);
            echo '</pre>';
?>

Kết quả xuất ra màn hình là,

Array
(
    [scheme] => http
    [host] => www.google.com
    [port] => 80
    [path] => /hinh-anh.php
    [query] => id=123&page=6
    [fragment] => item2

)
-----------
Cập nhật [9/9/2020]
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web