Advertisement
Valleri

Uppercase Words

Sep 2nd, 2014
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.35 KB | None | 0 0
  1. <?php
  2. $text = "Companies like
  3.    HP, ORACLE and IBM target their platforms for cloud-based environment.
  4.    IList<T> implements IEnumerable<T>. GoPHP is a 5P4PHP library.
  5. ";
  6.  
  7. $upperWords = preg_split("/[^A-Za-z]+/", $text, -1, PREG_SPLIT_NO_EMPTY);
  8.  
  9. $upperWords = array_filter($upperWords, function($val) {
  10.     if(!ctype_upper($val)) {
  11.         return false;
  12.     }
  13.     return true;
  14. });
  15. if($upperWords == false) {
  16.     echo "<p>" . htmlspecialchars($text) . "</p>";
  17.     die;
  18. }
  19. $upperWords = array_unique($upperWords);
  20. $upperWords = array_combine(range(0, count($upperWords) - 1), $upperWords);
  21.  
  22. function manipulate_words($wordArray) {
  23.     $producedWords = array();
  24.  
  25.     for($i = 0; $i < count($wordArray) ;$i++) {
  26.         if(strrev($wordArray[$i]) == $wordArray[$i]) {
  27.             $temp = "";
  28.             foreach (str_split($wordArray[$i]) as $char) {
  29.                 $temp .= str_repeat($char, 2);
  30.             }
  31.             $producedWords[] = $temp;
  32.         } else {
  33.             $producedWords[] = strrev($wordArray[$i]);
  34.         }
  35.     }
  36.     return $producedWords;
  37. }
  38.  
  39. $reversedDoubledWrds = manipulate_words($upperWords);
  40.  
  41. for($i = 0; $i < count($upperWords) ;$i++) {
  42.     $text = preg_replace("/(?<=^|[^A-Za-z])(" . $upperWords[$i] . ")(?=$|[^A-Za-z])/", $reversedDoubledWrds[$i], $text);
  43. }
  44.  
  45. echo "<p>" . htmlspecialchars($text) . "</p>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement