Extraire les mots initiaux d'une chaîne
Problème : Limiter le contenu textuel en extrayant uniquement un nombre spécifié de mots d'une chaîne.
Solution : Utilisez l'approche suivante :
Utilisation de implode() et array_slice()
<code class="php">implode(' ', array_slice(explode(' ', $sentence), 0, 10));</code>
- Divisez la chaîne en un tableau de mots en utilisant éclater().
- Découpez le tableau pour ne conserver que le nombre de mots souhaité (dans ce cas, 10).
- Rejoignez le tableau découpé en une chaîne en utilisant implode().
Utilisation de preg_match() pour une personnalisation améliorée de la suppression des mots
<code class="php">function get_words($sentence, $count = 10) {
preg_match("/(?:\w+(?:\W+|$)){0,$count}/", $sentence, $matches);
return $matches[0];
}</code>
- Cette fonction utilise des expressions régulières pour faire correspondre des groupes de caractères de mots (w ) qui peuvent être entrecoupés de caractères autres que des mots (W ) ou la fin de la ligne ($).
- Le quantificateur {0,$count} restreint les correspondances au nombre de mots souhaité.
- La fonction renvoie le faire correspondre les mots sous la forme d'une seule chaîne.
Gestion UTF-8/Unicode
Les fonctions intégrées de PHP peuvent ne pas gérer les caractères UTF-8/Unicode de manière optimale. Pour résoudre ce problème :
- Remplacez w par 1 pour les caractères de mots.
- Remplacez W par [s,.;?!] pour les caractères autres que des mots.
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: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