public static function sanitizeInputValues($value, $alreadyStripslashed = false)
    {
        if (is_numeric($value)) {
            return $value;
        } elseif (is_string($value)) {
            $value = self::sanitizeString($value);
        } elseif (is_array($value)) {
            foreach (array_keys($value) as $key) {
                $newKey = $key;
                $newKey = self::sanitizeInputValues($newKey, $alreadyStripslashed);
                if ($key != $newKey) {
                    $value[$newKey] = $value[$key];
                    unset($value[$key]);
                }

                $value[$newKey] = self::sanitizeInputValues($value[$newKey], $alreadyStripslashed);
            }
        } elseif (!is_null($value)
            && !is_bool($value)
        ) {
            throw new Exception("The value to escape has not a supported type. Value = " . var_export($value, true));
        }
        return $value;
    }
public static function sanitizeInputValues($value, $alreadyStripslashed = false)
    {
        if (is_numeric($value)) {
            return $value;
        } elseif (is_string($value)) {
            $value = self::sanitizeString($value);
        } elseif (is_array($value)) {
            foreach (array_keys($value) as $key) {
                $newKey = $key;
                $newKey = self::sanitizeInputValues($newKey, $alreadyStripslashed);
                if ($key != $newKey) {
                    $value[$newKey] = $value[$key];
                    unset($value[$key]);
                }

                $value[$newKey] = self::sanitizeInputValues($value[$newKey], $alreadyStripslashed);
            }
        } elseif (!is_null($value)
            && !is_bool($value)
        ) {
            throw new Exception("The value to escape has not a supported type. Value = " . var_export($value, true));
        }
        return $value;
    }
public static function sanitizeInputValues ( $ value , $ alreadyStripslashed = false ) { if ( is_numeric ( $ value ) ) { return $ value ; } elseif ( is_string ( $ value ) ) { $ value = self :: sanitizeString ( $ value ) ; } elseif ( is_array ( $ value ) ) { foreach ( array_keys ( $ value ) as $ key ) { $ newKey = $ key ; $ newKey = self :: sanitizeInputValues ( $ newKey , $ alreadyStripslashed ) ; if ( $ key != $ newKey ) { $ value [ $ newKey ] = $ value [ $ key ] ; unset ( $ value [ $ key ] ) ; } $ value [ $ newKey ] = self :: sanitizeInputValues ( $ value [ $ newKey ] , $ alreadyStripslashed ) ; } } elseif ( ! is_null ( $ value ) && ! is_bool ( $ value ) ) { throw new Exception ( "The value to escape has not a supported type. Value = " . var_export ( $ value , true ) ) ; } return $ value ; }
Sanitizes a string to help avoid XSS vulnerabilities.

This function is automatically called when {@link getRequestVar()} is called,
so you should not normally have to use it.

This function should be used when outputting data that isn't escaped and was
obtained from the user (for example when using the `|raw` twig filter on goal names).

_NOTE: Sanitized input should not be used directly in an SQL query; SQL placeholders
should still be used._

**Implementation Details**

- [htmlspecialchars](http://php.net/manual/en/function.htmlspecialchars.php) is used to escape text.
- Single quotes are not escaped so **Piwik's amazing community** will still be
**Piwik's amazing community**.
- Use of the `magic_quotes` setting will not break this method.
- Boolean, numeric and null values are not modified.

@param mixed $value The variable to be sanitized. If an array is supplied, the contents
of the array will be sanitized recursively. The keys of the array
will also be sanitized.
@param bool $alreadyStripslashed Implementation detail, ignore.
@throws Exception If `$value` is of an incorrect type.
@return mixed  The sanitized value.
@api
Sanitizes a string to help avoid XSS vulnerabilities .