exécuter un programme puis insérer l'output

Invité
Invité n'ayant pas de compte PHPfrance

22 janv. 2007, 23:47

Bonjour,

J'ai un fichier que je souhaite insérer dans ma bdd qui nécessite l'exécution d'un programme au préalable.

La forme du programme est la suivante :

nomduprogramme fichier fichierout

C'est ce fichierout que je souhaite utiliser pour faire l'insérer dans sql.

Selon la doc php, j'ai vu qu'il faut utiliser la fonction exec ou shell_exec ou system.

Surement que le début de mon script est comme ça :

exec("programme fichier fichierout");

Mais :

1 comment et où mettre ce fichierout car faut bien le stocker quelque part.

2 comment demander au fichier php d'attendre et de prendre un café en attendant que l'output est bien terminé avant de passer aux commandes sql (insert etc.)

Merci par avance pour toute piste car là, et au bout de 3 jours de recherche, j'ai autant d'idée qu'un chat qui dort.

Mammouth du PHP | 1029 Messages

23 janv. 2007, 12:31

Php exécute au fur et à mesure des instruction.

donc si tu veux faire exec() en dernier, fais le en dernier.

Génère ton fichier sql avec des commandes type fopen() etc...

puis travail à la suite .

jusqu'a exec()
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

23 janv. 2007, 18:27

Je te remercie infiniment pour cette piste Maitrepylos. Dès ce soir, je vais essayer d'avancer un peu et, si tu veux bien, je te montrerai mon aboutissement pour que tu me dises ce que tu en penses (en espérant que ça ne soit pas un mur :lol: )
Php exécute au fur et à mesure des instruction.

donc si tu veux faire exec() en dernier, fais le en dernier.

Génère ton fichier sql avec des commandes type fopen() etc...

puis travail à la suite .

jusqu'a exec()

Invité
Invité n'ayant pas de compte PHPfrance

23 janv. 2007, 18:41

est-ce à dire, selon tes explications et la doc trouvée, que le cheminement est le suivant ?

fopen (un fichier existant)
fopen (création d'un output)
exec (programme fichierexistant output)
fopen (lecture de l'output)

sql="insert etc...

Mammouth du PHP | 1029 Messages

24 janv. 2007, 10:40

clairement que fais ceci

exec (programme fichierexistant output)
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

24 janv. 2007, 19:15

En fait, il y a une série de commande. L'une d'elles est la suivante :

exec (pnmtojpeg image.pnm > image.jpeg)

(ça convertit une image au format pnm vers le format jpeg)

J'avais le choix entre convertir tout ça à l'insert ou bien au select. Ca me parait plus logique de le faire avant de le rentrer dans ma bdd.
clairement que fais ceci

exec (programme fichierexistant output)

Mammouth du PHP | 1029 Messages

29 janv. 2007, 15:16

donc ton fichier est généré quelque part.

Simple

- généré le fichier
- récupère le fichier
- insère le fichier

Voila
L'expérience est la somme de toutes nos erreurs.