Bài 9: Các hàm xử lý chuỗi trong php

PHP Cơ bản 08/01/2017 07:00 1334
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.

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 đã.

Một số lưu ý khi khai báo chuỗi.

  • Khai báo chuỗi trong dấu "" or '';
  • Khi khai báo chuỗi trong dấu "" 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.
  • 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ó.

Các hàm xử lý chuỗi thông dụng.

Sau đây là các hàm chúng ta hay sử dụng để xử lý chuỗi trong PHP.

2.0 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.

$string = 'Học PHP thật là đơn giản';
$string_new = addcslashes($string, 'a..z');
echo ($string_new);
// Kết quả Họ\c PHP \t\hậ\t \là đơ\n \g\iả\n

2.1 addslashes( $str )

Hàm này ngược với hàm addslashes, nó xóa các ký tự \ trong chuỗi $str.

$string = 'Học's PHP thật là đơn giản';
$string_new = addslashes($string);
echo ($string_new);
// Kết quả Học\'s PHP thật là đơn giản

2.2 stripslashes ($str)

Hàm này ngược với hàm addslashes, nó xóa các ký tự \ trong chuỗi $str.

2.3 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).

$string = 'Họcs PHP thật là đơn giản';
$string_new = crc32($string);
echo ($string_new);
// Kết quả 3074804241

2.4. 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.

$string = 'Học PHP thật là đơn giản';
$array = var_dump(explode(' ', $string));
var_dump($array);

// Kết quả.
//Array
//(
//    [0] => Học
//    [1] => PHP
//    [2] => thật
//    [3] => là
//    [4] => đơn
//    [5] => giản
//)

2.5 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

$array[] = 'Học';
$array[] = 'PHP';
$array[] = 'thật';
$array[] = 'là';
$array[] = 'đơn';
$array[] = 'giản';
$string = implode(' ', $array);
print_r($string); die();

// Kết quả: Học PHP thật là đơn giản

2.6 ord ( $string )

Hàm này trả về mã ASCII của ký tự đầu tiên trong chuỗi $string.

$string = 'Học PHP thật là đơn giản';
$ascii = ord($string);
print_r($ascii); die();
	
// Kết quả: 72

2.7. strlen($string)

Hàm này đếm số ký tự của chuỗi $string.

$string = 'Học PHP thật là đơn giản';
$length = strlen($string);
print_r($length); die();

// Kết quả: 33

2.8 str_word_count($str)

Hàm này trả về số từ trong chuỗi $str.

$string = 'Học PHP thật là đơn giản';
$count = str_word_count($string);
print_r($count); die();

// Kết quả: 9

2.9 str_repeat(  $str,  int $n  )

Hàm này lặp chuỗi $str $n lần.

$string = 'Học PHP thật là đơn giản';
$count = str_repeat($string,3);
print_r($count); die();

// Kết quả: Học PHP thật là đơn giảnHọc PHP thật là đơn giảnHọc PHP thật là đơn giản

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

Hàm này tìm kiếm và thay thế chuỗi.

$string = 'Học PHP thật là đơn giản';
$search = 'PHP';
$replace= 'MySQL';
$string = str_replace($search, $replace, $string);
print_r($string); die();
	
// Kết quả: Học MySQL thật là đơn giản

2.11 md5( $str)

Hàm này mã hóa chuỗi thành một dãy 32 ký tự (mã hóa md5) và thường được sử dụng tạo mật khấu vì nó không dịch ngược lại được.

$password = '123456';
$hash = md5($password);
print_r($string); die();

// Kết quả: e10adc3949ba59abbe56e057f20f883e

2.12 sha1($string)

Hàm này mã hóa chuỗi thành một dãy 40 ký tự (mã hóa sha1)

$password = '123456';
$hash = sha1($password);
print_r($hash); die();

// Kết quả: 7c4a8d09ca3762af61e59520943dc26494f8941b

2.13 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).

$string = 'PHP Programing Language';
$string_new = htmlentities($string);
print_r($string_new); die();

// Kết quả: PHP Programing Language

2.14 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.

$string = 'PHP Programing Language';
$string_new = html_entity_decode($string);
print_r($string_new); die();

// Kết quả: PHP Programing Language

Trong quá trình làm việc mình gặp rất nhiều lỗi font chữ này và cách sử dụng hàm html_entity_decode($string) để khắc phục.

Cách xử lý:

$content= "Văn bản bị lỗi";
$content = html_entity_decode($content,ENT_COMPAT,'UTF-8');
echo $content;

2.15 htmlspecialchars( $string)

Tương tự như htmlentities.

2.16 htmlspecialchars_decode($string)

Tương tự như html_entity_decode.

2.17 strip_tags( $string, $allow_tags )

Hàm này bỏ các thẻ html trong chuỗi $string được khai báo ở $allow_tags.

$string = 'PHP Programing Language';
$string = html_entity_decode($string);
print_r(strip_tags($string)); die();

// Kết quả: PHP Programing Language

2.18 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.

$string = 'PHP Programing Language';
$substring = substr($string,0, 3);
print_r($substring); die();
// Kết quả: PHP

2.19 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.

$string = 'PHP Programing Language';
$substring = strstr($string, 'Programing');
print_r($substring); die();
// Kết quả: Programing Language

2.20 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.

$string = 'PHP Programing Language';
$pos = strpos($string, 'Programing');
print_r($pos); die();
// Kết quả: 4

2.21 strtolower($str);

Chuyển tất cả các ký tự chuỗi $str sang chữ thường

$string = 'PHP Programing Language';
$pos = strtolower($string);
print_r($pos); die();
// Kết quả: php programing language

2.22 strtoupper($string );

Chuyển tất cả các ký tự chuỗi $str sang chữ hoa

2.23 ucfirst( $string )

Chuyển ký tự đầu tiên chuỗi $string sang chữ hoa

2.24 ucfirst( $string )

Chuyển ký tự đầu tiên trong chuỗi $string sang chữ thường

2.25 ucwords( $string )

Chuyên từ đầu tiên trong chuỗi $string sang chữ hoa

2.26 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.

2.27 ltrim($string, $ky_tu)

Tương tự như trim nhưng chỉ xóa bên trái

2.28 rtrim($string, $ky_tu)

Tương tự như trim nhưng chỉ xóa bên phải

2.29 nl2br($string)

Chuyển các ký tự xuống dòng "\n" thành thẻ

2.30 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.

$string = '["PHP","Programing","Language"]';
$string = json_decode($string);
print_r($string); die();
// Kết quả: Array ( [0] => PHP [1] => Programing [2] => Language )

2.31 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

$string = 'PHP Programing Language';
$array = explode(' ', $string);
$json = json_encode($array);
print_r($json); die();
// Kết quả: ["PHP","Programing","Language"]

2.32 str_shuffle($str)

Tạo một chuỗi ngẫu nhiên từ các ký tự trong $str.

$string = 'PHP Programing Language';
$string_new = str_shuffle($string);
print_r($string_new); die();
// Kết quả: ogPaarHPgLeuann Pgrigm

Tổng kết.

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.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.