HTTP_BUILD_QUERY() POUR PHP 4

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 9 mai 2007 à 16:14
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 17 avril 2009 à 12:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42642-http-build-query-pour-php-4

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
17 avril 2009 à 12:17
les espaces en trop ne servent qu'a rajouter des octets inutile dans le code...

if(isset($pwet))

est aussi lisible que...

if( isset ($pwet) )

Ca n'a rien à voir avec l'indentation du code... après à chacun sa façon de coder mais dans ce cas je ne vois pas l'intérêt d'enlever des points à une note parce qu'il manque des espaces à TON gout... c'est comme enlever des points parce que j'aurais préféré que la variable $pwet s'appelle $plop... bref... discussion inutile et sans intérêt à mon sens... merci pour ton com, bonne continuation... .. . :o)

@ tchaOo°

ps: au boulot je bosse actuellement sur une source d'à peu près 45000 lignes et personnellement je trouve tout aussi clair et même plus clair un bloc de condition simple sans accolade... mais comme tu l'as dis c'est une question d'habitude... les gouts et les couleurs... .. . ;o)
LPUnderground Messages postés 7 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 20 avril 2010
17 avril 2009 à 11:01
Comme je l'ai dit ça dépend que de nous, de la façon dont on code.

Personnellement pour de longs codes (pour des scripts, sites, etc), je préfère faire des blocs de condition même s'il y a qu'une seule exéctuin.

Les espaces, c'est ma façon à moi d'écrire du code, après certes tu fais comme tu veux.
Il y a une différence entre "mon" code et le tien, moi j'aime bien espacer : )

Je te remercie encore pour ton code.
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
14 avril 2009 à 11:31
Je vois toujours pas pourquoi tu dis ça... hormis les accolades il n'y a pas de différence entre ton code et mon code et je ne vois pas l'interêt de faire un bloc de condition pour une seule instruction... .. .

Qui plus est je ne vois pas le rapport avec les espaces... si tu parle de l'indentation de mon code c'est surement parce que tu as utilisé firefox lorsque tu as récupéré le code... fais un copié collé à partir d'IE et tu retrouvera l'indentation comme sur la présentation du code... .. . ;o)

@ tchaOo°
LPUnderground Messages postés 7 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 20 avril 2010
14 avril 2009 à 09:25
Exemple (au début de ton code) :

if(!is_array($formdata) && !is_object($formdata))
return false;
elseif(empty($formdata))
return '';

J'aurais écrit cela :

if ( ! is_array ( $formdata ) && ! is_object ( $formdata ) )
{
return FALSE;
}
else if ( empty ( $formdata ) )
{
return '';
}

Bon bien sur, je peux pas te reprocher ça, étant donné que cela dépend de la manière de coder des gens ; )
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
12 avril 2009 à 18:41
je n'espace pas mon code... qu'entend tu par là... .. ?

@ tchaOo°
LPUnderground Messages postés 7 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 20 avril 2010
12 avril 2009 à 10:05
Merci pour cette fonction très pratique.

Je devais recréer la fonction pour un site que je développais en PHP 5 mais l'hébergeur tournait en PHP 4 et comme j'avais la flem de réécrire cette fonction, bref thx.

8 / 10 (car tu n'espaces pas ton codes : ) )
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
26 mai 2007 à 02:27
Je n'avais pas connaissance de cette fonction dans PHP5, en plus de m'avoir appris que je n'etais pas fou d'avoir écris une fonction qui faisait ca (il y a longtemps) j'ai appris l'existence de cette fonction native dans php5 !

Merci, 10 :)
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
16 mai 2007 à 23:44
Propre net et préci, comme dab...
j'adhère
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
14 mai 2007 à 12:24
Oui je connais cette version, qui n'est d'ailleur pas celle de php.net mais d'un posteur tout comme moi ici... seulement je ne l'aime pas pour plusieurs raisons... tout d'abord si le séparateur n'est pas fournis tu remarquera que ce dernier est instancié à la fin de la fonction ce qui ne sert à rien du tout donc la chaine est faussée... je voulais une fonction similaire à l'originale d'une part au niveau de la déclaration donc pas de récursivité possible (nombre d'arguments) et je ne voulais pas passer par un builder externe comme dans celle de PEAR (package PHP_Compat) d'autre part celle ci dessus ne formate pas la chaine exactement comme l'originale encore que cela est facilement modifiable... .. .

après j'aurais pu passer par un tableau plutôt qu'une chaine mais c'est un choix les deux solutions se valent en terme de démarche et de performances... le plus chiant c'est le builder en interne en fait... je trouve pas ça des plus propre mais je vois pas d'autre solution si on exclu un builder externe ou la récursion... j'y réfléchirais quand j'aurais le temps... .. .

Voili voilou... .. .

@ tchaOo°
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
14 mai 2007 à 11:47
Bonjour,
Et la version PHP.net
<?php
if(!function_exists('http_build_query')) {
function http_build_query($data,$prefix=null,$sep='',$key='') {
$ret = array();
foreach((array)$data as $k => $v) {
$k = urlencode($k);
if(is_int($k) && $prefix != null) {
$k = $prefix.$k;
};
if(!empty($key)) {
$k = $key."[".$k."]";
};

if(is_array($v) || is_object($v)) {
array_push($ret,http_build_query($v,"",$sep,$k));
}
else {
array_push($ret,$k."=".urlencode($v));
};
};

if(empty($sep)) {
$sep = ini_get("arg_separator.output");
};

return implode($sep, $ret);
};
};
?>
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
14 mai 2007 à 11:40
Bonjour,
Et la version PHP.net
<?php
if(!function_exists('http_build_query')) {
function http_build_query($data,$prefix=null,$sep='',$key='') {
$ret = array();
foreach((array)$data as $k => $v) {
$k = urlencode($k);
if(is_int($k) && $prefix != null) {
$k = $prefix.$k;
};
if(!empty($key)) {
$k = $key."[".$k."]";
};

if(is_array($v) || is_object($v)) {
array_push($ret,http_build_query($v,"",$sep,$k));
}
else {
array_push($ret,$k."=".urlencode($v));
};
};

if(empty($sep)) {
$sep = ini_get("arg_separator.output");
};

return implode($sep, $ret);
};
};
?>
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
10 mai 2007 à 15:03
Salut amezghal... pour répondre à ton commentaire... .. .

- oui la coloration de phpcs ne supporte pas les chaines de caractères sur plusieurs lignes... :oS

- détrompe toi cette fonction peut être très utile et le fait qu'elle n'apparaisse qu'a partir de php5 ne veut rien dire quand à son utilité... str(r)ipos() et str_ireplace() par exemple sont très utile et n'apparaisse qu'avec PHP5... de même pour le model objet (digne de ce nom) de PHP... .. .

- kek elle a ma façon de coder... .. . ;o)

Merci pour ton commentaire et pour la note... .. .

@ tchaOo°
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
9 mai 2007 à 23:57
-le script du phpcs n'a pas bien mis en forme votre script($builderCore):
-la fonction a mon avis rarement utilisable(la preuve c'est qu'elle n'apprait qu'avec la version 5 du php :D ).
-par contre j'aime bien ta façon de coder xd je note 8
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
9 mai 2007 à 16:14
Je suis bien entendu ouvert à toute suggestion... .. .

@ tchaOo°
Rejoignez-nous