155 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * File: Util_Request.php
 | |
|  *
 | |
|  * @package W3TC
 | |
|  */
 | |
| 
 | |
| namespace W3TC;
 | |
| 
 | |
| /**
 | |
|  * W3 Request object
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Class: Util_Request
 | |
|  */
 | |
| class Util_Request {
 | |
| 	/**
 | |
| 	 * Returns request value
 | |
| 	 *
 | |
| 	 * @param string $key     Key.
 | |
| 	 * @param mixed  $default Default value.
 | |
| 	 * @return mixed
 | |
| 	 */
 | |
| 	public static function get( $key, $default = null ) {
 | |
| 		$request = self::get_request();
 | |
| 
 | |
| 		if ( isset( $request[ $key ] ) ) {
 | |
| 			$value = $request[ $key ];
 | |
| 
 | |
| 			if ( defined( 'TEMPLATEPATH' ) ) {
 | |
| 				$value = Util_Environment::stripslashes( $value );
 | |
| 			}
 | |
| 
 | |
| 			return $value;
 | |
| 		}
 | |
| 
 | |
| 		return $default;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns string value
 | |
| 	 *
 | |
| 	 * @param string $key     Key.
 | |
| 	 * @param string $default Default value.
 | |
| 	 * @param bool   $trim    Trim.
 | |
| 	 * @return string
 | |
| 	 */
 | |
| 	public static function get_string( $key, $default = '', $trim = true ) {
 | |
| 		$value = (string) self::get( $key, $default );
 | |
| 
 | |
| 		return ( $trim ) ? trim( $value ) : $value;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Get label.
 | |
| 	 *
 | |
| 	 * @param string $key     Key.
 | |
| 	 * @param string $default Default value.
 | |
| 	 * @return string
 | |
| 	 */
 | |
| 	public static function get_label( $key, $default = '' ) {
 | |
| 		$v = self::get_string( $key, $default );
 | |
| 		return preg_replace( '/[^A-Za-z0-9_\\-]/', '', $v );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns integer value.
 | |
| 	 *
 | |
| 	 * @param string $key     Key.
 | |
| 	 * @param int    $default Default value.
 | |
| 	 * @return int
 | |
| 	 */
 | |
| 	public static function get_integer( $key, $default = 0 ) {
 | |
| 		return (int) self::get( $key, $default );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns double value.
 | |
| 	 *
 | |
| 	 * @param string       $key     Key.
 | |
| 	 * @param double|float $default Default value.
 | |
| 	 * @return double
 | |
| 	 */
 | |
| 	public static function get_double( $key, $default = 0. ) {
 | |
| 		return (double) self::get( $key, $default ); // phpcs:ignore WordPress.PHP.TypeCasts.DoubleRealFound
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns boolean value.
 | |
| 	 *
 | |
| 	 * @param string $key     Key.
 | |
| 	 * @param bool   $default Default value.
 | |
| 	 * @return bool
 | |
| 	 */
 | |
| 	public static function get_boolean( $key, $default = false ) {
 | |
| 		return Util_Environment::to_boolean( self::get( $key, $default ) );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns array value.
 | |
| 	 *
 | |
| 	 * @param string $key     Key.
 | |
| 	 * @param array  $default Default value.
 | |
| 	 * @return array
 | |
| 	 */
 | |
| 	public static function get_array( $key, $default = array() ) {
 | |
| 		$value = self::get( $key );
 | |
| 
 | |
| 		if ( is_array( $value ) ) {
 | |
| 			return $value;
 | |
| 		} elseif ( ! empty( $value ) ) {
 | |
| 			return preg_split( "/[\r\n,;]+/", trim( $value ) );
 | |
| 		}
 | |
| 
 | |
| 		return $default;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns array value.
 | |
| 	 *
 | |
| 	 * @param string $prefix  Prefix.
 | |
| 	 * @param array  $default Default value.
 | |
| 	 * @return array
 | |
| 	 */
 | |
| 	public static function get_as_array( $prefix, $default = array() ) {
 | |
| 		$request = self::get_request();
 | |
| 		$array   = array();
 | |
| 
 | |
| 		foreach ( $request as $key => $value ) {
 | |
| 			if ( strpos( $key, $prefix ) === 0 || strpos( $key, str_replace( '.', '_', $prefix ) ) === 0 ) {
 | |
| 				$array[ substr( $key, strlen( $prefix ) ) ] = $value;
 | |
| 			}
 | |
| 		}
 | |
| 		return $array;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns request array.
 | |
| 	 *
 | |
| 	 * @return array
 | |
| 	 */
 | |
| 	public static function get_request() {
 | |
| 		if ( ! isset( $_GET ) ) {
 | |
| 			$_GET = array();
 | |
| 		}
 | |
| 
 | |
| 		if ( ! isset( $_POST ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
 | |
| 			$_POST = array();
 | |
| 		}
 | |
| 
 | |
| 		return array_merge( $_GET, $_POST ); // phpcs:ignore
 | |
| 	}
 | |
| }
 |