utf8_encode = resultats différents

Petit nouveau ! | 3 Messages

20 mai 2014, 12:27

Bonjour à tous !

Je me présente, Sacha, je suis avant tout développeur mobile mais je bosse actuellement sur l'automatisation de taches via PHP.
Mon problème semble simple :)

À la racine de mon FTP j'ai un fichier (appelons le test.php) dans lequel j'effectue ces quelques lignes :
<?php

$str = "Une string avec des accents éèà";
$str = utf8_encode($str);

$test = file_get_contents("http://monapi.com/api?title=".$str.);

echo  $str;
Cela fonctionne parfaitement. Avec utf8_encode j'obtiens le résultat suivant : "Une string avec des accents éèÃÂ"

Dans mon FTP j'ai un dossier (appelons le "news"), dans ce dossier j'ai un fichier utilisé pour valider les news, lorsqu'une news est validée je fais exactement ca :
	else if (isset($_GET ['valide']))
	{

                $str = "Une string avec des accents éèà";
		$str = utf8_encode($str);
		echo $str;
		$url = "http://monapi.com/api?title=".$str;
		$payload = file_get_contents($url);
	}
Ici j'obtiens le résultat suivant : "Une string avec des accents éèÃ"

Les deux résultats sont bien différents alors que c'est bien utf8_encode() que j'utilise dans les deux cas :/
Pouvez vous m'aider a comprendre ce qui ne tourne pas rond dans ce micmac ?

Je vous en remercie d'avance !!!!
Bonne journée à vous :)

Eléphant du PHP | 422 Messages

20 mai 2014, 13:11

hello

jet un coup d'oeil par ici http://www.php.net/manual/fr/function.urlencode.php

(ctrl+F utf8)

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

ViPHP
xTG
ViPHP | 7331 Messages

20 mai 2014, 13:30

Concernant la différence entre tes deux scripts la réponse se trouve dans l'encodage des dits fichiers.
Tu en as un encodé en iso, tu as donc une String en iso que tu encodes en utf-8.
Tu as le second encodé en utf-8, tu as donc une String en utf-8 que tu encodes... en utf-8 => double encodage.
Le double encodage est celui fait dans test.php à priori vu la tête du message après encodage.

Petit nouveau ! | 3 Messages

22 mai 2014, 14:21

Bonjour à vous deux,

Tout d'abord merci pour vos réponses. Je pense réussir à régler mon problème désormais. Seulement on nouveau soucis viens de se greffer sans crier gare :/
En effet, maintenant que j'essaye d'utiliser file_get_contents($monurl) j'ai cette erreur : Warning: file_get_contents($monurl): failed to open stream: No such file or directory
Et en utilisant cURL je n'obtiens aucun résultat (= null).

Je ne comprend pas vraiment car hier tout marchais a merveille et aujourd'hui c'est la surprise :/

ViPHP
xTG
ViPHP | 7331 Messages

22 mai 2014, 15:21

Tentes d'accéder à cette même url via ton navigateur dans un premier temps.
Je ne comprend pas vraiment car hier tout marchais a merveille et aujourd'hui c'est la surprise :/
Toute personne censée sait bien qu'il y a forcement eu une modification quelque part. ^^

Petit nouveau ! | 3 Messages

26 mai 2014, 01:20

Bonsoir,

Via le navigateur ca fonctionne, mais lorsque j'effectue l'opération via un script php en utilisant soit cURL soit file_get_contents, rien ne se passe, le retour est toujours null ... Ce que je veux dire c'est que ca passait très bien via le script PHP avant et désormais ca ne marche plus... Mais ma BDD est hébergée sur le serveur d'un ami qui ne veut pas me laisser libre accès à toute la BDD ce qui est normal. Il a surement touché quelque chose qui fait que maintenant mes scripts distants ne passent plus :/