fork download
  1. <?php
  2. function convert($keyword) {
  3. $wResult = preg_replace(
  4. '/(\\p{N})(\\p{L})/u',
  5. '/(\\p{L})(\\p{N})/u',
  6. '/(\\p{Ll})([\\p{Lu}\\p{Lt}])/u',
  7. '/(\\p{Lu}{2,})(\\p{Ll})/u',
  8. ),
  9. '$1 $2',
  10. $keyword
  11. );
  12.  
  13. return $wResult;
  14. }
  15.  
  16. $search_keyword = array(
  17. "comeHEREtomorrow",
  18. "KissYouTODAY",
  19. "comeÜndeHere",
  20. "NEVERSAYIT",
  21. "2013willCome",
  22. "Before2013ends",
  23. "IKnowThat",
  24. "#whatiknow"
  25. );
  26. $need_keyword = array(
  27. "come HERE tomorrow",
  28. "Kiss You TODAY",
  29. "come Ünde Here",
  30. "NEVERSAYIT",
  31. "2013 will Come",
  32. "Before 2013 ends",
  33. "I Know That",
  34. "# whatiknow"
  35. );
  36.  
  37. foreach ($search_keyword as $key => $w) {
  38. $wExpected = $need_keyword[$key];
  39.  
  40. $wResult = convert($w);
  41.  
  42. $check = strcmp($wExpected, $wResult);
  43. $checkWord = ( $check == 0 ? "SUCCESS" : "FAILURE" );
  44.  
  45. echo "try $key,\t keyword: \"$w\" expected: \"$wExpected\" result: \"$wResult\" check: $check ($checkWord),\n";
  46. }
  47. ?>
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
try 0,	 keyword: "comeHEREtomorrow" expected: "come HERE tomorrow" result: "come HERE tomorrow" check: 0 (SUCCESS),
try 1,	 keyword: "KissYouTODAY" expected: "Kiss You TODAY" result: "Kiss You TODAY" check: 0 (SUCCESS),
try 2,	 keyword: "comeÜndeHere" expected: "come Ünde Here" result: "come Ünde Here" check: 0 (SUCCESS),
try 3,	 keyword: "NEVERSAYIT" expected: "NEVERSAYIT" result: "NEVERSAYIT" check: 0 (SUCCESS),
try 4,	 keyword: "2013willCome" expected: "2013 will Come" result: "2013 will Come" check: 0 (SUCCESS),
try 5,	 keyword: "Before2013ends" expected: "Before 2013 ends" result: "Before 2013 ends" check: 0 (SUCCESS),
try 6,	 keyword: "IKnowThat" expected: "I Know That" result: "IK now That" check: -1 (FAILURE),
try 7,	 keyword: "#whatiknow" expected: "# whatiknow" result: "#whatiknow" check: -1 (FAILURE),