Extraire des parties d'un texte avec séparateur (tableau? Array?, autre?)

Bonsoir la commu.
Je ramène les notifs/messages de mon GSM avec Tasker vers Jeedom. OK
Objectif: Jeedom lit via Alexa les messages reçus.
Mon problème: je reçois de Tasker les notifications sous forme d’un texte toujours formaté de la même manière,exemple:
com.whatsapp,‎ThiBux (2 messages) : Emily,On se prépare et on arrive,%evtprm4,%evtprm5,‎ThiBux (2 messages),%evtprm7,false

Vous remarquez que le message à 8 « compartiments » séparés par des virgules ici:
1)com.whatsapp
2)ThiBux (2 messages) : Emily
3)On se prépare et on arrive
4)%evtprm4
5) etc…

J’aimerais récupérer la partie « message » qui est donc en 3ième position.
Idéalement si je pouvais les récupérer toutes séparément dans des variables différentes. Genre un tableau explosé en 8 variables exploitables dans Jeedom ce serait top.
Sinon, au moins une découpe pour récupérer le message.
Merci pour votre aide

Salut,

Tu peux t’intéresser à la fonction explode en php dans un bloc code de scénario. Dans cette idée :

$extract = explode(',', TA_VALEUR);
$message = $extract[2]; // contient : On se prépare et on arrive
3 « J'aime »

Merci,
Comment je fais pour passer une variable(monTexte) de jeedom vers un cadre de code PHP?
Ainsi que pour renvoyer les variables $message dans Jeedom après traitement?

Utilise des tags

conseil de lecture

2 « J'aime »

Bon, j’ai trouvé au cas où ca pourrait servir à d’autres, je mets le code ici:
Je fais un scénario qui va récuperer le string à découper (texte)
j’explose le texte avec comme séparateur la virgule dans mon cas
le code va créer un tableau et mettre chaque élément découpé à une position différente (de 0 à n)
Je récupère la position qui m’interesse [2] dans cet exemple et la mets dans une variable que je renvoie vers jeddom pour l’utiliser dans le reste de mon scénario hors code.

$string = cmd::byString('#[Technique][GSM Oli Données][Texte message]#')->execCmd();
$detail =  explode(',',$string) ;
$detail2 = $detail[2];

$Variable_Jeedom = "DetailMessage";
$scenario->setData($Variable_Jeedom, $detail2);

Voili, voilou

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.