Ce face mb_strcut
mb_strcut seamănă cu substr: $start și $length sunt în octeți. Diferența este că, dacă tăietura ar cădea în mijlocul unui caracter multibyte, limita este mutată la începutul acelui caracter.
Este utilă când ai o limită strictă în octeți (o coloană din baza de date, un câmp dintr-un protocol), dar vrei ca rezultatul să rămână UTF-8 valid.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul original. |
$start |
Poziția de început, în octeți. |
$length |
Opțional. Numărul maxim de octeți. |
$encoding |
Opțional. Codarea textului. |
Ce returnează
Bucata de text, de cel mult $length octeți.
Exemple
Exemplul 1: Limită de 5 octeți
„Ț” și „ă” au câte 2 octeți. Al cincilea octet este prima jumătate a literei „ă”, așa că mb_strcut se oprește la 4 octeți. substr ar tăia litera și ar da un text invalid.
<?php
$text = "Țară mândră";
$bucata = mb_strcut($text, 0, 5);
echo $bucata . " (" . strlen($bucata) . " octeți)\n";
var_dump(mb_check_encoding(substr($text, 0, 5), "UTF-8"));
Rezultat
Țar (4 octeți)
bool(false)
Greșeli frecvente
- Folosești
mb_strcutcând vrei un număr de caractere. Pentru caractere foloseștemb_substr.
Comenzi înrudite
mb_substr: Extrage o bucată dintr-un text după poziții în caractere, fără să strice diacriticele.substr: Extrage o bucată dintr-un text, pornind de la o anumită poziție.mb_strimwidth: Scurtează un text la o lățime dată și adaugă un marcaj la final, de exemplu „…”.