Reconstruire une Url après un "parse_str"...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Reconstruire une Url après un "parse_str"...

par Ryle » 28 avr. 2007, 12:21

@Julot : bah tiens, bien sur que ça fonctionne ici aussi ;)

On m appelle le chevalier blanc... yé vé zé yé vole au secours d'innocents!
Quand dans la campagne résonne la poudre, yé vé zé vole plus vite que la foudre!
Mon épée est prête à servir, L'ennemi n'a qu'à se tenir.
De chacun yé souis repecté, du paysan au chevalieeeer...

par Jules Petibidon » 27 avr. 2007, 18:43

@Mr Ryle : ouais rooh ça va ! groumpf...
tiens au fait... mais qui est le chevalier blanc, ça marche ici aussi ?

@Fredo : Y'a surement plus simple en fait :)
c'est juste que j'avais rien de mieux à faire à ce moment là que de faire un truc compliqué pour faire une chose simple ;)

par FredoMkb » 27 avr. 2007, 16:53

Bonjour Jules :)
hello,

tiens teste ça ->
function lru_ersap( $tab , $ref = null ){
	$out = array();
	foreach( $tab as $key=>$value ){
		if( is_array( $value ) $out[] = lru_ersap( $value , $key );
		else{
			if( empty( $ref ) ) $out[] = $key . '=' . $value;
			else $out[] = $ref.'['. $key. ']=' . $value;
		}
	}
	return implode( '&' , $out );
}
Wouw wouw... :shock: une fonction recursive et tout et tout... :!:

Bein, je vais tester, mais, euh... :? ...je me demande, il n'y aurait pas quelque chose d'un peu plus simple quand-même ? :shock:

Je trouve ça bizarre que ce soit aussi simple de décomposer une adresse Url et si compliqué à la recomposer... bref... s'il y a d'autres idées, je suis toujours preneur...

Merci beaucoup en tout cas Jules pour ta solution, je vais tester ça dès que possible... à+ :)

par Ryle » 27 avr. 2007, 16:46

Y a au moins une erreur dans le nom de la fonction... ca devrait être lru_esrap() ;)

par Jules Petibidon » 27 avr. 2007, 16:29

hello,

tiens teste ça ->
function lru_ersap( $tab , $ref = null ){
	$out = array();
	foreach( $tab as $key=>$value ){
		if( is_array( $value ) $out[] = lru_ersap( $value , $key );
		else{
			if( empty( $ref ) ) $out[] = $key . '=' . $value;
			else $out[] = $ref.'['. $key. ']=' . $value;
		}
	}
	return implode( '&' , $out );
}
achtung, c'est écrit à la volée et pas testé (donc sans garantie de fonctionnement ni d'erreurs à corriger)

par thehawk » 27 avr. 2007, 16:07

tu peux te tourner vers les expression reguliere afin de répondre a tous les cas de figure :wink:

par FredoMkb » 27 avr. 2007, 15:58

Re...
euh ben pourquoi pas :
$theUrl = 'http://monsite.fr/index.php?section='$urlQuery['section'].'&date='.$urlQuery['date'];
Ha oui... pourquoi pas ;)

Seulement, la valeur de la variable "theUrl" est récupérée de manière dynamique, et je ne sais pas à-priori ce qu'elle peut contenir... évidemment, je n'ai posté qu'une petite partie, simplifiée, de l'ensemble de mon code, histoire de bien cibler ma question...

Bref, à partir d'une adresse Url récupérée dynamiquement, je souhaite changer la valeur de quelques éventuelles variables présentes, puis construire un simple lien Url avec la nouvelle adresse complète, du type :
$theLink = '<a href="'.$theNewUrl.'">Cliquez ici</a>';
Donc, j'arrive à isoler les variables issues de l'Url, j'arrive à changer leur valeur, mais je n'arrive pas à reconstruire l'Url entière de départ avec les nouvelles valeurs... je dois certainement zaper quelque chose, mais là je suis un peu perdu je l'avoue :(

Merci en tout cas pour ta réponse... je continue à chercher... à+ :)

par thehawk » 27 avr. 2007, 15:26

euh ben pourquoi pas :
$theUrl = 'http://monsite.fr/index.php?section=5&date=2006-12-01';
$urlParse = parse_url($theUrl); 
parse_str($urlParse['query'], $urlQuery);
print_r($urlQuery); // Array ( [section] => 5 [date] => 2006-12-01 )
$urlQuery['section']='2';
$urlQuery['date']='2007-04-01';
$theUrl = 'http://monsite.fr/index.php?section='$urlQuery['section'].'&date='.$urlQuery['date'];

Reconstruire une Url après un "parse_str"...

par FredoMkb » 27 avr. 2007, 15:20

Bonjour à tous :)

Voilà, je récupère une adresse Url, puis je réalise quelques modifications dans les variables existantes, puis, fatalement, je souhite reconstruire l'adresse Url toute neuve et propre, mais je n'y arrive pas :(

J'ai trouvé la fonction "http_build_query()" qui aurait pu me rendre service, mais elle n'est compatible qu'à partir de Php 5, or je voudrais que mon code reste compatible Php 4.x...

Voilà, je coince :shock:

Voici où j'en suis en ce moment :
$theUrl = 'http://monsite.fr/index.php?section=5&date=2006-12-01';
$urlParse = parse_url($theUrl); 
parse_str($urlParse['query'], $urlQuery);
print_r($urlQuery); // Array ( [section] => 5 [date] => 2006-12-01 )
$urlQuery['section']='2';
$urlQuery['date']='2007-04-01';
print_r($urlQuery); // Array ( [section] => 2 [date] => 2007-04-01 ) 
Maintenant, je voudrais reconstruire ma variable "theUrl" avec les nouvelles valeurs attribuées aux variables "section" et "date"... mais je ne trouve pas... :(

Euh... :shock: quelqu'un aurait une petite piste ?

Merci... à+ :)