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, mình 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
$a="I am learning PHP on Itelvn.net .";
echo " ECHO:";
echo "
";
echo $a;
echo "
";
echo " PHP is easy to learn. ";
echo "
";
echo "$a PHP is easy to lean.";
echo "
";
print " PRINT: ";
print "
";
print $a;
print "
";
print " PHP is easy to learn. ";
print "
";
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:
<?phpecho "Hello World";
echo “This spansmultiple 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
$baz = array("value" => "foo");
echo "this is {$baz['value']} !";?>
– Nối hai chuỗi với nhau:
<?php
$a="Itelvn";$b=".net";
echo $a;
echo "
" ;
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ố
void echo ( string $arg1 [, string $... ] )
còn print chỉ một.
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 // 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 // However, the following examples will work:($some_var) ? print 'true' : print 'false'; ?>
Ví dụ: bạn không thể viết
$hello = echo "Hello boy";
mà phải viết
$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
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);?>
<?phpprint($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
$str = 'Itelvn.net';
echo "The length of Itelvn.net is: ";
echo strlen($str); //10echo "
";$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
$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 "
";
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
$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
$mystring = 'Itelvn.net';$findme = 'vn';$pos = stripos($mystring, $findme, 2);
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
$rest = substr("Itelvn.net", 2, 3);
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
$rest = substr("Itelvn.net", -3, 3);
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
$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
$string = 'Itelvn.net';
echo stristr($string, 73); // 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
$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.