Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Sorrow

 tutoriel / partage [PHP] Module Starpass Custom

Messages recommandés

Je vous partage un petit script assez utile pour starpass.N'ayant pas fait de CMS depuis plus de 6-7 mois, Starpass a mis a jour son module entre temps, je me suis aperçus que celui-ci générer des numéro et des keywork aléatoirement, et donc il n'était "plus" possible de simplement mettre le numéro de téléphone ou le SMS a envoyer en brute puis inclure un un champ pour y inscrire le code obtenue.Prenons pour commencer l'URL permettant d'inclure le module sur sa page : (ID au hasard)http://script.starpass.fr/script.php?idd=62532En regardant le code source, on peut se rendre compte que c'est du JS, rien de bien compliquer jusque là.En analysant un peut, on peut trouver une variable au nom de "jsonTariffDataDoc62532" (Hum je JSON, j'aime sa !) Bref... vous obtenez une variable JSON compléte de tout les numéro, keyword, tarifs et autres....

{  "PAYS":  {    "audiotel":    {      "audiotelPhone":"NUMERO DE TELEPHONE",      "sContactBookPhone":"",      "audiotelFixedCostDetail":"",      "audiotelVariableCostDetail":"PRIX"    },    "sms":    {      "smsKeyword":"TEXT A ENVOYER",      "smsKeywordImage":"",      "smsPhoneNumber":"NUMERO SMS",      "sContactBookPhone":"",      "smsCostDetail":"PRIX"    }  }}

Je n'est inclus que Audiotel et SMS, car pour le moment mon script de gère que cela (pas encore fait le reste).Donc, le but est de récupérer le JSON, et ce débarrasser de tout le reste.En comptant les lignes, la variable est à la ligne 10.

$starpass = @file("http://script.starpass.fr/script.php?idd=62532"); // on récupère le fichierecho $starpass[10]; // on affiche la 10ème ligne.

Ensuite on s'en fou un peut de "var jsonblablalbla....", on veut juste le JSON nous !En comptant le nombre de caractère jusqu’à la première incollable ( { ) on obtient 29 caractères, puis en partant de la fin, le points virgule (; ) plus l'espace juste après sa fait 2 caractère.Utilisons la fonction PHP substr afin d'obtenir simplement le JSON.

$starpass = file("http://script.starpass.fr/script.php?idd=76933");echo substr(substr($starpass[10], 29, -2); // on supprimer les 29 premier et 2 dernier caractères

Youpi ! On obtient ce que l'on voulait !Mais ce n'est pas fini !!Maintenant on doit pouvoir exploiter le JSON. Là, PHP va encore bien nous aider grâce a la fonction json_decode.

$starpass = file("http://script.starpass.fr/script.php?idd=76933");$parse = substr(substr($starpass[10], 29, -2);$json = json_decode($parse, true); // "true" permet d'utiliser la variable en tableau

Maintenant, pour récupérer le numéro de téléphone pour la France par exemple :

echo $json['fr']['audiotel']['audiotelPhone'];

Pour pouvoir exploiter le tout, suffit de créer un tableau avec tout les codes des pays, puis créer une boucle :

$countrys = array('fr','fd','de','at','be','bg','ca','hr','dk','es','ee','fi','gr','hu','ie','it','lv','lt','lu','me','no','nl','pt','ro','uk','sk','se','ch');for($i=0;$i<=count($countrys)-1;$i++){  echo 'Appelez le '.$json[$countrys[$i]]['audiotel']['audiotelPhone'].'. Prix: '.$json[$countrys[$i]]['audiotel']['audiotelFixedCostDetail'].$json[$countrys[$i]]['audiotel']['audiotelVariableCostDetail'];  echo '
'; // j'ai séparer les echo pour bien que vous voyer le code  echo 'Envoyez: '.$json[$countrys[$i]]['sms']['smsKeyword'].' au '.$json[$countrys[$i]]['sms']['smsPhoneNumber'].'. Prix: '.$json[$countrys[$i]]['sms']['smsCostDetail'];}

Bien sure, là, le code n'est pas terminer, certains pays ne possède pas de numéro Audiotel ou SMS, il faut donc créer une condition comme celle-ci :

if($json[$countrys[$i]]['audiotel'] != null)if($json[$countrys[$i]]['sms'] != null)

Je vous laisse a vos codes, bye :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci !

Partager ce message


Lien à poster
Partager sur d’autres sites

ça consomme trop. Je le répète encore, UTILISEZ DES CACHES !

Partager ce message


Lien à poster
Partager sur d’autres sites

ça consomme trop. Je le répète encore, UTILISEZ DES CACHES !

 

Consomme de quoi ? Quand tu affiche le module entier sa revient au même, sa consomme chez Starpass, on s'en fou.

De plus, le keyword sms est aléatoire...

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sorrow Le json_decode, l'ouverture socket (@file), tu veux que je continue ?

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.