Version: 1.0
Type: Full Script
Category: Algorithms
License: GNU General Public License
Description: This dandy function uc_sentences that I made will capitalize the first word of every sentence. It's very nice as opposed to uc_words which looks tacky and is hard to read. Hopefully the PHP gods will put this into the next build they conjure up. My email is jdpetrov@mtu.edu if you have any questions or comments. Thanks!
<?
function uc_sentences($sString)
{
$sString = strtolower($sString);
$words = split(" ", $sString); // each entry in array $words is a word from the string
$firstword = false;
$sNewString = "";
foreach($words AS $wordkey=>$word)
{
$word = trim($word); // just in case people double-space between sentences
$lastchar = substr($word, -1); // $lastchar is used to determine if end-of-sentence is here
if(($firstword) OR ($wordkey==0)) // if it's the start of sentence then we capitalize the word
{
$word = ucfirst($word);
$firstword = false;
$sNewString = $sNewString . " $word"; // add the word to the output string
}
elseif(($lastchar==".") OR($lastchar=="!") OR ($lastchar=="?")) // you can add more chars if you need to
{
$firstword = true; // now the next word will be first word of new sentence
$sNewString = $sNewString . " $word"; // add the word to the output string
}
else
{
$sNewString = $sNewString . " $word"; // add the word to the output string
}
}
$sNewString = trim($sNewString); // sometimes an extra space at beginning or end occurs, so this fixes it
return $sNewString; // return the new string
}
// call it like this
$badstring = "I LIKE TO EAT POTATO CHIPS. GO EAT POTATO CHIPS! WHERE ARE THE CHIPS?"; // example string
print uc_sentences($badstring); // this will print "I like to eat potato chips. Go eat potato chips. Where are the potato chips?"
?>