La fonction iconv_substr est un outil puissant en PHP pour intercepter les chaînes, et convient particulièrement aux jeux de caractères multi -yte (tels que UTF-8, GBK, etc.). Contrairement à la fonction du substr traditionnel, iconv_substr peut traiter correctement les chaînes contenant des caractères multi-octets et fonctionner particulièrement bien lorsqu'ils traitent des jeux de caractères non latins tels que chinois, japonais et coréen.
<span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = ?, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span> = ?): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ STR : La chaîne d'origine d'entrée, généralement la chaîne que vous souhaitez intercepter.
$ start : la position de début de l'interception, qui peut être un nombre négatif, indiquant que le calcul commence à partir de la fin de la chaîne.
$ Longueur : la longueur interceptée, spécifiant le nombre de caractères que vous souhaitez intercepter. S'il n'est pas spécifié, la fin de la chaîne est interceptée par défaut.
$ Encodage : Encodage de jeux de caractères, nous utilisons généralement UTF-8 ou GBK. S'il n'est pas spécifié, le codage système par défaut est utilisé par défaut.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, Bonjour,monde!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">7</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Sortir:Bonjour</span></span><span>
</span></span>
Dans l'exemple ci-dessus, nous commençons à partir de la position du 7e caractère et des caractères d'interception avec la longueur 3. Parce que c'est un codage UTF-8, iconv_substr peut gérer correctement les caractères chinois.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, Bonjour,monde!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, -</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Sortir:monde</span></span><span>
</span></span>
Dans cet exemple, -3 signifie intercepter le troisième dernier caractère de la chaîne, et le résultat est d'intercepter le "monde".
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"PHP langage de programmation"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// Sortir:langage de programmation</span></span><span>
</span></span>
Dans cet exemple, nous spécifions que nous interceptions du quatrième caractère, mais pas la longueur d'interception, et sera intercepté jusqu'à la fin de la chaîne par défaut.
substr est une fonction commune en PHP qui convient à la gestion des jeux de caractères à un octet (tels que les caractères ASCII), mais il peut errer lorsqu'il s'agit de jeux de caractères multi-gytets. Par exemple, lorsque vous utilisez substr pour intercepter les cordes chinoises, cela peut provoquer des caractères brouillés ou une interception incomplète. iconv_substr est spécialement utilisé pour les jeux de caractères multi-octets, ce qui peut assurer la précision de l'interception et éviter le code brouillé.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"PHPTutoriel chinois"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// 可能会Sortir乱码</span></span><span>
</span></span>
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"PHPTutoriel chinois"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>); </span><span><span class="hljs-comment">// 正确Sortir:Chinois</span></span><span>
</span></span>
La fonction ICONV_SUBSTR est très utile dans de nombreuses applications pratiques, en particulier lorsqu'ils traitent avec des ensembles de caractères multi -yte. Voici quelques scénarios d'application courants:
Lorsque vous développez des pages Web ou des applications prises en charge multilingue, vous devez généralement intercepter une certaine longueur de chaînes à partir de texte chinois. iconv_substr peut s'assurer que les caractères complets sont interceptés avec précision sans provoquer de code ou d'erreurs brouillé.
Lors du traitement des noms de fichiers contenant des jeux de caractères non latins tels que le chinois et le japonais, l'utilisation d'Iconv_substr peut s'assurer que le nom ou le chemin du fichier est intercepté correctement et éviter les problèmes brouillés.
Lors de l'interaction avec la base de données, iconv_substr peut être utilisé pour intercepter les champs de texte dans la base de données, en particulier lors du stockage de texte multilingue (comme le chinois, le japonais, etc.), en s'assurant que le texte intercepté n'a pas de caractères brouillé ou incomplètes.
Dans certaines applications, nous devrons peut-être paginer le texte long. iconv_substr peut nous aider à capturer avec précision le texte qui doit être affiché sur chaque page, en évitant la situation d'un demi-caractère.
ICONV_SUBSTR est une fonction PHP très pratique, particulièrement adaptée à la gestion des opérations de chaîne dans des ensembles de caractères multi -yte. Lorsque vous traitez avec des ensembles de caractères multi-octets tels que le chinois, le japonais et le coréen, iconv_substr peut fournir un meilleur soutien pour assurer la précision de l'interception. La maîtrise des scénarios d'utilisation et d'application de base de cette fonction est très important pour développer des applications PHP internationales.