En résumé, ce code fait :
SI l'URL ne se termine pas par un '/' MAIS qu'elle se termine par un
'/', ALORS rajouter un '/'.
En résumé, ce code fait :
SI l'URL ne se termine pas par un '/' MAIS qu'elle se termine par un
'/', ALORS rajouter un '/'.
En résumé, ce code fait :
SI l'URL ne se termine pas par un '/' MAIS qu'elle se termine par un
'/', ALORS rajouter un '/'.
Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique, notamment
la poo.
Ceci dit, je me rends compte sur certains projets que de jolis dev
sortis de l'école ont tout ce qu'il faut comme acronyme à leur cv, mais
ils codent avec une bêtise incommensurable...
Bruno Desthuilliers a écrit :Tu nous posterais un lien sur le code en question (et éventuellement
ta propre implémentation) ?-)
Ah la la... c'est que ce n'est pas très gentil tout ça...
Bon, j'ai changé le nom des variables. Je poste pas un lien ici parce
qu'ils pourraient mal le prendre
(je m'étonne moi-même de tant
d'attentions)
Voici la merveille donc (j'attends que tu me dises que c'est puissant et
robuste :)
Tu noteras surtout la qualité des booléens). Vous aurez
compris que ça prend l'url et que ça y ajoute ou modifie une valeur en
GET, ainsi :
$url = addGET("http://www.monsite.com/rep/index.html?page=3&lang=fr",
"page", "7");
Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique, notamment
la poo.
Ceci dit, je me rends compte sur certains projets que de jolis dev
sortis de l'école ont tout ce qu'il faut comme acronyme à leur cv, mais
ils codent avec une bêtise incommensurable...
Bruno Desthuilliers a écrit :
Tu nous posterais un lien sur le code en question (et éventuellement
ta propre implémentation) ?-)
Ah la la... c'est que ce n'est pas très gentil tout ça...
Bon, j'ai changé le nom des variables. Je poste pas un lien ici parce
qu'ils pourraient mal le prendre
(je m'étonne moi-même de tant
d'attentions)
Voici la merveille donc (j'attends que tu me dises que c'est puissant et
robuste :)
Tu noteras surtout la qualité des booléens). Vous aurez
compris que ça prend l'url et que ça y ajoute ou modifie une valeur en
GET, ainsi :
$url = addGET("http://www.monsite.com/rep/index.html?page=3&lang=fr",
"page", "7");
Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique, notamment
la poo.
Ceci dit, je me rends compte sur certains projets que de jolis dev
sortis de l'école ont tout ce qu'il faut comme acronyme à leur cv, mais
ils codent avec une bêtise incommensurable...
Bruno Desthuilliers a écrit :Tu nous posterais un lien sur le code en question (et éventuellement
ta propre implémentation) ?-)
Ah la la... c'est que ce n'est pas très gentil tout ça...
Bon, j'ai changé le nom des variables. Je poste pas un lien ici parce
qu'ils pourraient mal le prendre
(je m'étonne moi-même de tant
d'attentions)
Voici la merveille donc (j'attends que tu me dises que c'est puissant et
robuste :)
Tu noteras surtout la qualité des booléens). Vous aurez
compris que ça prend l'url et que ça y ajoute ou modifie une valeur en
GET, ainsi :
$url = addGET("http://www.monsite.com/rep/index.html?page=3&lang=fr",
"page", "7");
Bruno Desthuilliers a écrit :Parce que PHP est codé avec les pieds !-)
Chut ! Des décideurs pressés vont t'entendre !
parce que array_flip est une "vraie" fonction - et fonctionne donc
sans effet de bord. Ca, à mon sens, c'est plutôt une BonneChose.
D'autant que je ne suis pas sûr qu'il soit possible d'implémenter
efficacement ce type d'opération réellement "en place" (c'est à dire
sans créer au moins temporairement un second tableau), contrairement
à, par exemple, un tri ou un reverse.
C'est une question d'école. Quand on a été élevé à la POO, on s'attend
à ce que l'« objet » soit manipulé.
<plug>
Tiens au fait, quelqu'un sait comment sont implémentés les tableaux de
PHP ? (ok, je pourrais regarder dans le source, mais là j'ai un peu la
flemme).
</plug>
Ce sont des hashtables.
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis
de gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Bruno Desthuilliers a écrit :
Parce que PHP est codé avec les pieds !-)
Chut ! Des décideurs pressés vont t'entendre !
parce que array_flip est une "vraie" fonction - et fonctionne donc
sans effet de bord. Ca, à mon sens, c'est plutôt une BonneChose.
D'autant que je ne suis pas sûr qu'il soit possible d'implémenter
efficacement ce type d'opération réellement "en place" (c'est à dire
sans créer au moins temporairement un second tableau), contrairement
à, par exemple, un tri ou un reverse.
C'est une question d'école. Quand on a été élevé à la POO, on s'attend
à ce que l'« objet » soit manipulé.
<plug>
Tiens au fait, quelqu'un sait comment sont implémentés les tableaux de
PHP ? (ok, je pourrais regarder dans le source, mais là j'ai un peu la
flemme).
</plug>
Ce sont des hashtables.
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis
de gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Bruno Desthuilliers a écrit :Parce que PHP est codé avec les pieds !-)
Chut ! Des décideurs pressés vont t'entendre !
parce que array_flip est une "vraie" fonction - et fonctionne donc
sans effet de bord. Ca, à mon sens, c'est plutôt une BonneChose.
D'autant que je ne suis pas sûr qu'il soit possible d'implémenter
efficacement ce type d'opération réellement "en place" (c'est à dire
sans créer au moins temporairement un second tableau), contrairement
à, par exemple, un tri ou un reverse.
C'est une question d'école. Quand on a été élevé à la POO, on s'attend
à ce que l'« objet » soit manipulé.
<plug>
Tiens au fait, quelqu'un sait comment sont implémentés les tableaux de
PHP ? (ok, je pourrais regarder dans le source, mais là j'ai un peu la
flemme).
</plug>
Ce sont des hashtables.
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis
de gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Allez, je vais lire le reste, ça risque d'être drôle.
Allez, je vais lire le reste, ça risque d'être drôle.
Allez, je vais lire le reste, ça risque d'être drôle.
Donc c'est un truc qui date d'avant PHP4 sans quoi il y aurait un
parse_url pour simplifier.
Et par conséquent, ils ne pouvaient pas utiliser non plus
http_buidl_query :)
J'ai un gros doute tout d'un coup: le "php 1" dans le sujet, je croyais
que ça signifiait que c'est ta première question, mais en fait c'est la
version de PHP utilisée par l'agence ? :D
Bon, c'est pas beau de se moquer, je ne le ferai plus. Quoi que...
Donc c'est un truc qui date d'avant PHP4 sans quoi il y aurait un
parse_url pour simplifier.
Et par conséquent, ils ne pouvaient pas utiliser non plus
http_buidl_query :)
J'ai un gros doute tout d'un coup: le "php 1" dans le sujet, je croyais
que ça signifiait que c'est ta première question, mais en fait c'est la
version de PHP utilisée par l'agence ? :D
Bon, c'est pas beau de se moquer, je ne le ferai plus. Quoi que...
Donc c'est un truc qui date d'avant PHP4 sans quoi il y aurait un
parse_url pour simplifier.
Et par conséquent, ils ne pouvaient pas utiliser non plus
http_buidl_query :)
J'ai un gros doute tout d'un coup: le "php 1" dans le sujet, je croyais
que ça signifiait que c'est ta première question, mais en fait c'est la
version de PHP utilisée par l'agence ? :D
Bon, c'est pas beau de se moquer, je ne le ferai plus. Quoi que...
Olivier Masson a écrit :Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique, notamment
la poo.
La POO n'est pas en soi une "bonne pratique".
MOUAHAHAHAHAHAHAHAHAHA !!!!
Oh p..., bin là je suis pas déçu, ça valait le voyage... Ca longtemps
que j'avais pas vu un tel tas de bouse - à ce stade là, ça confine à
l'oeuvre d'art !-)
Bien, on peut voir ta version, maintenant ?-)
Olivier Masson a écrit :
Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique, notamment
la poo.
La POO n'est pas en soi une "bonne pratique".
MOUAHAHAHAHAHAHAHAHAHA !!!!
Oh p..., bin là je suis pas déçu, ça valait le voyage... Ca longtemps
que j'avais pas vu un tel tas de bouse - à ce stade là, ça confine à
l'oeuvre d'art !-)
Bien, on peut voir ta version, maintenant ?-)
Olivier Masson a écrit :Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique, notamment
la poo.
La POO n'est pas en soi une "bonne pratique".
MOUAHAHAHAHAHAHAHAHAHA !!!!
Oh p..., bin là je suis pas déçu, ça valait le voyage... Ca longtemps
que j'avais pas vu un tel tas de bouse - à ce stade là, ça confine à
l'oeuvre d'art !-)
Bien, on peut voir ta version, maintenant ?-)
Bruno Desthuilliers a écrit :Olivier Masson a écrit :Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique,
notamment la poo.
La POO n'est pas en soi une "bonne pratique".
Disons que je commence à comprendre l'intérêt de la POO, notamment en
terme de productivité.
Je pense que je n'aurai jamais à gérer un projet assez complexe pour
devoir maitriser vraiment la POO (mais c'est un cercle vicieux).
Bien, on peut voir ta version, maintenant ?-)
S'il n'y a pas de bétise à la copie/reconstruction (maintenant, c'est en
fait 3 fonctions dans mon projet).
Là, vous aurez compris qu'on enlève et supprime, au moyen de tableaux.
Le foreach, c'est parce que je n'ai pas trouvé plus simple pour faire un
"array_delete".
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
if (count($del))
foreach ($del as $value) {
if (isset($output[$value])) unset($output[$value]);
}
$result = array_merge($output,$add);
return http_build_query($result, '', '&');
}
Bruno Desthuilliers a écrit :
Olivier Masson a écrit :
Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique,
notamment la poo.
La POO n'est pas en soi une "bonne pratique".
Disons que je commence à comprendre l'intérêt de la POO, notamment en
terme de productivité.
Je pense que je n'aurai jamais à gérer un projet assez complexe pour
devoir maitriser vraiment la POO (mais c'est un cercle vicieux).
Bien, on peut voir ta version, maintenant ?-)
S'il n'y a pas de bétise à la copie/reconstruction (maintenant, c'est en
fait 3 fonctions dans mon projet).
Là, vous aurez compris qu'on enlève et supprime, au moyen de tableaux.
Le foreach, c'est parce que je n'ai pas trouvé plus simple pour faire un
"array_delete".
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
if (count($del))
foreach ($del as $value) {
if (isset($output[$value])) unset($output[$value]);
}
$result = array_merge($output,$add);
return http_build_query($result, '', '&');
}
Bruno Desthuilliers a écrit :Olivier Masson a écrit :Merci pour vos réponses, c'est bien de savoir sur quoi on bosse.
N'étant pas développeur, je n'ai que peu de bonnes pratique,
notamment la poo.
La POO n'est pas en soi une "bonne pratique".
Disons que je commence à comprendre l'intérêt de la POO, notamment en
terme de productivité.
Je pense que je n'aurai jamais à gérer un projet assez complexe pour
devoir maitriser vraiment la POO (mais c'est un cercle vicieux).
Bien, on peut voir ta version, maintenant ?-)
S'il n'y a pas de bétise à la copie/reconstruction (maintenant, c'est en
fait 3 fonctions dans mon projet).
Là, vous aurez compris qu'on enlève et supprime, au moyen de tableaux.
Le foreach, c'est parce que je n'ai pas trouvé plus simple pour faire un
"array_delete".
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
if (count($del))
foreach ($del as $value) {
if (isset($output[$value])) unset($output[$value]);
}
$result = array_merge($output,$add);
return http_build_query($result, '', '&');
}
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
Pas d'accord : c'est la fonction parse_str() qui initialise la valeur
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
Pas d'accord : c'est la fonction parse_str() qui initialise la valeur
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
Pas d'accord : c'est la fonction parse_str() qui initialise la valeur
En PHP, c'est d'un intérêt limité (j'ai pas dit "inutile", hein...). Ca
a plus de sens dans un langage objet (un vrai, je veux dire), et - en
matière de développement web, avec un modèle d'exécution basé sur un
long running process.
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'a pas déclaré ni initialisé $output avant.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...}$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
En PHP, c'est d'un intérêt limité (j'ai pas dit "inutile", hein...). Ca
a plus de sens dans un langage objet (un vrai, je veux dire), et - en
matière de développement web, avec un modèle d'exécution basé sur un
long running process.
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'a pas déclaré ni initialisé $output avant.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
}
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
En PHP, c'est d'un intérêt limité (j'ai pas dit "inutile", hein...). Ca
a plus de sens dans un langage objet (un vrai, je veux dire), et - en
matière de développement web, avec un modèle d'exécution basé sur un
long running process.
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'a pas déclaré ni initialisé $output avant.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...}$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.