Caractères spéciaux : URLdecode ne fonctionne pas

Nouveau WRInaute
Bonjour,

j'ai un problème similaire : quand je récupère les paramètres du referer pour avoir les mots-clefs utilisés par les requête Google par exemple, j'utilise ce code :

$a=explode('?', $ref);
$b=explode('&', $a[1]); if($a[2]) $b=explode('&', $a[2]);
$clef='';
foreach ($b as $c)
{
$d=explode('=', $c);
if($d[0]=='query'||$d[0]=='q')
if ($d[1]) $clef=$d[1];
}
$clef=urldecode($clef);
$clef=strtolower($clef);

Il y a donc bien un urldecode.
Et pourtant je me retrouve avec des mots clefs bizarres quand il y a des accents :
ingrédient

Quelqu'un peut m'expliquer ?
 
WRInaute passionné
parse.url
parse.str
Code:
<?php
	$q = parse_url("https://www.google.fr/search?hl=fr&q=photo+num%C3%A9rique&btnG=Recherche+Google&meta=") ;
	var_dump( $q ) ;
	parse_str( $q["query"], $query ) ;
	var_dump( $query ) ;
	var_dump ( $query['q'] ) ;
?>
 
Nouveau WRInaute
Si je comprend bien, parse_url et parse_str m'evitent d'utiliser les explode, par contre cela ne me dispense pas de remplacer le urldecode par utf8_decode.
J'essaie cela de suite.
Merci.
 
WRInaute passionné
LeFlacon a dit:
Si je comprend bien, parse_url et parse_str m'evitent d'utiliser les explode, par contre cela ne me dispense pas de remplacer le urldecode par utf8_decode.
J'essaie cela de suite.
Merci.

Tout à fait. KaZhaR avait déjà répondu à ta question.
parse_url et parse_str t'évitent de réinventer la roue, c'était juste une info compl. :)
 
Nouveau WRInaute
Bonjour,

en fait en utilisant utf8_decode cela ne marchait toujours pas et je viens de comprendre finalement pourquoi.
Ce que je reçois effectivement comme mot clef c'est par exemple : "d%C3%A9finition"
Donc comme je faisais
$clef=utf8_decode($clef);
puis un
$clef=urldecode($clef);
cela foirait car la première ligne ne faisait rien et la deuxième restituait "définition"
En inversant, les deux lignes, cela devrait marcher.
Merci beaucoup pour votre aide,

LeFlacon (un peu vidé [voire vidé], là, il faut bien le dire...)
 
Discussions similaires
Haut