Cette méthode suppose que les mots ne sont séparés par des espaces (sans onglets, les sauts de lignes ou d'autres espaces blancs) et dépend de la fonction de la bibliothèque PHP "tags de bande" qui suppose probablement HTML bien formé (qui, selon mon expérience est une mauvaise hypothèse).
$string_content = strip_tags($html_content);
$start_cursor = $end_cursor = strpos($string_content, 'Twenty-three');
for($i = 0; $i < 10; $i++) { // rewind backwards until we find 10 spaces
$start_cursor = strrpos($string_content, ' ', $start_cursor);
}
for($i = 0; $i <= 10; $i++) { // skip forward until we find eleven spaces
$end_cursor = strpos($string_content, ' ', $end_cursor);
}
$result_string = substr($string_content, $start_cursor, $end_cursor - $start_cursor);
non testé, mais je crois qu'il est une approche efficace
En option, vous pouvez stériliser les espaces blancs:
$string_content = strip_tags($html_content);
$string_content = preg_replace("/\s+/", " ", $string_content); // replace any number of adjacent whitespace characters with a single space
pourrait vous donnez un exemple de la sortie que vous attendez de thi s fonction? – Andy
Et pouvez-vous ajouter des sauts de ligne à votre exemple? C'est très difficile à lire maintenant. –
@Dam - s'il vous plaît trouver un autre exemple de texte pour votre question. – user187291