Chuỗi là các dãy ký tự, giống như "Hoc PHP co ban va nang cao tai Hoc.tv".
Dưới đây là ví dụ về các chuỗi hợp lệ trong PHP.
$string_1 = "Vi du mot chuoi trong PHP"; $string_2 = "Hoc PHP co ban va nang cao tai Hoctv"; $string_0 = ""; // ví dụ một chuỗi không có ký tự nào
Khi sử dụng chuỗi với dấu nháy đơn, nó sẽ được đối xử như là các hằng, và in ra chính chuỗi đó. Trong khi sử dụng với dấu nháy kép, nó thay thế các biến với giá trị của chúng cũng như thông dịch các dãy ký tự cụ thể.
<?php $bien_chuoi = "name"; $bien_chuoi_hang = 'Chuỗi $bien_chuoi sẽ không được in!\\n'; print($bien_chuoi_hang); print "<br />"; $bien_chuoi_hang = "Chuỗi $bien_chuoi sẽ được in!\\n"; print($bien_chuoi_hang); ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Không có giới hạn về độ dài của chuỗi, có thể dài tùy ý nếu bộ nhớ cho phép.
Các chuỗi được giới hạn bởi các dấu nháy kép được PHP xử lý bằng 2 cách sau đây:
- Các chuỗi kí tự bắt đầu với (\) được thay thế với một kí tự đặc biệt
- Các biến (bắt đầu với $) được thay thế bằng biểu diễn chuỗi của giá trị của nó.
Các quy tắc thay thế:
- \n được thay thế bằng ký tự newline (dòng mới)
- \r được thay thế bởi ký tự carriage-return, được hiểu là đưa con trỏ về đầu dòng nhưng không xuống dòng.
- \t được thay thế bởi ký tự tab
- \$ được thay thế bằng một dấu $
- \" được thay thế bằng một dấu nháy kép "
- \\ được thay thế bằng một dấu nháy đơn \
Toán tử nối chuỗi trong PHP
Để nối hai chuỗi với nhau, bạn sử dụng toán tử . (dấu chấm) trong PHP như sau:
<?php $string1="Hoclaptrinh"; $string2=" Team"; echo $string1 . " " . $string2; ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Nếu bạn chú ý vào đoạn code trên, bạn sẽ thấy rằng, chúng ta đã sử dụng toán tử nối chuỗi hai lần. Đây là bởi vì chúng ta đã chèn một chuỗi thứ ba.
Giữa hai biến chuỗi, chúng ta thêm một chuỗi với một ký tự đơn, là một khoảng trống, để phân biệt hai biến.
Tìm độ dài chuỗi trong PHP - Hàm strlen() trong PHP
Hàm strlen() trong PHP được sử dụng để tìm độ dài của một chuỗi.
Ví dụ sau sẽ tìm độ dài của chuỗi "Hoclaptrinh Team!":
<?php echo "Do dai cua chuoi Hoclaptrinh Team la :",strlen("Hoclaptrinh Team"); ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Độ dài của một chuỗi thường được sử dụng trong vòng lặp hoặc các hàm khác, khi nó là quan trọng để biết khi nào chuỗi kết thúc (ví dụ: trong một vòng lặp, chúng ta muốn dừng vòng lặp sau ký tự cuối cùng của chuỗi).
Tìm ký tự hoặc chuỗi trong chuỗi - Hàm strpos() trong PHP
Hàm strops() được sử dụng để tìm một chuỗi hoặc ký tự bên trong một chuỗi.
Nếu một so khớp được tìm thấy, hàm này sẽ trả về vị trí của so khớp đầu tiên. Nếu không tìm thấy một so khớp nào, nó sẽ trả về FALSE.
Giờ chúng ta tìm chuỗi "lap" trong chuỗi "Hoclaptrinh Team!":
<?php echo strpos("Hoclaptrinh Team!","lap"); ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Như bạn thấy, vị trí của chuỗi "lap" trong chuỗi trên là 3. Lý do là 3 mà không là 4, bởi vì vị trí đầu tiên của chuỗi là 0, chứ không phải là 1.
Ghi chú các hàm xử lý chuỗi có sẵn trong PHP
Hàm str_word_count($string , $format , $charlist) : đếm tổng số từ có trong chuỗi
- string: chỉ định chuỗi để kiểm tra
- format: chỉ định kiểu giá trị trả về của hàm str_word_count(). Các giá trị này có thể là:
- 0 – Mặc định – trả về số lượng từ đếm được
- 1 – Trả về một mảng chứa các từ trong chuỗi
- 2 – Trả về một mảng với key là vị trí của từ trong chuỗi và value là từ trong chuỗi
- charlist: chỉ định các ký tự đặc biệt sẽ được xem như một từ trong chuỗi
<?php echo (str_word_count("Hello world!",0));//đếm được 2 từ print_r(str_word_count("Hello world!",1));//trả về một mảng có 2 từ: ?>
Một số hàm cơ bản khác:
Hàm strtoupper(string): đổi chữ thường thành hoa.
Hàm strtolower(string): đổi chữ hoa thành thường.
Hàm ucfirst(string): đổi chữ in ký tự đầu tiên của chuỗi.
Hàm ucwords(string): đổi chữ in ký tự đầu tiên của mỗi từ trong chuỗi.
Hàm trim($string, $character); Xóa ký tự $character nằm ở đầu và cuối chuỗi $str, nếu ta không nhập $character thì mặc định nó hiểu là xóa khoảng trắng.
Hàm ltrim($string, $character): Tương tự như trim nhưng chỉ xóa bên trái
Hàm rtrim($string, $character): Tương tự như trim nhưng chỉ xóa bên phải
Hàm substr( string $string , int $start [, int $length ] ): cắt ra một phần của chuỗi từ vị trí start một đoạn được chỉ định bằng tham số length
- string: chuỗi nhập vào đẻ cắt ra chuỗi con
- start: nếu start là một số dương, chuỗi được trả về sẽ bắt đầu từ vị trí start (ký tự đầu tiên của chuỗi được tính là 0). Nếu start là một số âm chuỗi con trả về sẽ được cắt từ vị trí start tính từ cuối chuỗi.
- length: độ dài của chuỗi trả về. Mặc định length được tính đến cuối chuỗi
- length>0: độ dài của chuỗi trả về được tính từ đầu chuỗi
- length<0: độ dài của chuỗi trả về được tính từ cuối chuỗi
Hàm explode($delimiter, $string): chuyển một chuỗi thành một mảng các phần tử với ký tự tách mảng được xác định trước.
- Trong đó: $delimiter là ký tự (chuỗi) dùng để tách mảng
- $tring là chuỗi muốn tách
Hàm implode($delimiter, $piecesarray)
Ngược với hàm explode() , hàm implode() lại dùng để chuyển 1 mảng thành 1 chuỗi, chuỗi này được ngăn cách bằng ký tự được xác định trước
- Trong đó: $delimiter là ký tự (chuỗi) để nối
- $piecesarray là mảng muốn chuyển thành chuỗi
- Ví dụ dưới đây sẽ chuyển lại mảng Array ( [0] => Đây [1] => là [2] => khóa [3] => học [4] => lập [5] => trình [6] => PHP [7] => cơ [8] => bản ) về thành 1 chuỗi được ngăn cách nhau bởi dấu cộng:
<?php //lấy lại ví dụ trên: $string = "Đây là khóa học lập trình PHP cơ bản"; // tách chuỗi trên thành 1 mảng: $array = (explode(' ', $string)); //bây giờ lại gộp mảng trên thành 1 chuỗi ngăn cách bằng ký tự dấu cộng '+' echo implode("+", $array); //và đây là chuỗi mà chúng ta vừa gộp: Đây+là+khóa+học+lập+trình+PHP+cơ+bản ?>
Hàm strstr( $string, $needle): Tách một chuỗi bắt đầu từ $needle cho đến hết chuỗi $string
<?php $website = 'https://hoc.tv'; $domain = strstr($website, '.'); echo $domain; //kết quả sẽ in ra tên miền là: ".tv" ?>
ord ( $string ): Hàm này trả về mã ASCII của ký tự đầu tiên trong chuỗi $string.
<?php echo ord("PHP là ngôn ngữ rất phổ biến"); //cho về kết quả là 80 (là mã của chữ P hoa) echo ord("P"); //cũng cho về kết quả là 80 (là mã của chữ P hoa) echo ord("p"); //cũng cho về kết quả là 112 (là mã của chữ p thường) ?>
str_repeat( $string, $n): Hàm này sẽ lặp chuỗi $string n lần, trong đó $n là số nguyên dương, trong trường hợp bạn ghi $n <0 , sẽ xảy ra lỗi
Ví dụ tôi muốn in chữ xin chào 2 lần, tôi làm như sau:
<?php echo str_repeat( 'Xin chào', 2 ); //kết quả: "xin chàoxin chào" ?>
str_replace( $chuoi_can_tim, $chuoi_thay_the, $chuoi_ban_dau ): Hàm này sẽ tìm kiếm và thay thế chuỗi giống như Ctrl+h vậy
<?php $chuoi_can_tim = "..."; $chuoi_thay_the = "ios"; $chuoi_ban_dau = "Devpro đào tạo lập trình viên PHP, android, ...."; echo str_replace( $chuoi_can_tim, $chuoi_thay_the, $chuoi_ban_dau ); ?>
Một số hàm mã hóa:
- Hàm md5($chuoi_can_ma_hoa) : hàm này sẽ chuyển chuỗi ban đầu thành 1 chuỗi mới có 32 ký tự
- Hàm sha1($chuoi_can_ma_hoa): cũng là mã hóa nhưng hàm này sẽ chuyển chuỗi ban đầu thành 1 chuỗi mới có 40 ký tự
htmlentities($str) :Hàm này sẽ in ra ký tự đặc biệt trong html
<?php $html = "<h1>h1 là thẻ header</h1>"; //thử in ra màn hình: echo $html; // kết quả: h1 là thẻ header //sử dụng hàm sau và sự khác biệt sẽ xảy ra: echo htmlentities($html); //kết quả: <h1>h1 là thẻ header</h1> ?>
substr( $string, $start, $length ): Hàm này sẽ cắt chuỗi cũ thành 1 chuỗi mới, trong đó:
- $string : là chuỗi ban đầu
- $start : là vị trí bắt đầu cắt
- $length : số lượng ký tự cần cắt
<?php echo substr( 'Devpro.edu.vn', 0, 6); //kết quả: Devpro ?>
Cần lưu ý: vị trí đầu tiên của chuỗi là vị trí 0
strstr( $string, $ky_tu_bat_dau ): Hàm này sẽ cắt chuỗi cũ thành 1 chuỗi mới từ vị trí bắt đầu đến hết chuỗi, trong đó:
- $string là chuỗi ban đầu
- $ky_tu_bat_dau là ký tự bắt đầu cắt
<?php echo strstr("Hà nội là thủ đô của Việt Nam", "thủ" ); //kết quả: "thủ đô của Việt Nam" ?>