par
Chakra Spirit » 03 févr. 2007, 18:47
Salut,
Le problème était donc bien que je faisais une addition au lieu d'une concaténation...

bref, j'ai réussi à faire ce que je voulais... mais... (parce qu'il en faut un), j'ai un soucis avec urldecode / urlencode. Si je passe une chaine de texte avec des accents, des espaces ou toute sorte de caractères spéciaux, urlencode m'encode bien cette chaîne pour l'url... Le soucis, c'est au moment de décoder...
Par exemple, lorsque je veux récupérer "intitulé 1.1" après passage dans l'url, ça me met "intitulé_1_1".
Dois-je passer par une autre fonction ou faut-il s'en servir d'une autre manière ?
Mon code actuel est celui-ci :
<?php
$menus = array
(
'menu 1' => array
(
'intitulé 1.1' => 'lien1-1.php',
'intitulé 1.2' => 'lien1-2.php',
'intitulé 1.3' => 'lien1-3.php'
),
'menu 2' => array
(
'intitulé 2.1' => 'lien2-1.php',
'intitulé 2.2' => 'lien2-2.php',
'intitulé 2.3' => 'lien2-3.php',
'intitulé 2.4' => 'lien2-4.php'
),
'menu 3' => array
(
'intitulé 3.1' => 'lien3-1.php',
'intitulé 3.2' => 'lien3-2.php'
)
);
echo "\t<p>|";
foreach($menus as $menu => $array)
{
$url = '';
foreach($menus[$menu] as $key => $value)
{
$key = urlencode($key);
$url .= "$key=$value&";
}
$url = substr($url, 0, strlen($url) - 5);
echo " <a href=\"index.php?$url\">".$menu."</a> |";
}
echo "</p>\n";
if(count($_GET) > 0)
{
echo "\t<ul>\n";
foreach($_GET as $lien => $url)
{
$lien = urldecode($lien);
echo "\t\t<li><a href=\"$url\">$lien</a></li>\n";
}
echo "\t</ul>\n";
}
?>
Salut, :)
Le problème était donc bien que je faisais une addition au lieu d'une concaténation... :P bref, j'ai réussi à faire ce que je voulais... mais... (parce qu'il en faut un), j'ai un soucis avec urldecode / urlencode. Si je passe une chaine de texte avec des accents, des espaces ou toute sorte de caractères spéciaux, urlencode m'encode bien cette chaîne pour l'url... Le soucis, c'est au moment de décoder...
Par exemple, lorsque je veux récupérer "intitulé 1.1" après passage dans l'url, ça me met "intitulé_1_1". :?
Dois-je passer par une autre fonction ou faut-il s'en servir d'une autre manière ?
Mon code actuel est celui-ci :
[php]<?php
$menus = array
(
'menu 1' => array
(
'intitulé 1.1' => 'lien1-1.php',
'intitulé 1.2' => 'lien1-2.php',
'intitulé 1.3' => 'lien1-3.php'
),
'menu 2' => array
(
'intitulé 2.1' => 'lien2-1.php',
'intitulé 2.2' => 'lien2-2.php',
'intitulé 2.3' => 'lien2-3.php',
'intitulé 2.4' => 'lien2-4.php'
),
'menu 3' => array
(
'intitulé 3.1' => 'lien3-1.php',
'intitulé 3.2' => 'lien3-2.php'
)
);
echo "\t<p>|";
foreach($menus as $menu => $array)
{
$url = '';
foreach($menus[$menu] as $key => $value)
{
$key = urlencode($key);
$url .= "$key=$value&";
}
$url = substr($url, 0, strlen($url) - 5);
echo " <a href=\"index.php?$url\">".$menu."</a> |";
}
echo "</p>\n";
if(count($_GET) > 0)
{
echo "\t<ul>\n";
foreach($_GET as $lien => $url)
{
$lien = urldecode($lien);
echo "\t\t<li><a href=\"$url\">$lien</a></li>\n";
}
echo "\t</ul>\n";
}
?>[/php]