Beispiel #1
0
 /**
  * Checks validity of a string based on regex
  *  and responds if invalid chars are found
  *
  * @param string $string      The value bein checked
  * @param string $Thing       Human-readable name for $string
  * @param string $pattern     An inverse pattern that matches INVALID characters
  * @param bool   $returnError If true retursn the error message instead of responding
  *
  * @return null|string
  */
 static function checkStringValidity($string, $Thing, $pattern, $returnError = false)
 {
     if (preg_match_all(new RegExp($pattern, 'u'), $string, $fails)) {
         $invalid = array();
         foreach ($fails[0] as $f) {
             if (!in_array($f, $invalid)) {
                 switch ($f) {
                     case "\n":
                         $invalid[] = '\\n';
                     case "\r":
                         $invalid[] = '\\r';
                     default:
                         $invalid[] = $f;
                 }
             }
         }
         $count = count($invalid);
         $s = $count !== 1 ? 's' : '';
         $the_following = $count !== 1 ? 'the following' : 'an';
         $Error = "{$Thing} (" . self::escapeHTML($string) . ") contains {$the_following} invalid character{$s}: " . CoreUtils::arrayToNaturalString($invalid);
         if ($returnError) {
             return $Error;
         }
         Response::fail($Error);
     }
 }
Beispiel #2
0
 function testArrayToNaturalString()
 {
     $result = CoreUtils::arrayToNaturalString([1]);
     self::assertEquals('1', $result);
     $result = CoreUtils::arrayToNaturalString([1, 2]);
     self::assertEquals('1 and 2', $result);
     $result = CoreUtils::arrayToNaturalString([1, 2, 3]);
     self::assertEquals('1, 2 and 3', $result);
     $result = CoreUtils::arrayToNaturalString([1, 2, 3, 4]);
     self::assertEquals('1, 2, 3 and 4', $result);
 }