Weblogs Código

RecorteX

» clase
73 usuarios y 243 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta clase

RSS
Recortes: 1

Etiquetas relacionadas:
querystring
php

Clase para manipular el QueryString

A veces tenemos que mantener el QueryString entre varias páginas, pero cambiar algún valor según en qué enlace pulses, pues esta clase lee el QueryString y te facilita variarlo y obtenerlo nuevamente como un String.

Es una lástima que PHP 4.x no tenga polimorfismo, "toStringWith" es una marranada.

class QueryString {

	var $aParams = array();

	function QueryString() {
	}

	function readURL() {
		$this->aParams = $_GET;
	}

	// Establece el valor $v del parámetro $k
	function setParam($k, $v) {
		$this->aParams[$k] = $v;
	}

	// Establece el valor de varios parámetros 
	// enviados en un array asociativo
	function setParams($pp) {
		while(list($k, $v)=each($pp)) {
			$this->aParams[$k] = $v;
		}
	}

	// Establece el valor $v del parámetro $k si este no existe
	function setDefault($k, $v) {
		if(!isset($this->aParams[$k])) {
			$this->aParams[$k] = $v;
		}
	}

	// Establece el valor de varios parámetros 
	// enviados en un array asociativo si estos no existen
	function setDefaults($pp) {
		while(list($k, $v)=each($pp)) {
			if(!isset($this->aParams[$k])) {
				$this->aParams[$k] = $v;
			}
		}
	}

        // Devuelve el QueryString como un String
	function toString() {
		$retval = "";
		while(list($k, $v)=each($this->aParams)) {
			$retval .= $k."=".$v."&";
		}
		return ($retval!=""? "?":"").substr($retval, 0, -1);
	}

        // Devuelve el QueryString con los parámetros indicados en el array $pp
        // pero no modifica el estado de la clase
	function toStringWith($pp) {
		$retval  = "";
		$aParams = $this->aParams;
		while(list($k, $v)=each($pp)) {
			$aParams[$k] = $v;
		}
		while(list($k, $v)=each($aParams)) {
			$retval .= $k."=".$v."&";
		}
		return ($retval!=""? "?":"").substr($retval, 0, -1);
	}

        // Devuelve el QueryString sin los parámetros indicados en el array $pp
        // pero no modifica el estado de la clase
	function toStringWithout($pp) {
		$retval  = "";
		$aParams = $this->aParams;
		while(list($a, $k)=each($pp)) {
			unset($aParams[$k]);
		}
		while(list($k, $v)=each($aParams)) {
			$retval .= $k."=".$v."&";
		}
		return ($retval!=""? "?":"").substr($retval, 0, -1);
	}

}
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin