Page 1 sur 1

Récupérer le contenu avec un explode

Posté : 24 juin 2015, 07:30
par blinz
Salut à tous.
J'ouvre un nouveau sujet car je me suis apercu d'un truc,
lorsque je récupère un contenu sur mon XML.
Je récupère que le ST
sur l'explode de : 42130 | ST ETIENNE LE MOLARD

Merci à vous

Le code:
// le code ...                  
    foreach ($flux->product as $item) {
		

  
    $titre = addslashes($item->name);
    $price = $item->price;
    $url_fnac = $item->deepLink;
    $date_debut_sortie = $item->validFrom;
    $date_fin_sortie = $item->validTo;
    $street = addslashes($item->terms);
    $photo = $item->largeImage;
    $genre = $item->merchantCategoryPath;
   $description = 'blabla';
	
    // On fait un explode afin de récupérer ce qu'il nous interesse
    $postcode  = $item->extra2;
    $pieces = explode(" ", $postcode);
    echo $pieces[2];

// On attribut le département en fonction des 2 premiers chiffre du code postal
    $departement = substr($postcode, 0, 2);
     
    $region = regionIdByDepartement($departement);
     
    // Attribution de la valeur id 1010 pour la fnac
    $id_simply_user = '999';
     
    // On valide la sortie par default
    $valide = '1';
	
	
	foreach (explode(' ; ', /*(string)*/ $item->merchantCategoryPath) as $subtype) {
	$id_type_loisirs = $type[$subtype];
	
	}  
	
	
	/* $result = mysql_query("SELECT id_loisirs FROM loisirs WHERE titre = ".$titre.", city = ".$pieces[2].", postcode = ".$pieces[0].", date_debut_sortie = ".$date_debut_sortie.", date_fin_sortie = ".$date_fin_sortie."");
	if(mysql_num_rows($result) == 1){
		
	echo 'Cette entrée existe déjà';
	
	}else{
		
	// Pseudo libre
	$sql = "INSERT INTO `matable` (id_simply_user,titre,price,photo,url_fnac,date_debut_sortie,date_fin_sortie,description,street,postcode,city,id_region,id_departements,id_type_loisirs,valide) VALUES ('$id_simply_user','$titre','$price','$photo','$url_fnac','$date_debut_sortie','$date_fin_sortie','$description','$street','$pieces[0]','$pieces[2]','$region','$departement','$id_type_loisirs','$valide')";
	$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
	echo 'Insertion en bdd';
	}*/ 
	}

Re: Récupérer le contenu avec un explode

Posté : 24 juin 2015, 08:26
par @rthur
Bonjour,
$postcode  = $item->extra2; // ex : 42130 | ST ETIENNE LE MOLARD
$pieces = explode(" ", $postcode);
echo $pieces[2];
Vu le code ci-dessus, tu fais un explode sur le caractère espace et que tu récupères l'élément avec l'index 2, ça me semble normal que tu récupères ST.
Si tu veux récupérer la ville, il vaudrait mieux faire ton explode sur le caractère pipe

Re: Récupérer le contenu avec un explode

Posté : 24 juin 2015, 09:30
par blinz
Salut.
Le caractere pipe ?
C'est le point virgule ?
Et ui jviens de voir lexplode sur lespace pas top ....

Re: Récupérer le contenu avec un explode

Posté : 24 juin 2015, 09:53
par Ryle
Nan, le "pipe" (prononcé "paille-peu") c'est la barre verticale " | " (alt-gr + 6)
Tu aurais ainsi le tableau suivant
$pieces (
   0 => "42130 ",
   1 => " ST ETIENNE LE MOLARD"
)
Et tu peux utiliser la fonction trim() de php pour te débarrasser des espaces superflux :)

Re: Récupérer le contenu avec un explode

Posté : 24 juin 2015, 20:27
par @rthur
Ou faire un explode sur " | " pour éviter d'avoir à faire un trim ;-)