|  | Posted by Jochem Maas on 02/24/05 00:26 
Diana Castillo wrote:> with php,
 > HOW CAN I CONVERT SENTENCES LIKE THIS . TO BE UPPER AND LOWER CASE
 > to become like this :
 > How can I convert sentences like this. To be upper and lower case.
 >
 >
 
 here is something I hacked together for Smarty once, modified a bit to suit
 your need more (syntax-checked only), maybe it gives you some more to go on:
 
 function ucsentence($string, $lower = false /* dont think this is a good idea*/)
 {
 if ((boolean)$lower) {
 $string = strtolower($string);
 }
 // find this
 $find = array('/e\.g(\. | )/i', '/i\.e(\. | )/i', '/q\.e\.d(\. | )/i', '/ i /i');
 // replace with this temporarily
 $temp = array('>>::EG::<<.',    '>>::IE::<<.',    '>>::QED::<<.',      '>>::I::<<.');
 // replace temp with this at end of processing
 $repl = array('e.g. ',          'i.e. ',          'q.e.d. ',           ' I ');
 
 // filter out 'e.g's and other text 'atoms' that contain fullstops that do not
 // denote the end of a sentence.
 $string = preg_replace($find, $temp, $string);
 
 // find sentences
 $sentences = preg_split("/(\!(\s)?|\.(\s)?|\?(\s)?)/",$string, -1,PREG_SPLIT_DELIM_CAPTURE);
 
 // build the output string.
 foreach($sentences as $k => $sentence) {
 if (in_array(trim($sentence), array('.','?','!'))) {
 continue;
 }
 
 $sentences[ $k ] = ucfirst(trim($sentence));
 }
 
 // put the 'e.g.'s back etc
 $string = str_replace($temp, $repl, join('', $sentences));
 
 return $string;
 }
  Navigation: [Reply to this message] |