Obtenir le contenu entre deux chaînes prédéfinies est une tâche courante dans diverses applications PHP. Cette question aborde la meilleure approche pour une telle extraction, en utilisant des exemples spécifiques et en explorant différentes techniques.
La solution fournie utilise les fonctions ob_* pour capturer la sortie des éléments inclus. fichier externe (externalfile.html). La fonction preg_match est ensuite utilisée pour trouver le contenu souhaité entre les chaînes {FINDME} et {/FINDME}.
ob_start(); include('externalfile.html'); $out = ob_get_contents(); ob_end_clean(); preg_match('/{FINDME}(.|\n*)+{\/FINDME}/',$out,$matches); $match = $matches[0]; echo $match;
L'utilisation de .|n* garantit que les caractères et les sauts de ligne sont inclus dans le processus de correspondance.
Une approche alternative pour extraire le contenu entre les chaînes consiste à utiliser le fonctions substr et strpos.
$startsAt = strpos($out, "{FINDME}") + strlen("{FINDME}"); $endsAt = strpos($out, "{/FINDME}", $startsAt); $result = substr($out, $startsAt, $endsAt - $startsAt);
Cette méthode trouve explicitement les positions de début et de fin du contenu souhaité, garantissant précision et efficacité.
L'utilisation de la mise en mémoire tampon de sortie avec les fonctions ob_* permet la capture de la sortie d'autres scripts ou fonctions. Ceci est particulièrement utile lors de l'accès à du contenu qui ne peut pas être obtenu directement avec les fonctions de manipulation de fichiers.
Dans les cas où le contenu est déjà disponible sous forme de fichier, file_get_contents peut être utilisé pour un accès plus simple et direct. La vérification des erreurs est essentielle pour gérer les cas où le contenu souhaité n'est pas présent.
En fournissant plusieurs solutions et en clarifiant les avantages de chaque approche, cette réponse répond en profondeur à la question, guidant les développeurs vers des stratégies d'extraction de contenu optimales.
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!