I'm using this function to convert text to title case:

```
function strtotitle($title) {

 $smallwordsarray = array( 'of','a','the','and','an','or','nor','but','is','if','then','else','when', 'at','from','by','on','off','for','in','to','into','with','it', 'as' );

  // Split the string into separate words
  $words = explode(' ', $title);

  foreach ($words as $key => $word) {

   // If this word is the first, or it's not one of our small words, capitalise it
   // with ucwords().
   if ($key == 0 or !in_array($word, $smallwordsarray))
    $words[$key] = ucwords($word);
   }

   // Join the words back into a string
   $newtitle = implode(' ', $words);

   return $newtitle;
}

```

The issue is that if text is bold, italic etc then the function does not work and will not title case the word.

For example: "This is a simple sentence" will be converted to "This is a Simple Sentence". But "This is a **simple** sentence" will be converted to "This is a **simple** Sentence".

Any help greatly appreciated.