Position actuelle: Accueil> Derniers articles> Vous voulez intercepter une chaîne de la gauche? Vous apprenez à utiliser la fonction substr pour implémenter une extraction de sous-chaîne efficace

Vous voulez intercepter une chaîne de la gauche? Vous apprenez à utiliser la fonction substr pour implémenter une extraction de sous-chaîne efficace

gitbox 2025-09-09

En PHP, la manipulation des cordes est l'une des fonctions les plus couramment utilisées dans le processus de développement. Qu'il s'agisse de traiter l'entrée des utilisateurs, de générer du contenu dynamique ou d'extraire des informations utiles à partir d'un long texte, nous devrons peut-être intercepter les chaînes. PHP fournit de nombreuses fonctions puissantes pour nous aider à traiter efficacement les chaînes et substr en fait partie.

Quelle est la fonction substr ?

substr est une fonction intégrée en PHP pour intercepter la pièce spécifiée à partir d'une chaîne. Avec lui, vous pouvez facilement démarrer n'importe où dans la chaîne et extraire une sous-chaîne.

Prototype de fonction :

 <span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</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-literal">null</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">null</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>
  • $ String : la chaîne d'origine qui doit être interceptée.

  • $ start : la position de départ, qui peut être un nombre négatif, signifie que le calcul commence à partir de la fin de la chaîne.

  • $ Longueur (facultatif): la longueur interceptée. S'il est omis, cela signifie que la chaîne est interceptée de la position de début à la fin de la chaîne.

Utilisez la fonction substr pour intercepter la chaîne à partir de la gauche

Supposons que nous ayons une chaîne "Bonjour, monde!" , si nous voulons intercepter les 5 premiers caractères de la gauche, nous pouvons utiliser la fonction substr . Le code est le suivant:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">5</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: Hello</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans cet exemple, 0 signifie commencer à partir du premier caractère de la chaîne, et 5 signifie intercepter une sous-chaîne de la longueur 5. La sortie est donc "bonjour" .

Contrôler dynamiquement la longueur interceptée

Vous pouvez également contrôler la longueur de l'interception en fonction des conditions dynamiques. Par exemple, si vous souhaitez intercepter uniquement la partie d'une chaîne basée sur une certaine condition, vous pouvez définir $ la longueur sur la valeur variable:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Welcome to PHP world!"</span></span><span>;
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">7</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$length</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: Welcome</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Gérer les indices négatifs

La fonction substr prend en charge l'indexation négative, ce qui signifie que vous pouvez intercepter du côté droit de la chaîne. Ceci est très utile pour gérer certaines opérations de chaîne à partir de la droite.

Par exemple, si vous souhaitez commencer par les trois derniers caractères d'une chaîne:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Learning PHP is fun!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, -</span><span><span class="hljs-number">3</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: fun</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ici, -3 signifie intercepter de l'avant-dernier caractère de la chaîne jusqu'à la fin de la chaîne.

Application pratique: extraire les extensions de fichiers

Un scénario commun consiste à extraire des extensions de nom de fichier. Supposons que vous ayez un chemin de fichier et que vous devez obtenir l'extension de fichier. Vous pouvez le faire en combinant les fonctions substr et strrpos .

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$file_name</span></span><span> = </span><span><span class="hljs-string">"document.pdf"</span></span><span>;
</span><span><span class="hljs-variable">$dot_position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrpos</span></span><span>(</span><span><span class="hljs-variable">$file_name</span></span><span>, </span><span><span class="hljs-string">'.'</span></span><span>);  </span><span><span class="hljs-comment">// Trouvez l&#39;emplacement du dernier point</span></span><span>
</span><span><span class="hljs-variable">$extension</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$file_name</span></span><span>, </span><span><span class="hljs-variable">$dot_position</span></span><span> + </span><span><span class="hljs-number">1</span></span><span>);  </span><span><span class="hljs-comment">// La partie derrière le point</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$extension</span></span><span>;  </span><span><span class="hljs-comment">// Sortir: pdf</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans cet exemple, STRRPOS est utilisé pour trouver la position du dernier point du nom du fichier, puis utiliser substr pour commencer à intercepter à partir de la position du point pour obtenir l'extension de fichier.

Choses à noter

  1. Paramètres hors de la plage $ start et $ Longueur : Si le paramètre $ start est supérieur à la longueur de la chaîne, ou $ la longueur dépasse le nombre restant de caractères, la fonction substr renvoie une chaîne vide ou une chaîne complète. Soyez prudent avec ces situations pour éviter les erreurs inutiles.

  2. Prend en charge les jeux de caractères multi-octets : la fonction substr de PHP peut avoir certaines limites sur les caractères multi-octets (tels que les caractères chinois). Si vous avez besoin de traiter avec des jeux de caractères multi -yte, il est recommandé d'utiliser la fonction MB_SUBSTR au lieu de substr .

Résumer

La fonction substr est un outil très pratique en PHP. Il peut nous aider à intercepter les sous-chaînes d'une longueur spécifiée à partir de la gauche, et même à soutenir l'interception des chaînes partielles de la droite. En utilisant cette fonction raisonnablement, le traitement des chaînes peut être considérablement simplifié et la lisibilité et l'efficacité du code peuvent être améliorées. Dans le développement réel, nous pouvons utiliser la fonction substr pour effectuer de manière flexible diverses tâches d'extraction de chaînes, ce qui convient non seulement à l'interception de longueur fixe, mais aussi à faire face aux exigences d'interception dans des conditions dynamiques.