Danh sách các hàm xử lý chuỗi trong php như sub_str, str_replace, implode, ucfirst, htmladdcslashes, strpos, htmlentities, htmlspecialchars,...
Tổng quan
PHP được sử dụng chủ yếu cho mục đích lập trình web - trong đó phần nhiều liên quan đến xử lý văn bản. Có tới gần 100 hàm xử lý chuỗi được PHP hỗ trợ - bài này giới thiệu một số hàm xử lý chuỗi hay sử dụng.
Cấu trúc chung:
(int|string|bool) strlen (string $str);
Trong đó:
(int|string)
là kiểu giá trị trả rastring
là kiểu dữ liệu cho đối số nhận vào,$str
là tên đối số nhận vào- [..] tùy chọn
Hàm addcslashes()
Cú pháp: string addcslashes(string $str,string $charlist)
Công dụng: Trả ra một chuỗi thêm dấu \ vào ký tự trong $charlist
Ví dụ:
$a = "acb'"; echo addcslashes($a,"'\\").'<br>'; //kết quả: acb\' echo addcslashes($a,"'\\c").'<br>'; //kết quả: a\cb\'
Hàm addslashes()
Cú pháp: string addslashes(string $str)
Công dụng: Thêm dấu \ trước các ký tự sau:
- single quote: '
- double quoute: "
- backslash: \
- NULL
Hàm này thường được sử dụng để bảo vệ câu truy vấn sql ( chống sql injectson )
Ví dụ: Thêm dấu \ trước ký tự '
$name ="'nam"; $sql = "SELECT * FROM USER WHERE name = '".addslashes($name)."'"; echo $sql;
Hàm chop()
Cú pháp: string chop(string $str,[string $charlist])
Công dụng: Loại bỏ các ký tự trong $charlis
t ra khỏi chuỗi $str
Các ký tự sau mặc định sẽ bị loại bỏ:
- Khoảng trắng: " "
- NULL: "\0"
- Tab: "\t"
- vertical tab: "\x0B"
- carriage return: "\r"
- Xuống dòng: "\n"
Ví dụ: Loại bỏ ký tự NULL ra khỏi chuỗi
$name =" Nam va Hai \0 "; echo chop($name);
Hàm htmlentities()
Cú pháp:string htmlentities(string $string,[string $flags, string $character-set,string $double_encode])
Công dụng: mã hóa chuỗi sang dạnh thực thể HTML
Trong đó:
$flags - có 3 tùy chọn:
ENT_COMPAT:
(mặc định) mã hóa double quoute " " (sẽ không mã hóa single quoute)ENT_QUOTES:
Mã hóa cả double quoute và single quoteENT_NOQUOTES:
Không mã hóa cả cả 2 loại trên
Ví dụ: ( bạn viewsource trang kết quả sẽ thấy các ký tự đã đổi sang dạng thực thể: "<?php echo 'hello world';?>gt;"
$str = "<?php echo 'hello world';?>"; echo htmlentities($str);
Thường dùng chống sql injection và tấn công XSS
Hàm htmlentities_decode()
Cú pháp: html_entity_decode(string $string,[string $flags, string $character-set,string $double_encode])
Công dụng: giải mã thực thể sang mã HTML
Các tham số truyền vào tương tự hàm htmlentities()
- nếu tham số truyền vào cho hàm htmlentities()
thế nào thì phải truyền cho hàm này tương ứng mới giải mã đúng.
Ví dụ:$str = "<© abc";
echo html_entity_decode($str);
Hàm trim()
Cú pháp: trim(string $str,[string $charlist])
Công dụng: Loại các ký tự thuộc charlis ra khỏi 2 đầu của một chuỗi
Các ký tự thuộc charlist mặc định:
- Khoảng trắng: " "
- NULL: "\0"
- Tab: "\t"
- vertical tab: "\x0B"
- carriage return: "\r"
- Xuống dòng: "\n"
Ví dụ: Loại bỏ khoảng trắng 2 đầu của một chuỗi
$a = " abc "; echo trim($a);
Hàm ucfirst()
Cú pháp: string ucfirst(string $str)
Công dụng: Chuyển đổi ký tự đầu tiên của chuỗi thành ký tự hoa
Ví dụ:
$nam = "nam"; echo ucfirst($nam); //kết quả: Nam
Hàm ucwords()
Cú pháp: string ucwords(string $str)
Công dụng: Chuyển đổi các từ trong chuổi, mỗi từ chữ cái đầu tiên thành chữ hoa như: My Name Is Nam
Ví dụ:
$nam = "my name is nam"; echo ucwords($nam); //kết quả: My Name Is Nam
Hàm substr_replace()
Cú pháp: string substr_replace(string $str,string $replace,int $start,[ int $length])
Công dụng: Thay thế và cắt chuỗi tại ví trí $start một khoảng $length
Trong đó:
$str:
là chuỗi nguồn (chuỗi sẽ bị thay thế)$replace:
là chuỗi thay thế$start:
vị trí trong chuỗi $str sẽ thay thế bởi chuỗi $replace
nếu đăt là số dương sẽ tính từ đầu chuỗi - đặt là số âm sẽ tính từ cuối chuỗi -
đặt là số 0 sẽ thêm vào đầu chuỗi - (*) vị trí đầu tiên của chuỗi được tính là 0
cuối chuỗi = chiều dài - 1;length:
là số ký tự sẽ thay thế - nếu không truyền vào sẽ thay thế từ vị trí $start cho đến cuối chuồi hoặc về đầu chuỗi ( $start đặt là số âm)
Ví dụ: Thêm chữ 'Xin' vào đầu chuỗi - thêm chữ ' Nam!' vào cuối chuỗi
$nam = "chào"; $nam = substr_replace($nam,"Xin ",0,0); echo $nam; //kết quả: Xin chào echo substr_replace($nam," Nam!",(strlen($nam))); //kết quả: Xin chào Nam
Hàm substr_compare()
Cú pháp: int substr_compare(string $string1,string $string2,int $startpot,[int $length, bool $case])
Công dụng: So sánhchuỗi $string1 và $string2 ( chính xác theo giá trị nhị phân )$startpot:
vị trí bắt đầu tính để so sánh trong chuỗi $string1
$length:
độ dài các ký tự sẽ so sánh trong chuỗi $string1
- cách đặt vị trí và độ dài như hàm substr_replace().
Hàm trả ra 0 nếu 2 chuỗi giống nhau - 1 nếu 2 chuỗi khác nhau.
Ví dụ:
echo substr_compare("abc","abc",0)."<br>"; //kết quả: 0 echo substr_compare("abc","aBc",0)."<br>"; //kết quả: 1 echo substr_compare("abc","b",1,1)."<br>"; //kết quả: 0 echo substr_compare("abc","c",-1,1)."<br>"; //kết quả: 0 echo substr_compare("abc","bc",-2,2)."<br>"; //kết quả: 0 echo substr_compare("abc","ab",1,2)."<br>"; //kết quả: 1
Hàm strlen()
Cú pháp: int strlen(string $str)
Công dụng: Trả ra chiều dài chuỗi $str
Ví dụ:
<?php $str = 'Hello all'; echo 'Chieu dai chuoi ',strlen($str); //Chieu dai chuoi: Hello all 9 ?>
Hàm lcfirst():
Cú pháp: string lcfirst(string $str)
Công dụng: Đổi ký tự đầu tiên của chuỗi $str thành ký tự thường
Hàm ucfirst():
Cú pháp: string uc
first(string $str
)
Công dụng: chuyển đổi ký tự đầu tiên của chuỗi thành ký tự hoa
Hàm strtouper():
Cú pháp: string strtouper(string $str)
Công dụng: chuyển đổi tất cả các ký tự của chuỗi thành ký tự hoa
Ví dụ:
<?php $str = 'nguyen VaN a'; echo 'ku tu dau tien thanh ky tu hoa: ',ucfirst($str),'<br>'; echo 'ku tu dau tien thanh ky tu thuong: ',lcfirst($str),'<br>'; echo 'tat ca ky tu thanh chu thuong: ',strtolower($str),'<br>'; echo 'tat ca ky tu thanh chu hoa: ',strtouper($str),'<br>'; ?>
Hàm mã hóa md5() và sha1()
Cú pháp: md5(string $str) - sha1(string $str)
Công dụng: Mã hóa chuỗi $str
Ví dụ:
<?php $pass = md5('abc123'); echo 'mã hóa md5 cho chuỗi abc123: ',$pass,' chiều dài: ',strlen($pass),'<br>'; $pass = sha1('abc123'); echo 'mã hóa sha1 cho chuỗi abc123: ',$pass,' chiều dài: ',strlen($pass),'<br>'; ?>
Hàm stripos()
Cú pháp: int stripos(string $str, string $find, [int $start])
Công dụng: trả ra vị trí đầu tiên của chuỗi $find
tìm kiếm trong chuỗi $str
Hàm strripos()
Cú pháp: int strripos(string $str, string $find, [int $start])
Công dụng: trả ra vị trí cuối cùng của chuỗi $find
tìm kiếm trong chuỗi $str
Ví dụ:
<?php $str = 'php4 va php5'; echo stripos("php",$str); // mặc định sẽ tìm từ vị trí 0 - kết quả là 0 echo strripos("php",$str); // mặc định sẽ tìm từ vị trí 0 - kết quả là 9 ?>
Hàm substr()
Cú pháp: string substr(string $str,int $start,int $length)
Công dụng: lấy ra 1 phần của chuỗi tính từ vị trí $start
- 1 khoảng $length
Ví dụ: Lấy chuỗi 'hello' từ chuỗi 'hello world';
<?php echo substr("hello world",0,5); ?>
Ví dụ: lấy ra chuỗi 'php' đầu tiên trong chuỗi "I am a developer php and good at php zend frame work":
<?php //lấy ra vị trí của chuỗi "php" đầu tiên xuất hiện trong chuỗi tìm kiếm $php_pot = stripos("php","I am a developer php and good at php zend frame work"); //cắt ra chuỗi "php" - ở đây tôi sử dụng hàm strlen trong trường hợp tổng quát echo substr("I am a developer php and good at php zend frame work",php_pot,strlen("php")); ?>
Hàm implode()
Cú pháp: string implode(string
$glue
,
array
$pices
)
Công dụng: Hội tất cả các phần tử mảng $pices
chuỗi - phân tách nhau bởi chuỗi $glue
$glue
là nhóm ký tự phân tách giữa các phần tử mảng$pices
là mảng cần nối các phần tử thành 1 chuỗi
Ví dụ: gộp các phần tử của mảng arr thành 1 chuỗi, phân tách nhau bởi dấu '-'
<?php $arr = array("tâm","lan","huyền"); echo implode("-",$arr); //kết quả: tâm-lan-huyền ?>
Hàm explode()
Cú pháp: array explode ( string $delimiter , string $string [, int $limit ] )
Công dụng: cắt chuỗi $string
thành 1 mảng
Trong đó:
$delimiter:
là các ký tự phân tách các ký tự vd: '-' ',' ';' ...vv$string:
là chuỗi cần tách thành 1 mảng$limit:
tùy chọn, số lượng phần tử tối đa của mảng
Ví dụ: Tách chuỗi 'tâm-lan-huyền' thành mảng 3 phần tử, phân tách nhau bởi ký tự '-'
<?php $str = "tâm-lan-huyền"; print_r(explode("-",$str)); //giới hạn chỉ 2 phần tử print_r(explode("-",$str,2)); ?>
Hàm str_replace():
Cú pháp: string str_replace(string $find,string $replace,string $str,[int $count])
Công dụng: Thay thế chuỗi $find
( là chuỗi con của chuỗi $str
) bằng chuỗi $replace
Tùy chọn: $count
- một biến thêm vào để đếm số lượng từ thay thế
Ví dụ:
$str = "I la I Nam"; echo str_replace("I","toi",$str,$count)," so tu thay the ",$count; //kết quả: toi la toi nam so tu thay the 2