par
sadeq » 27 juin 2007, 15:09
Hé oui, c'est dù au fait que dans la fonction simplifie() tu concaténe toujours avec les points.
La difficulté réside dans le fait que tu ne sait pas pour une phrase X quel délimiteur a été rencontré pour couper 2 phrases.
La solution est d'utiliser preg_split() avec le flag : PREG_SPLIT_DELIM_CAPTURE (version >= PHP 4.0.5)
tout en entourant les délimiteurs recherchés entre () comme ça cette fonction retourne à la fois les phrases découpées et les démimiteurs rencontrés.
Exemple:
<?php
$texte = "1° phrase! 2° phrase? 3° phrase.";
$phrases = preg_split("/(\?)+|(!)+|(\.)+/", $texte,-1, PREG_SPLIT_NO_EMPTY+PREG_SPLIT_DELIM_CAPTURE);
//afficher
print_r($phrases);
?>
Mais fait attention au nouveau compte des phrases.

Hé oui, c'est dù au fait que dans la fonction simplifie() tu concaténe toujours avec les points.
La difficulté réside dans le fait que tu ne sait pas pour une phrase X quel délimiteur a été rencontré pour couper 2 phrases.
La solution est d'utiliser preg_split() avec le flag : PREG_SPLIT_DELIM_CAPTURE (version >= PHP 4.0.5)
tout en entourant les délimiteurs recherchés entre () comme ça cette fonction retourne à la fois les phrases découpées et les démimiteurs rencontrés.
Exemple:
[php]<?php
$texte = "1° phrase! 2° phrase? 3° phrase.";
$phrases = preg_split("/(\?)+|(!)+|(\.)+/", $texte,-1, PREG_SPLIT_NO_EMPTY+PREG_SPLIT_DELIM_CAPTURE);
//afficher
print_r($phrases);
?>[/php]
Mais fait attention au nouveau compte des phrases. :wink: