Maison > développement back-end > tutoriel php > Comment puis-je extraire efficacement des sous-chaînes entre délimiteurs en PHP ?

Comment puis-je extraire efficacement des sous-chaînes entre délimiteurs en PHP ?

DDD
Libérer: 2024-12-17 09:36:25
original
942 Les gens l'ont consulté

How Can I Efficiently Extract Substrings Between Delimiters in PHP?

Recherche de sous-chaînes entre délimiteurs en PHP

Les développeurs rencontrent souvent le besoin d'extraire des sous-chaînes prises en sandwich entre des délimiteurs spécifiques. PHP offre une méthode simple pour accomplir cette tâche sans recourir à des expressions régulières complexes.

Fonction GetInnerSubstring

Pour simplifier le processus, les développeurs PHP peuvent exploiter les fonctions strpos et substr pour créer une fonction getInnerSubstring personnalisée. Voici comment cela fonctionne :

  1. Identifier les positions des délimiteurs : La fonction prend deux arguments : une chaîne ($string) et un délimiteur ($delim). Il utilise strpos pour localiser la première et la dernière occurrence du délimiteur dans la chaîne.
  2. Extraire la sous-chaîne : Une fois les positions du délimiteur identifiées, le code utilise substr pour découper la sous-chaîne souhaitée entre celles-ci. positions.
  3. Exemple d'utilisation : Pour extraire la sous-chaîne entre deux délimiteurs, appelez simplement $substring = getInnerSubstring($string, $delim). Par exemple, avec $string = "foo I wanna a cake foo", getInnerSubstring($string, "foo") renvoie " I wanna a cake ".

Extension à plusieurs délimiteurs

La fonction getInnerSubstring peut être étendue pour gérer plusieurs occurrences du même délimiteur, en les séparant dans un tableau. Voici le code modifié :

function getInnerSubstring($string, $delim) {
    $start_pos = strpos($string, $delim);
    $result = array();
    while ($start_pos !== false) {
        $end_pos = strpos($string, $delim, $start_pos + strlen($delim));
        if ($end_pos === false) break;
        $result[] = substr($string, $start_pos + strlen($delim), $end_pos - $start_pos - strlen($delim));
        $start_pos = strpos($string, $delim, $end_pos);
    }
    return $result;
}
Copier après la connexion

Exemple d'utilisation :

$string = "foo I like php foo, but foo I also like asp foo, foo I feel hero  foo";

$result = getInnerSubstring($string, "foo");

print_r($result);
// Output: [" I like php ", " I also like asp ", " I feel hero "]
Copier après la connexion

Cette version étendue vous permet de récupérer un tableau de sous-chaînes situées entre n'importe quel nombre d'occurrences de délimiteur .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal