Besoin d'aide pour un regex : recupérer le prix ou %

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Besoin d'aide pour un regex : recupérer le prix ou %

Re: Besoin d'aide pour un regex : recupérer le prix ou %

par dogmongo » 27 janv. 2014, 15:17

Bonjour,

souvent le résultat array est le résulta d'un tableau vide, tu devrais afficher ton tableau et ca va peu être t'indiquer ou est la boulette
ensuite le conseil que l'on m'a donné il n'y a pas longtemps et ca change la vie c'est de faire afficher les erreurs par ton serveur 8-)
var_dump($matches);

et pourquoi tu crée deux fois la même variable ?
$titre = $promo->titre;
$reducFinal = $titre;

Tu n'a qu'un résultat parce que tu lui demande que le premier $matches[0];

Besoin d'aide pour un regex : recupérer le prix ou %

par kairi084 » 26 janv. 2014, 12:29

Bonjour tout le monde !

je vous écris car j'ai un grand besoin d'aide qui me pénalise beaucoup !
Voila j'ai une liste de phrases diverses et variées et je dois récupérer dedans (si ça existe) le prix ou le poucentage de prix.

ci-joint un echantillon de phrases
  • - Livraison offerte et -10% supplémentaires sur l'offre VAGUE
    -5.2€ de réduction
    -promo: 50€ de réduction sur l'offre
    - Decouverte: 50 € de réduction sur les résidences
    - Code promo erouine
    - Fleur - 3 € de réduction ......
    - 2 euros sur la commande de fleurs

L'idée, c'est qu'il peut y avoir de tout "50€, 50 €, -10%, 10%, 5.2€, 5,3 euros ...."


Pour récupérer l'info j'ai fais :

Code : Tout sélectionner

foreach ($data->promo as $promo) { $titre = $promo->titre; /*le prix ou reduc est dans le titre*/ $reducFinal = $titre; preg_match_all('/(\d+(?:[\.,][\d]{2})?)\s*[€|%|euros]/', $reducFinal, $matches); print_r($matches[0]); $reducFinal = $matches[0]; }
et quand je lance mon script il m'affiche juste :

Code : Tout sélectionner

Array ( [0] => 10% ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( )
première question : Snif pourquoi il ne récupère qu'une promo ? =(

contente d'avoir au moins le 10% je fais mon insert en bdd, mais la il m'enregistre juste "array" =( ahhhhhhhhhhhhhhhhhhhh

Code : Tout sélectionner

$ajout = " INSERT INTO prix(`idcode` ,`marque`, `reduc` ) VALUES ('','$marque', '$reducFinal') ";
Vous l'aurez compris je suis nulle et novice =(

Depuis ce matin je m'arrache les cheveux sur ce script =(

Si quelqu'un à un moment de pitié pour m'aider à récupérer les prix et a enregistrer les infos en bdd

merci !!!!




un grand merci !!!