
Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Hi, Khách!
![]() | ![]() ![]() ![]() ![]() |
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.
1. Quy Tắc Trong Chuỗi
Nếu chuỗi được đặt trong cặp dấu nháy kép (“”) và nếu trong chuỗi có ký tự nháy kép (“) thì phải thêm dấu gạch chéo đằng trước ký tự đó.
Ví dụ:
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ụ:
Nếu chuỗi được đặt trong dấu nháy đơn thì nếu trong chuỗi có ký tự (‘) thì phải thêm dấu gạch chéo đằng trước ký tự đó.
Ví dụ:
2. Các Hàm Xử Lý Chuỗi Hay Sử Dụng:
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.
// 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'));
Copy code
addslashes ( $str )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'));
Copy code
Hàm này sẽ thêm dấu gách chéo trước những ký tự (‘, “, \) trong chuỗi $str.
echo addslashes ("Freetuts's a website learning online");
// Kết quả là Freetuts's a website learning online
Copy code
stripslashes ($str)// Kết quả là Freetuts's a website learning online
Copy code
Hàm này ngược với hàm addslashes, nó xóa các ký tự \ trong chuỗi $str.
echo stripslashes("Mot so ham 'xu ly chuoi' trong PHP");
// Kết quả Mot so ham 'xu ly chuoi' trong PHP
Copy code
crc32 ( $str )// Kết quả Mot so ham 'xu ly chuoi' trong PHP
Copy code
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).
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.
// 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' */
Copy code
implode($delimiter, $piecesarray);$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' */
Copy code
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
echo implode(' ', array(
'freetuts',
'xin',
'chào',
'các',
'bạn'
));
// kêt quả là freetuts xin chào các bạn
Copy code
ord ( $string )'freetuts',
'xin',
'chào',
'các',
'bạn'
));
// kêt quả là freetuts xin chào các bạn
Copy code
Hàm này trả về mã ASCII của ký tự đầu tiên trong chuỗi $string.
strlen($string)
Hàm này đếm số ký tự của chuỗi $string.
str_word_count($str)
Hàm này trả về số từ trong chuỗi $str.
str_repeat($str, int $n)
Hàm này lặp chuỗi $str $n lần.
str_replace($chuoi_tim,$chuoi_thay_the,$chuoi_nguon)
Hàm này tìm kiếm và thay thế chuỗi.
$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
Copy code
Để thay thế nhiều chuỗi ta có thể dùng mảng để truyền vào$str = str_replace( 'Freetuts', ' Freetuts.net', $str );
echo $str; // kết quả là Freetuts.net Xin Chào Các Bạn
Copy code
$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
Copy code
md5($str)$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
Copy code
Hàm này mã hóa chuỗi thành một dãy 32 ký tự (mã hóa md5).
sha1($string)
Hàm này mã hóa chuỗi thành một dãy 40 ký tự (mã hóa sha1)
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).
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.
$str = htmlentities('<b> freetuts.net</b>');
echo 'Entity: ' . $str . '<br/>';
echo 'Decode: ' . html_entity_decode($str);
Copy code
htmlspecialchars( $string)echo 'Entity: ' . $str . '<br/>';
echo 'Decode: ' . html_entity_decode($str);
Copy code
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.
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.
[/bstrstr( $string, $ky_tu_cho_truoc )[/b
Tách một chuỗi bắt đầu từ $ky_tu_cho_truoc cho đến hết chuỗi.
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.
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.
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 thành thẻ“\n”
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.

![]() | ![]() ![]() ![]() ![]() |
Cắt chuỗi substr()
Cũng như các ngôn ngữ lập trình khác, PHP hỗ trợ hàm substr() để cắt chuỗi con với chiều dài l bắt đầu từ vị trí thứ i từ chuỗi str được cung cấp.
Cú pháp.
Trong đó: - int l: Tham số tùy chọn. Điều này có nghĩa là nếu bạn không cung cấp chiều dài của chuỗi cần lấy ra, hàm này sẽ trả về chuỗi con từ vị trí thứ i đến hết chuỗi như ví dụ sau:
<?php
$str="Ho Tro Lap Trinh";
echo $str."<br/>"; // Hiển thị chuỗi gốc.
echo substr($str,1)."<br/>"; // Cắt chuối con từ vị trí 1 đến hết chuỗi
echo substr($str,-6)."<br/>"; //Cắt từ vị trí số 6 đếm từ cuối chuỗi đến hết chuỗi
echo substr($str,1,9)."<br/>"; // Cắt từ vị trí số 1 đến vị trí số 9
echo substr($str,2,-10)."<br/>"; //Cắt từ vị trí số 2 đến vị trí số 10 từ cuối chuỗi.
?>
Copy code
$str="Ho Tro Lap Trinh";
echo $str."<br/>"; // Hiển thị chuỗi gốc.
echo substr($str,1)."<br/>"; // Cắt chuối con từ vị trí 1 đến hết chuỗi
echo substr($str,-6)."<br/>"; //Cắt từ vị trí số 6 đếm từ cuối chuỗi đến hết chuỗi
echo substr($str,1,9)."<br/>"; // Cắt từ vị trí số 1 đến vị trí số 9
echo substr($str,2,-10)."<br/>"; //Cắt từ vị trí số 2 đến vị trí số 10 từ cuối chuỗi.
?>
Copy code
Vd1: đếm ký tự trước rồi mới cắt và cắt đoạn sau của đoạn ký tự ấy ? làm thế nào nhỉ?
$str = 'Chuỗi ký tự';
echo 'Chuỗi có độ dài là: '.strlen($str); // hàm strlen là để đếm độ dài của chuỗi ký tự bạn nhé
Copy code
echo 'Chuỗi có độ dài là: '.strlen($str); // hàm strlen là để đếm độ dài của chuỗi ký tự bạn nhé
Copy code
VD2: "ho tro lap trinh" thì mình muốn hiển thị 10 chử cái đầu thì thì sao nhỉ?
-Kết quả: "ho tro lap"
Chỉnh sửa lúc 2015-08-06 21:38 bởi Pham_loi

![]() | ![]() ![]() ![]() ![]() |
cắt chuỗi có điều kiện trong php
Vd mình muốn cắt một chuỗi như thế này:
mình muốn cắt những hợp âm đầu đi chỉ còn lại:
Thì code như thế này:
<?php
$chuoi='[AmNhững mùa dấu yêu ơi! Xa rồi ngàn xa [Ekỷ niệm';
$chuoi=preg_replace('/\[(.+?)\/','',$chuoi);
echo $chuoi;
?>
Copy code
$chuoi='[AmNhững mùa dấu yêu ơi! Xa rồi ngàn xa [Ekỷ niệm';
$chuoi=preg_replace('/\[(.+?)\/','',$chuoi);
echo $chuoi;
?>
Copy code

![]() | ![]() ![]() ![]() ![]() |
Tách chuỗi sử dụng hàm explode()
Trong một số trường hợp đặc biệt bạn cần tách các phẩn tử của chuỗi thành những chuỗi nhỏ hơn. Bài viết này, chúng tôi sẽ hướng dẫn các bạn thực hiện việc đó bằng cách sử dụng hàm: explode().
Cú pháp:
Ví dụ:
<?php
$str="Sinh Viên Công Nghệ Thông Tin";
echo $str."<br/>";
print_r (explode(" ",$str)); // Tách chuỗi gốc thành nhiều chuỗi con dựa vào dấu cách
?>
Copy code
$str="Sinh Viên Công Nghệ Thông Tin";
echo $str."<br/>";
print_r (explode(" ",$str)); // Tách chuỗi gốc thành nhiều chuỗi con dựa vào dấu cách
?>
Copy code
Tuy nhiên trong thực tế, người ta hay sử dụng hàm explode() để tách Email thành 2 phần: Username - Domain.
Trong ví dụ này chúng tôi sẽ hướng dẫn bạn tách Email ra làm 2 phần: Username - Domain dựa vào ký tự @.
Ví dụ:
<?php
$str="vuthanhlai@gmail.com";
$email = explode("@",$str); // Tách chuỗi gốc thành nhiều chuỗi con dựa vào ký tự @
echo "Username: ".$email[0."<br/>";
echo "Domain: ".$email[1;
?>
Copy code
$str="vuthanhlai@gmail.com";
$email = explode("@",$str); // Tách chuỗi gốc thành nhiều chuỗi con dựa vào ký tự @
echo "Username: ".$email[0."<br/>";
echo "Domain: ".$email[1;
?>
Copy code
----------------------------------------------------------------
Nhưng cái này tách được có 2 phần.
VD như:
thì sao nhỉ ?
Mún lấyadasdasdfsfasriêng vàabc.com.vnriêng thì sao nhỉ?
Reply:
Tách bằng @ trước, sau đó tách bằng dấu . phần thứ 2.
----------------------------------------------------------------
1.mailkhachhang: nt.nhantv@gmail.com-Sodienthoai:09090090009 - diachi:VN|gioitinh:Nu! - Congviec: Sinhvien
Có dòng thông tin như vậy!
Giờ mình muốn lọc kết quả ra với dạng:
Chỉ lấy 2 kết quả như vậy thì mình viết code thế này?
<?php
$input = "1.mailkhachhang:nt.nhantv@ gmail.com-Sodienthoai:09090090009 - diachi:VN|gioitinh:Nu! - Congviec: Sinhvien"; //Input
$input = explode("mailkhachhang:",$input);
$explode = explode("-",$input[1);
$mail = $explode[0;
$pass = str_replace("Sodienthoai:","",$explode[1);
echo $mail." - ".$pass;
?>
Copy code
$input = "1.mailkhachhang:nt.nhantv@ gmail.com-Sodienthoai:09090090009 - diachi:VN|gioitinh:Nu! - Congviec: Sinhvien"; //Input
$input = explode("mailkhachhang:",$input);
$explode = explode("-",$input[1);
$mail = $explode[0;
$pass = str_replace("Sodienthoai:","",$explode[1);
echo $mail." - ".$pass;
?>
Copy code
----------------------------------------------------------------
Để giảm thiểu lỗi thì đầu tiên phải tách nhiều lần
rồi tạo vòng lặp để bóc tách từng tập $tmp[$x
----------------------------------------------------------------
Mình có dạng như này:
shanta.tomasini@yahoo.com Iha6T Đã đăng ký 08/08/2013 13:5116/08/2013 22:00
luciana_judson@yahoo.c om HuciaeI1Vd Đã đăng ký 08/08/2013 13:51
16/08/2013 21:57
dorisalberts25@yahoo.com DseAav Đã đăng ký 08/08/2013 13:51
16/08/2013 21:54
Copy code
luciana_judson@yahoo.c om HuciaeI1Vd Đã đăng ký 08/08/2013 13:51
16/08/2013 21:57
dorisalberts25@yahoo.com DseAav Đã đăng ký 08/08/2013 13:51
16/08/2013 21:54
Copy code
mình chỉ cần lấy chỗ:
shanta.tomasini@yahoo.com Iha6T
luciana_judson@yahoo.com HuciaeI1Vd
dorisalberts25@yahoo.com DseAav
Copy code
luciana_judson@yahoo.com HuciaeI1Vd
dorisalberts25@yahoo.com DseAav
Copy code
thì làm thế này:
$abc="shanta.tomasini@ yahoo.com Iha6T Đã đăng ký 08/08/2013 13:5116/08/2013 22:00 ";
$code1 = explode("",$abc);
$code2 = explode(" ",$code1[1);
echo code2[0;
$code3 = explode($code2,$abc);
$code4 = explode(" ",$code3[1);
echo code4[0;
Copy code
$code1 = explode("",$abc);
$code2 = explode(" ",$code1[1);
echo code2[0;
$code3 = explode($code2,$abc);
$code4 = explode(" ",$code3[1);
echo code4[0;
Copy code
----------------------------------------------------------------
Vd có 1 chuỗi như sau:
Bây giờ mình muốn lấy từ php? trở về trước thì làm thế nào?
Reply:
Rồi var_dump ($ketqua) ra
Chỉnh sửa lúc 2015-08-06 22:15 bởi Pham_loi

![]() | ![]() ![]() ![]() ![]() |
Ngắt từ đầu đến từ gần nhất với 100 kí tự
function neods($string,$len)
{
if( $len > strlen($string)){$len=strlen($string);};
$pos = strpos($string, ' ', $len);
if( $pos){$string = substr($string,0,$pos);}else{$string = substr($string,0,$len);}
return $string;
}
echo neods('Tôi yêu Việt Nam Tôi yêu SVIT',19); // In ra Tôi yêu Việt Nam
echo substr('Tôi yêu Việt Nam Tôi yêu SVIT',0,19) // In ra Tôi yêu Việt Na
Copy code
{
if( $len > strlen($string)){$len=strlen($string);};
$pos = strpos($string, ' ', $len);
if( $pos){$string = substr($string,0,$pos);}else{$string = substr($string,0,$len);}
return $string;
}
echo neods('Tôi yêu Việt Nam Tôi yêu SVIT',19); // In ra Tôi yêu Việt Nam
echo substr('Tôi yêu Việt Nam Tôi yêu SVIT',0,19) // In ra Tôi yêu Việt Na
Copy code

Trực Tuyến:
Khách: 1