Jump to content
php.lv forumi

ucwords, bet ar izņēmumu


jam

Recommended Posts

Ir strings, kuram vajag visus vārda pirmos burtus kapitalizēt iz'nemot saikļus and un are utt.

 

$teksts = "bannanas_and_apples_are_fruits";

$str = ucwords(str_replace("_"," ",$teksts));

 

echo $str; // Bannanas And Apples Are Fruits

 

varbūt kāds var on the fly uzrakstīt, kā lai And un Are paliktu lowerkeisā?

 

Paldies.

Link to comment
Share on other sites

<?php
$text = "bannanas and apples are fruits";

function ucword_callback( $m ) {
 return ( !in_array($m[0], Array('are','and') ) )
   ? ucfirst($m[0])
   : $m[0];
}

function ucword( $text ) {
$sp = '/([^\s]+)/i';
return preg_replace_callback( $sp, 'ucword_callback', $text );
}

print ucword($text);
?>

Edited by Delfins
Link to comment
Share on other sites

Var tak vienkāršāk ne?

 

$str = ucwords($teksts);

$str = str_replace('And','and',$str);

$str = str_replace('Are','are',$str);

 

vai

 

$trans = array('And' => 'and', 'Are' => 'are');

$str = strtr(ucwords($str), $trans);

 

 

ja izvirst tad ..

 

 

bez visiem callbackiem utt utprj..

 

Bet ja pieņem tiek koriģēti teikumi ko darīt ja 'are' vai 'and' ir teikuma sākuma (and diezvai bet Are jautājumā var noteikti būt)? :)

Link to comment
Share on other sites

×
×
  • Create New...