PHP : taille d'une variable

Fermé
chabliya - 18 déc. 2011 à 14:19
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 - 18 déc. 2011 à 23:46
Bonjour à tous,

je parse du json à partir de l'url http://search.twitter.com/search.json?q=%23test avec la fonction json_decode
je tente de récupérer la variable "id":148043024163815424.

La varible est tronquée au bout de 14 caractères je crois et j'ai besoin des 18 caractères.

Si je m'exprime mal voici le code :

<?php
	// Ouverture du fichier json
	$codeJson = file_get_contents('http://search.twitter.com/search.json?q=%23test');	
	// parsing du json
	$obj = json_decode($codeJson);
	$i = 0 ;
	while(isset($obj->results[$i]->text)) {
		// affichage de la variable id
		echo "<br/>";
		echo $obj->results[$i]->id; // je n'obtiens pas les 18 caractères de mon nombre
		$i++;
	}
?>
A voir également:

1 réponse

Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
18 déc. 2011 à 23:46
Bonjour,

tes id en question ne sont pas "tronqués", il sont juste représentés comme des nombres flottants par php.

Pour rappel, en php (et chez d'autres aussi) les entiers sont des nombres dont la valeur absolue est inférieure à PHP_INT_MAX = 2^32 = 2147483647

Tes id étant des valeurs au-delà de cette limite, PHP les convertit automatiquement en nombre flottant dont l'affichage est de la forme
{LNUM}.{RNUM]E+/-{EXPONENT_DNUM}

Tu peux te persuader qu'il ne s'agit que d'affichage en remplaçant dans ton script
ceci
echo $obj->results[$i]->id;

par ceci
printf("%f",$obj->results[$i]->id);

Et tu comprendras alors de quoi je parles.

Un peu de lecture :
--> https://www.php.net/manual/fr/language.types.float.php

0