Noticias Weblogs Foros Wiki Código

RecorteX

333 usuarios y 204 recortes de código
Usuario

Contraseña
Crear cuenta
asp csharp css fechas fichero Flash html imagenes java javascript linux mysql oracle php sql SQLServer url vbnet xhtml xml
Top Usuarios
albin (29)
josuebasurto (28)
fjmp76 (27)
juanjo (26)
pedrocaro (9)
AndiXTRM (7)
Joserra (7)
miiglesi (6)
aplyca (5)
moisesmarquez (5)
Top Etiquetas
php (38)
html (24)
javascript (21)
vbnet (20)
java (19)
sql (15)
mysql (13)
csharp (12)
xml (10)
css (8)
xhtml (7)
imagenes (7)
Flash (7)
asp (6)
fechas (6)
linux (6)
SQLServer (5)
oracle (5)
url (4)
fichero (4)

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);
	}

}
Comentario de xoneca:

Hay que tener en cuenta que en XHTML hay que poner & en vez de sólo & porque si no, no es código válido XHTML Strict 1.0

Identifícate para dejar un comentario.
info@recortex.com - Proyecto: Juanjo Navarro, 2006 - Diseño: Albin