Trích xuất chuỗi với hàm substr() trong PHP

1. Chức năng của hàm substr()

Hàm substr() trong PHP có chức năng lấy ra một chuỗi con trong chuỗi cha ban đầu. Chuỗi con được lấy ra phụ thuộc vào đối số truyền vào hàm substr().

Hàm substr() trong PHPMinh họa hàm substr() trong PHP

2. Cú pháp của hàm substr()

substr(string $string, int $offset, int $length = null): string

Trong đó:

$string là chuỗi cha ban đầu muốn lấy chuỗi con ra. Tham số này phải có kiểu là string.

$offset là vị trí bắt đầu lấy chuỗi con trong chuỗi cha.

Nếu offset là số không âm (>=0) thì chuỗi con trả về sẽ bắt đầu ở vị trí của offset. Vị trí các ký tự trong chuỗi bắt đầu từ 0. Ví dụ, chuỗi “abcdef” thì ‘a’ có vị trí là 0, ‘b’ là 1, ‘c’ là 2,…

Nếu offset là số âm thì chuỗi con trả về sẽ bắt đầu ở vị trí của offset nhưng được đánh vị trí từ cuối chuỗi. Ví dụ, chuỗi “abcdef” thì ‘f’ có vị trí -1, ‘e’ là -2, ‘d’ là -3,…

$rest = substr("abcdef", -1);//"f"
$rest = substr("abcdef", -2);//"ef"
$rest = substr("abcdef", -3, 1);//"d"

Nếu offset là số lớn hơn hoặc bằng độ dài của chuỗi thì chuỗi rỗng (empty) sẽ được trả về.

$length là độ dài chuỗi con muốn lấy ra. $length là tham số tùy chọn, có thể có hoặc không.

Nếu $length không có thì chuỗi con trả về sẽ bắt đầu từ vị trí của offset đến cuối chuỗi cha ban đầu.

Nếu $length có thì:

    • Nếu $length0, false hoặc null thì chuỗi rỗng sẽ được trả về.
    • Nếu $length là số dương thì chuỗi con trả về sẽ chứa tối đa $length ký tự bắt đầu từ vị trí offset.
    • Nếu $length là số âm thì chuỗi con trả về bắt đầu từ vị trí offset đến cuối chuỗi cha ban đầu nhưng bỏ đi $length ký tự từ cuối chuỗi.
$rest = substr("abcdef", 0, -1);  //"abcde"
$rest = substr("abcdef", 2, -1);  //"cde"
$rest = substr("abcdef", 4, -4);  //""
$rest = substr("abcdef", -3, -1); //"de"

– Kết quả trả về có thể là một chuỗi con hoặc chuỗi rỗng (empty).

3. Một số ví dụ sử dụng hàm substr()

echo substr('abcdef', 1); //bcdef
echo substr('abcdef', 1, 3); //bcd
echo substr('abcdef', 0, 4);//abcd
echo substr('abcdef', 0, 8);//abcdef
echo substr('abcdef', -1, 1);//f

Lưu ý: Hàm substr() không làm thay đổi chuỗi cha ban đầu.

4.6/5 – (10 bình chọn)