Modérateur PHPfrance |
2575 Messages
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.

Modifié en dernier par
sadeq le 27 juin 2007, 15:57, modifié 2 fois.
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène