#1 Le 03/08/2012, à 09:27
- su1
Lancer un script php en ligne de commande en passant des variables
Chers amis d'ubuntu bonjour,
je cherche à automatiser une tâche que je fais régulièrement, et qui consiste à :
- ouvrir une installation locale de Wordpress dans Firefox
- accéder aux paramètres d'un plugin de cette installation Wordpress
- configurer ce plugin par un formulaire (menus déroulants et champ texte)
- lancer ce plugin, qui est en fait un script php qui va automatiquement ajouter des images à mes posts pendant quelques minutes puis s'arrêter tout seul.
J'ai besoin de faire ça pour plusieurs sites wordpress différents, et avec des configurations du plugin différentes, et j'aimerais donc intégrer ça dans un petit script bash (ou autre langage).
J'ai pensé en premier créer des iMacros pour firefox que je lancerais depuis mon script bash. Le problème c'est que je dois pouvoir passer des variables à mon iMacro (le nom du site wordpress et la configuration du plugin), et que je ne pense pas que ça soit possible avec les iMacros d'après ce que j'ai vu.
J'ai pensé utiliser elinks aussi. Mais d'une part, il n'a pas l'air capable de faire tourner mon script PHP (rien ne se passe quand je le lance depuis elinks), et d'autre part je crois qu'il n'est pas possible d'indiquer à elinks en ligne de commande : cliquer sur tel lien, remplir tel formulaire, etc...
Bref, je pense donc qu'il doit y avoir une solution ou un langage pour faire ça, mais que je ne connais pas. Je m'en remets donc à vos connaissances. Je viens d'entendre parler de curl sinon, que je vais aller étudier maintenant.
Merci d'avance.
Hors ligne
#2 Le 03/08/2012, à 21:47
- Maisondouf
Re : Lancer un script php en ligne de commande en passant des variables
Ou j'ai pas tout compris mais je ne vois pas pourquoi tu utilises Firefox...
Si tu as écrit un module en php qui fait les mise à jour ou les bricoles que tu veux, lances le en mode commande par un scripte linux.
Là tu passeras toutes les variables que tu veux.
imagine ton scripte mon.php
<?php
echo $argv[1]."\n";
?>
et le scripte linux qui boucle sur tes posts
#! /bin/sh
for i in `seq 1 9`;
do
php mon.php $i
done
php mon.php "ça marche"
Réfléchis à un truc comme ça, ce sera plus simple.
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne
#3 Le 04/08/2012, à 08:19
- su1
Re : Lancer un script php en ligne de commande en passant des variables
En fait je parle de firefox parce que j'utilise mon script depuis mon navigateur habituellement. Donc une manière qui m'aurait permis d'automatiser mes tâches "graphiquement" comme avec une iMacro ça aurait été très bien. Surtout que j'aurais eu 2-3 autres réglages de mon site Wordpress à faire en passant, ailleurs que par ce script.
Avec ta solution, je ne vois pas comment le script (qui est un plugin Wordpress je le rappelle) va savoir quelle base de données aller modifier. Passer par un navigateur me permettait de me connecter au bon site (la bonne base de données) à modifier.
Sur quels autres points je n'ai pas été clair ?
Hors ligne
#4 Le 04/08/2012, à 08:53
- compte supprimé
Re : Lancer un script php en ligne de commande en passant des variables
Je ne vois pas trop, mais si tu veux une page affichée dans firefox qui te permet de communiquer avec le serveur et donc de lui envoyer des instructions sans quitter la page, tu peux utiliser XMLHttpRequest de javascript (ma référence est un peu ancienne, mais j'ai la flemme de chercher)
Tu peux utiliser directement XMLHttpRequest, pas obligé de charger toute une bibliothèque ajax ou autre
Exemple : tu as une liste d'articles dans ta page html affichée dans firefox. Tu cliques sur l'un d'eux et aussitôt une requête avec la référence de l'article est envoyée au serveur grâce au gestionnaire d'événements de javascript qui détecte le clic, puis à XMLHttpRequest (tout ça, c'est quelques lignes de programme javascript). C'est-à-dire qu'un script php est lancé côté serveur, avec la référence de l'article comme paramètre... Le script php peut par exemple interroger une base de données pour récupérer les détails sur l'article et les renvoyer comme réponse à la requête XMLHttpRequest, soit au format texte, soit au format xml... Ce que le reste du programme javascript peut afficher sur la page là où il faut...
C'est vraiment un truc très efficace pour dialoguer avec le serveur sans quitter la page.
Dernière modification par faustus (Le 04/08/2012, à 09:33)
#5 Le 04/08/2012, à 11:29
- Maisondouf
Re : Lancer un script php en ligne de commande en passant des variables
Si tu veux automatiser des scriptes en ayant quand même des choix ou des saisies clavier, regardes du coté de "zenity".
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne
#6 Le 04/08/2012, à 19:04
- su1
Re : Lancer un script php en ligne de commande en passant des variables
Merci! Mais j'ai trouvé mon bonheur avec Sikuli. Ca fait exactement ce que je veux, de l'automatisation de clicks, et basé sur de la reconnaissance graphique donc très simple à utiliser. Le tout s'appuyant sur Python donc avec de la flexibilité en plus pour mes variables...
Hors ligne
#7 Le 05/08/2012, à 14:55
- Maisondouf
Re : Lancer un script php en ligne de commande en passant des variables
ARRRGGHHH ! un robot dans son PC !!!
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne