Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 !!! lol


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