Header ads

Header ads
» » Hàm xử lý chuỗi trong PHP

Việc xử lý chuỗi trong PHP rất là quan trọng vì dữ liệu hiển thị trên trang web luôn luôn ở dạng chuỗi, vì thế nếu bạn nắm vững và xử lý nhuần nhuyễn thì sẽ giúp bạn ít tốn công sức và thời gian hơn mà web chạy lại nhanh nữa. Và bên dưới đây tôi sẽ liệt kê các hàm xử lý chuỗi trong php thông dụng hay sử dụng nhất, tuy nhiên chúng ta cần hiểu một số quy tắc trong chuỗi trước đã.

1. Quy tắc trong chuỗi

Bài viết được đăng tại freetuts.net - thehalfheart@gmail.com
Nếu chuỗi được đặt trong dấu nháy kép "" thì các ký tự nháy kép " bên trong chuỗi phải thêm dấu gạch chéo đằng trước nó.
Ví dụ:
1
echo "Nam nói\"Cậu ấy đang ăn tối\" ";
Nếu chuối được đặt trong dấu nháy kép thì trong chuỗi ta có thể truyền biến vào mà không cần dùng phép nối chuỗi.
Ví dụ:
1
2
$str = "đang ăn tối";
echo "Nam nói\"Cậu ấy $str\" ";
Nếu chuỗi được đặt trong dấu nháy đơn '' thì các ký tự nháy đơn ' bên trong chuỗi phải thêm dấu gạch chéo đằng trước nó.
Ví dụ:
1
echo 'Freetuts's a website learning online';

2. Các hàm xử lý chuỗi hay sử dụng

Sau đây là các hàm chúng ta hay sử dụng để xử lý chuỗi trong PHP.
addcslashes ($str, $char_list)
Hàm này sẽ thêm dấu gạch chéo (\) đằng trước những ký tự trong chuỗi $str mà ta liệt kê ở $char_list.
1
2
3
4
5
6
7
8
// a..z là gồm các từ từ a => z
echo (addcslashes('freetuts.net FREETUTS.NET', 'a..z'));
// kết quả: \f\r\e\e\t\u\t\s.\n\e\t
  
echo '<br />';
  
// a..zA..Z là gồm các từ từ a => z và A => Z
echo (addcslashes('freetuts.net FREETUTS.NET', 'a..zA..Z'));
addslashes ( $str )
Hàm này sẽ thêm dấu gách chéo trước những ký tự (‘, “, \) trong chuỗi $str.
1
2
echo addslashes ("Freetuts's a website learning online");
// Kết quả là Freetuts's a website learning online
stripslashes ($str)
Hàm này ngược với hàm addslashes, nó xóa các ký tự \ trong chuỗi $str.
1
2
echo stripslashes("Mot so ham 'xu ly chuoi' trong PHP");
// Kết quả Mot so ham 'xu ly chuoi' trong PHP
crc32 ( $str )
Hàm này sẽ chuyển chuỗi $str thành một dãy số nguyên (có thể âm hoặc dương tùy theo hệ điều hành).
1
2
echo crc32 ('freetuts.net');
// kết quả: -838644060
explode ( $delimiter , $string)
Hàm này sẽ chuyển một chuỗi $string thành một mảng các phần tử với ký tự tách mảng là $delimiter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<strong>// Chuỗi cần chuyển<br />
$str = 'freetuts.net is a website free for you';
  
// Mỗi khoảng trắng sẽ là một phần tử trong mảng<br />
var_dump(explode(' ', $str));
  
/*Kết quả
array
    0 => 'freetuts.net',
    1 => 'is',
    2 => 'a' ,
    3 => 'website',
    4 => 'free',
    5 => 'for' ,
    6 => 'you' */</strong>
implode($delimiter, $piecesarray);
Hàm này ngược với hàm explode, nó chuyển một mảng $piecesarray thành chuỗi và mỗi phần tử cách nhau bởi chuỗi $delimiter
1
2
3
4
5
6
7
8
echo implode(' ', array(
    'freetuts',
    'xin',
    'chào',
    'các',
    'bạn'
));
// kêt quả là freetuts xin chào các bạn
ord ( $string )
Hàm này trả về mã ASCII của ký tự đầu tiên trong chuỗi $string.
1
2
echo ord ('Ab');
// kết quả: 65
strlen($string)
Hàm này đếm số ký tự của chuỗi $string.
1
2
echo strlen('freetuts.net');
// kết quả: 12
str_word_count($str)
Hàm này trả về số từ trong chuỗi $str.
1
2
echo str_word_count('freetuts xin chào các bạn');
// kết quả là 5
str_repeat(  $str,  int $n  )
Hàm này lặp chuỗi $str $n lần.
1
2
echo str_repeat( 'Hello', 5 );
// Kết quả là HelloHelloHelloHelloHello
str_replace( $chuoi_tim, $chuoi_thay_the, $chuoi_nguon )
Hàm này tìm kiếm và thay thế chuỗi.
1
2
3
$str = 'Freetuts Xin Chào Các Bạn';
$str = str_replace( 'Freetuts', 'Freetuts.net', $str );
echo $str; // kết quả là Freetuts.net Xin Chào Các Bạn
Để thay thế nhiều chuỗi ta có thể dùng mảng để truyền vào
1
2
3
$str = 'Freetuts Xin Chào Các Bạn';
$str = str_replace( array('Freetuts', 'Xin Chào'), array('Freetuts.net', 'Hello'), $str );
echo $str; // kết quả là Freetuts.net Hello Các Bạn
md5( $str)
Hàm này mã hóa chuỗi thành một dãy 32 ký tự (mã hóa md5).
1
2
echo md5('freetuts.net');
// Kết quả: 83617175fd8cf470d4af657a28def98e
sha1($string)
Hàm này mã hóa chuỗi thành một dãy 40 ký tự (mã hóa sha1)
1
2
echo sha1('freetuts.net');
// kết quả 8d9fa09de2e997d8fbb544326b84d1f894cd3ca3
htmlentities($str)
Hàm này chuyển các thể html trong chuỗi $str sang  dạng thực thể của chúng (html sẽ ko còn tác dụng nên bạn có thể echo ra bên ngoài).
1
2
echo htmlentities('<b>freetuts.net</b>');
// Kết quả <b>freetuts.net</b>
html_entity_decode($string)
Ngược lại với htmlentities, hàm này chuyển ngược các ký tự dạng thực thể HTML sang dạng ký tự của chúng.
1
2
3
4
$str = htmlentities('<b>freetuts.net</b>');
  
echo 'Entity: ' . $str . '<br/>';
echo 'Decode: ' . html_entity_decode($str);
htmlspecialchars( $string)
Tương tự như htmlentities.
htmlspecialchars_decode($string)
Tương tự như html_entity_decode.
strip_tags( $string, $allow_tags )
Hàm này bỏ các thẻ html trong chuỗi $string được khai báo ở $allow_tags.
1
echo strip_tags('<b>freetuts.net</b>', 'b');
substr( $string,  $start, $length )
Hàm này lấy một chuỗi con nằm trong chuỗi $str bắt đầu từ ký tự thứ $start và chiều dài $length.
1
2
echo substr( 'freetuts.net',  0, 8);
// Kết quả freetuts
strstr( $string, $ky_tu_cho_truoc )
Tách một chuỗi bắt đầu từ  $ky_tu_cho_truoc cho đến hết chuỗi.
1
2
echo strstr('freetuts.net Xin Chào', 'Xin');
// Kết quả: Xin Chào
strpos($str, $chuoi_tim )
Tìm vị trí của chuỗi $chuoi_tim trong chuỗi $str, kết quả trả về false nếu không tìm thấy.
1
2
echo strpos('freetuts.net chào các bạn', 'chào');
// kết quả 13
strtolower($str);
Chuyển tất cả các ký tự chuỗi $str sang chữ thường
strtoupper($string );
Chuyển tất cả các ký tự chuỗi $str sang chữ hoa
ucfirst( $string )
Chuyển ký tự đầu tiên chuỗi $string sang chữ hoa
ucfirst( $string )
Chuyển ký tự đầu tiên trong chuỗi $string sang chữ thường
ucwords( $string )
Chuyên từ đầu tiên trong chuỗi $string sang chữ hoa
trim($string, $ky_tu);
Xóa ký tự $ky_tu nằm ở đầu và cuối chuỗi $str, nếu ta không nhập $ky_tu thì mặc định nó hiểu là xóa khoảng trắng.
1
2
3
4
5
echo trim(' freetuts.net ');
// kết quả: 'freetuts.net'
  
echo trim('freetuts.neth');
// kết quả: 'freetuts.net'
ltrim($string, $ky_tu);
Tương tự như trim nhưng chỉ xóa bên trái
rtrim($string, $ky_tu)
Tương tự như trim nhưng chỉ xóa bên phải
nl2br($string)
Chuyển các ký tự xuống dòng “\n” thành thẻ
json_decode($json, $is_array)
Dùng để chuyển chuỗi dạng JSON sang các đối tượng mảng hoặc object. Nếu $is_array có giá trị false thì hàm sẽ chuyển một chuỗi $json thành một Class (object),  ngược lại nếu $is_array có giá trị true thì sẽ chuyển chuỗi $json thành một mảng.
json_encode($array_or_object)
Chuyển một mảng hoặc mội đối tượng (classs) sang chuỗi dạng JSON
1, Nhóm hàm in thông tin lên trình duyệt

echo, print là 2 hàm thường được xử dụng nhiều nhất để in thông tin (Chuỗi, giá trị biến, …) lên trình duyệt.

Ví dụ:
echo 'Welcome to PHP'; //Hoặc echo ('Welcome…');
print 'Welcome to Ewebvn'; //Hoặc print( 'Welcome…');

Lời khuyên: Nên sử dụng hàm echo vì echo xử lý nhanh hơn print một chút vì không phải return về giá trị

2, strlen($str) : Đếm tổng số ký tự có trong chuỗi

Ví dụ:
echo strlen('Welcom to Ewebvn.com');
Kết quả: 20

3, str_word_count ($str) : Đếm tổng số từ có trong chuỗi

Ví dụ:
echo str_word_count('Welcome to Ewebvn');
Kết quả: 3

4, addslashes($str)

Hàm addslashes sẽ thêm vào ký tự \ (back slash) trước các ký tự ‘ và ” trong một chuỗi, có tác dụng tránh lỗi SQL injection khi thêm dữ liệu vào database.

Ví dụ:
$str = 'Chao mung ban den voi "Ewebvn"';
echo addslashes( $str );
$str = "Mot so ham 'xu ly chuoi' trong PHP";
echo "
" . addslashes( $str );

Kết quả:
Chao mung ban den voi \”Khoa hoc PHP\”
Mot so ham \’xu ly chuoi\’ trong PHP

5, stripslashes($str)

Hàm stripslashes có tác dụng ngược lại với addslashed, hàm này sẽ loại bỏ các ký tự \ trong chuỗi ký tự, thường được sử dụng để xử lý chuỗi trước khi hiển thị thông tin lên trình duyệt.

$str = "Mot so ham \'xu ly chuoi\' trong PHP";
echo "
" . stripslashes( $str );

Kết quả: Mot so ham ‘xu ly chuoi’ trong PHP

6, str_repeat($str, $n)

Hàm str_repeate cho phép lặp lại chuỗi $str theo $n lần

Ví dụ:
echo str_repeat( ‘Hello’, 5 );

Kết quả: HelloHelloHelloHelloHello

7, str_replace($chuoi_tim, $chuoi_thay_the, $chuoi_nguon)

str_replace cho phép tìm kiếm và thay thế trong chuỗi:

Ví dụ:
$str = 'Ban dang tham gia khoa hoc PHP';
$str = str_replace( 'PHP', 'PHP co ban', $str );
echo $str;

Tìm tất cả các cụm tù PHP trong chuỗi $str và thay thế bằng PHP co ban
Kết quả: Ban dang tham gia khoa hoc PHP co ban

$chuoi_tim và $chuoi_thay_the có thể là 1 mảng dữ liệu

Ví dụ: Loại bỏ tất cả các ký tự !,@,#,$,% ra khỏi chuỗi

$str = 'Scelerisque! porttitor@ #elementum% sed$ cum pellentesque';
$str = str_replace( array('!', '@', '#', '$', '%') , '', $str );
echo $str;

Kết quả: Scelerisque porttitor elementum sed cum pellentesque

Ví dụ: Tìm và thay thế bằng và bằng

$str = str_replace( array('', ''), array ('', '') , $str );
echo $str;

8, Nhóm hàm Loại bỏ ký tự ra khỏi chuỗi

chop( $string) : Loại bỏ những khoảng trắng ở cuối chuỗi
trim( $string) : Loại bỏ những khoảng trắng ở đầu và cuối của chuỗi.
ltrim( $string, $ ky_tu_loai_bo ) : Loại bỏ các ký tự ở đầu chuỗi, mặc định loại bỏ tất cả khoảng trắng ở đầu chuỗi.
rtrim( $string, $ky_tu_loai_bo ) : Loại bỏ các ký tự ở cuối chuỗi, mặc định loại bỏ tất cả khoảng trắng ở cuối chuỗi.

9, Liên hệ giữa mảng và chuỗi

explode(‘Chuỗi tách’, $string) : Tách chuỗi thành mảng bởi chuỗi tách
implode(“Chuỗi nối”, $mang ) : Nối các phần tử mảng để tạo thành chuỗi.
join( ‘Chuỗi nối’, $mang ) : Tương tự implode
Xem thêm về implode và explode trong bài: Các hàm xử lý mảng trong PHP

10, Các hàm mã hóa chuỗi

Trong php chúng ta có hai phương pháp mã hóa chuỗi thường sử dụng là md5 và sha1

md5( $string ) : Mã hóa chuỗi dạng md5
sha1( $ string) : Mã hóa chuỗi dạng sha1

11, Chuỗi và HTML

PHP cung cấp cho chúng ta một số hàm thao tác với các thẻ HTML

a, htmlentities($string)

Chuyển tất cả các ký tự có thể áp dụng cho các thẻ HTML như <, > sang dạng thực thể của chúng, các thẻ HTML sẽ không còn tác dụng. Thường được xử dụng trong việc xử lý dữ liệu từ người dùng nhập trước khi lưu vào database.

b, html_entity_decode($string)

Ngược lại với htmlentities, hàm html_entity_decode sẽ chuyển đổi tấtcả các thực thể HTML sang những kí tự có thể dùng được của chúng.

Ví dụ về htmlentities và html_entity_decode

$str = '
The p trong html
';
$str = htmlentities( $str );
echo 'Entity: ' . $str . '
';
echo 'Decode' . html_entity_decode( $str );

Kết quả:
The p trong html



Decode
The p trong html

c, htmlspecialchars($string) : Tương tự htmlentities

d, htmlspecialchars_decode( $string) : Tương tự html_entity_decode

e, strip_tags($string, $allow_tags)

Loại bỏ các thẻ HTML hoặc PHP ra khỏi chuỗi, Thường được sử dụng để xử lý dữ liệu do người dùng nhập trước khi lưu trữ database, hiển thị văn bản dạng trích dẫn.

$allow_tags: Các thẻ cho phép giữ lại

Ví dụ: Loại bỏ các thẻ HTML ra khỏi chuỗi $str, cho phép giữ lại thẻ và

$str = strip_tags( $str, '' );

12, Các hàm tách chuỗi con (sub)

a, substr($string, $start, $length ): tách chuỗi con từ một chuỗi

start: Vị trí bắt đầu tách
length: Chiều dài chuỗi cần tách

Ví dụ:

$str = "Khoa hoc PHP";
$str = substr( $str, 0, 8 );
echo $str;

Kết quả: Khoa hoc

b, strstr($string, $ky_tu_cho_truoc )

Tách ra một chuỗi con từ vị trí đầu tiên của chuỗi cho trước cho đến cuối chuỗi.

Ví dụ:

echo strstr( "Khoa hoc PHP co ban", "PHP" );
Kết quả: PHP co ban

13 , strops($str, $chuoi_tim)

Tìm vì trí xuất hiện đầu tiên của $chuoi_tim trong chuỗi $str.

Ví dụ:

echo strpos( "Khoa hoc PHP", "PHP" );
Kết quả: 9

14, Một số hàm khác

strtolower( $str ) : Chuyển tất cả ký tự sang chữ thường.
strtoupper($string ): Chuyển tất cả ký tự sang chữ in hoa.
ucfirst( $string ): Viết hoa kí tự đầu tiên của chuỗi.
ucwords( $string ): Viết hoa kí tự đầu tiên của mỗi từ.

Sưu tầm từ Internet

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn