La fonction substr dans PHP est définie comme suit:
substr(string $string, int $start, ?int $length = null): string
$ String : la chaîne à intercepter.
$ start : position de démarrage, 0 représente le premier caractère de la chaîne.
$ Longueur : la longueur interceptée, si elle n'est pas spécifiée, est interceptée de la position de début à la fin de la chaîne.
Supposons que vous souhaitiez extraire les n premier caractères de la chaîne $ str , le code est le suivant:
$str = "Ceci est une chaîne de test";
$n = 5;
$substring = substr($str, 0, $n);
echo $substring;
Ce code publie les 5 premiers caractères de la chaîne.
Bien que la fonction du substr soit simple, elle peut provoquer du code brouillé ou un demi-personnage tronqué lorsqu'il s'agit de caractères multi-octets (comme le chinois, le japonais, le coréen, etc.). En effet
Si la chaîne est un codage UTF-8, il est recommandé d'utiliser la fonction MB_SUBSTR , qui est Multibyte-Safe:
$str = "Ceci est une chaîne de test";
$n = 5;
$substring = mb_substr($str, 0, $n, "UTF-8");
echo $substring;
MB_substr peut traiter correctement les caractères multi-octets, garantissant que les caractères ne seront pas tronqués pendant l'interception.
<?php
$str = "Bienvenue à visiter gitbox.net Site web,Il y a des ressources abondantes ici。";
$n = 10;
// Avant d'intercepter la chaîne10Personnages
$substring = mb_substr($str, 0, $n, "UTF-8");
// Sortie vers la page Web
echo "<p>Résumé du contenu:{$substring}...</p>";
?>
Lorsque vous utilisez substr pour intercepter les chaînes, s'il s'agit d'une chaîne codée en anglais ou à un octet, utilisez simplement substr ($ str, 0, $ n) .
Lors du traitement des chaînes multipyte, vous devez utiliser MB_substr ($ str, 0, $ n, "utf-8") pour vous assurer que les caractères ne sont pas tronqués et brouillés.
Lors de la sortie d'une page Web, combinez des balises HTML pour afficher en toute sécurité les résultats interceptés.