------
Phần 64. Chuỗi
trong PHP – phần 2
Đây là clip số 41:
Bài tập,
Cho chuỗi URL = 'http://210.245.126.171/Music/NhacTre/TinhYeu_LyMaiTrang/wma32/06_BienTham_TinhYeu_LyMaiTrang.wma'
Hãy trích ra,
- ID: 06
- Name: Bien Tham
- Album: Tinh Yeu
- Singer: Ly Mai Trang
- Type: wma
Làm theo hướng dẫn của clip để trích ra chuỗi ‘06_BienTham_TinhYeu_LyMaiTrang.wma’
bằng ba cách:
Cách 1:
function getInfo01 ($str) {
$array
= explode('/', $str);
$result
= $array[count($array)-1];
return
$result;
}
Cách 2:
function
getInfo02 ($str) {
$array
= parse_url($str);
//
chuyển chuỗi path thành mảng
$info
= explode('/', $array[path]);
//
lấy phần tử cuối của mảng
$result
= $info[count($info) - 1];
return
$result;
}
Cách 3:
function getInfo03 ($str) {
$index
= strripos($str, '/');
$result
= substr($str, $index+1);
echo
$result;
}
Để kiểm tra một kí tự có ở dạng chữ hoa hay không sử dụng
hàm ctype_upper(text).
Đây là toàn bộ đoạn mã của bài tập,
<?php
$url =
'http://210.245.126.171/Music/NhacTre/TinhYeu_LyMaiTrang/wma32/06_BienTham_TinhYeu_LyMaiTrang.wma';
function
getInfo03 ($str) {
$index
= strripos($str, '/');
$result
= substr($str, $index+1);
return
$result;
}
$info =
getInfo03($url);
$result =
array();
$arrayInfo =
explode('_', $info);
// ID
$result['id'] =
$arrayInfo[0];
// Type
$arrayType =
explode('.', $arrayInfo[3]);
$result['type']
= $arrayType[1];
// Name, Album,
Singer
$arrayInfo[3] =
$arrayType[0];
function
format($str) {
$result
= $str[0];
for($i
= 1; $i < strlen($str); $i++) {
if(ctype_upper($str[$i]))
{
$result
.= ' '.$str[$i];
}
else {
$result
.= $str[$i];
}
}
return
$result;
}
$result['singer']
= format($arrayInfo[3]);
$result['name']
= format($arrayInfo[1]);
$result['album']
= format($arrayInfo[2]);
?>
Đây là clip số 42:
Để so sánh hai chuỗi, sử dụng hàm strcmp($str1, $str2). Ví
dụ:
- strcmp('abc', 'abc'); trả về 0: hai chuỗi bằng nhau.
- strcmp('abc', 'abcde'); trả về -2: chuỗi hai lớn hơn chuỗi
một 2 kí tự.
- strcmp('abcdef', 'abc'); trả về 3: chuỗi một lớn hơn chuỗi
hai 3 kí tự.
Để so sánh một phần của chuỗi $str1 với toàn bộ chuỗi $str2,
sử dụng hàm substr_compare($str1, $str2, $start, $length). Ví dụ,
substr_compare('abcdef', 'abc', 0, 3); trả về 0: ba kí tự
của chuỗi một bằng chuỗi hai.
Để tăng độ dài của chuỗi bằng cách chèn thêm các kí tự, sử
dụng hàm str_pad($str, $length, $padString, $padType); tăng chiều dài cho chuỗi
$str thành $length kí tự, bằng cách chèn thêm kí tự $padString.
Ví dụ,
$str = 'abc';
$new_str =
str_pad($str, 7, 't');
echo $new_str;
Kết quả là: abctttt
Ví dụ có tham số $padType: chèn bên trái, phải, hay hai bên.
<?php
$str = 'abc';
$new_str =
str_pad($str, 7, 't', STR_PAD_LEFT);
echo $new_str;
?>
Kết quả là: ttttabc
Để xáo trộn các kí tự trong chuỗi, sử dụng hàm
str_shuffle(). Ví dụ,
$str = 'abc';
$new_str =
str_shuffle($str);
echo $new_str;
Để tìm kiếm và thay thế các kí tự trong chuỗi, sử dụng hàm
str_replace($find, $replace, $string); tìm trong chuỗi $string, nếu có chuỗi
$find, hãy thay thế bằng chuỗi $replace. Hàm str_replace cũng có thể thực hiện
thay thế trên mảng.
Để đếm số lần xuất hiện của chuỗi con, sử dụng hàm
substr_count($string, $substring, $start, $length); lấy $length phần tử từ vị
trí $start của chuỗi $string, và đếm số lần xuất hiện của chuỗi $substring
trong chuỗi vừa lấy.
Sử dụng hàm str_split($str, $length) để cắt chuỗi thành từng
phần đưa vào mảng, độ dài của mỗi phần là $length kí tự.
Ví dụ,
<?php
$str =
'abcdefgh';
$array =
str_split($str, 2);
echo
'<pre>';
print_r($array);
echo
'</pre>';
?>
Kết quả xuất ra là,
Array
(
[0] => ab
[1] => cd
[2] => ef
[3] => gh
)
Đây là clip số 43: bài tập chuẩn hóa chuỗi
Một chuỗi gọi là chuẩn khi:
- Không có khoảng trắng ở đầu và cuối chuỗi
- Giữa các từ chỉ có một khoảng trắng
- Viết hoa kí tự đầu tiên của chuỗi, của danh từ riêng
- Các kí tự còn lại ở dạng chữ thường
Đây là đoạn mã,
<?php
$str = ' nGuyeN
VAn tEo ';
function
formatString($str, $type = null) {
//
chuyển về dạng chữ thường
$str
= strtolower($str);
//
bỏ khoảng trắng trái-phải
$str
= trim($str);
//
bỏ khoảng trắng thừa ở giữa
//
chuyển chuỗi thành mảng
$array
= explode(' ', $str);
//
bỏ các phần tử khoảng trắng trong mảng
foreach
($array as $key => $value) {
if(trim($value)
== null) {
unset($array[$key]);
continue;
}
if($type
== 'danh-tu') $array[$key] = ucfirst($value);
}
//
chuyển mảng thành chuỗi
$result
= implode(' ', $array);
//
chuyển kí tự đầu tiên của chuỗi thành chữ hoa
$result
= ucfirst($result);
return
$result;
}
echo $result =
formatString($str, 'danh-tu');
?>
-----------
Cập nhật [9/9/2020]
-----------