Page 1 sur 1

PHP ou Perl: Cherche petit exemple tout con.

Posté : 27 mars 2006, 10:35
par fifto
Salut à tous !

Une petit question concernant perl ou php (au choix)

Concretement, quand je suis sous unix, qu'est ce que je dois faire pour lancer un programme (perl ou php) ? Je l'écris dans un fichier texte ou un fichier executable ? Quelle extension je dois donner à ce fichier dans ce cas? Et comment je l'execute ? Vous auriez pas un exemple tout bip, genre juste l'affichage d'un message ou la somme 2+2=4 pour que je puisse voir comment procéder pour executer un tel programme ?


merci. Miguel

PS: Pour info, voici ce que je cherche À faire si certains peuvent me mettre sur la voie:

ce que j'ai a faire, c'est ca: creer un graphique de type XY (abcisse-ordonnee) a partir de donnees d'un fichier texte et afficher ce graphique dans netscape (netscape navigator version 4.78).
Et tout ca dans une procedure automatique.


Donc a mon avis, je dois decomposer mon script de la facon suivante:

1- lire les donnees contenues dans le fichier texte
2- selectionner celles qui m'interessent
3- creer un graphique a partir de ces donnees
5- exporter le graphique en fichier image
6- importer l'image dans une page html
7- commander l'ouverture de cette page html


On m'a dit que les languages php et perl étaient adaptés à mon cas. Dans ce cas, quel est la plus facile: php ou perl ?


Voici un exemple de fichier texte dans lequel sont contenues mes donnees:

POINT ID. TYPE T1 T2 T3 R1 R2 R3
1 G 1.599571E+01 1.185148E-02 -3.111541E+00 1.784951E-06 5.286219E-02 -3.340712E-06
2 G 2.303846E+00 1.238950E-02 -1.913684E+00 1.784951E-06 5.286219E-02 -3.340712E-06
1000 G 1.009300E-03 -1.461770E-03 -8.895236E-02 -1.380486E-02 1.121588E-03 0.0
1001 G 6.655139E-04 -1.269913E-03 -1.202470E-02 -8.149052E-03 1.912397E-03 0.0
1002 G 2.128328E-04 -4.430452E-04 2.143617E-02 9.356764E-04 -1.131274E-03 0.0
1003 G 1.528846E-04 -3.164306E-04 1.279018E-02 1.256070E-03 -7.879398E-04 0.0
1004 G 4.770843E-04 -1.147985E-03 2.830649E-02 -3.521185E-03 -6.181516E-04 0.0
1005 G 2.695279E-04 -3.397622E-04 -1.185465E-02 -1.379297E-04 -1.666789E-03 0.0
1006 G 5.318802E-03 -1.288805E-02 1.703259E-01 3.963486E-02 2.937418E-02 0.0
1007 G 3.142439E-03 -5.341556E-03 5.803642E-02 1.815232E-02 1.094855E-02 0.0
1008 G 1.822350E-04 3.866597E-04 1.790608E-02 -1.606418E-03 -7.047455E-04 0.0


Et donc, par exemple, j'aimerai faire le graphique suivant contenant 3 points:
les points 1002, 1005 et 1006
leur abcisses respectives se trouvent dans la colonne T1, leurs ordonnees dans la colonne T3.
Et afficher ce graphique (avec legende, titre etc...) dans netscape..

merci.
Miguel

Posté : 27 mars 2006, 10:50
par jpaul
Que tu utilises perl ou php, normalement, tu vas passer par un serveur web (apache par exemple).

As-tu un serveur web sur ton unix ?

Ensuite, tu vas configurer ton serveur pour qu'il sache qu'il doit appliquer un traitement (interpréteur perl ou php).
Ca peut se faire :
Soit par cgi (commen gateway interface) dans le cas de perl ou php (dans ce cas tu devras mettre tes pages dans un répertoire ou une arborescence dédiée).
Soit par une configuration qui fera que les pages ayant un certain suffixe (par exemple : xxx.php) seront interprétées par php.

L'installation et la configuration de php sont bien documentées.
A ta place, je choisirais php, je fearis d'abord marcher un truc simple (genre "Hello world !").
Ensuite je me mettrais a coder ce que l'on me demande.

Bon courage.

Posté : 27 mars 2006, 10:57
par Ryle
A priori je dirais que dans ton cas perl est plus adapté que php. Pour être exécuté PHP à besoin d'être lancé depuis un serveur web tandis que perl (qui est installé en standard dans les distrib unix) peut être lancé en ligne de commande sur le système comme n'importe quel shell.

Les extensions habituelles sont .php pour PHP (logique hein ;)) et .pl pour PERL.

Exemple en perl :

Code : Tout sélectionner

#!/usr/bin/perl print "Hello World !"
il te suffit de l'exécuter avec . nomDuFichier.pl :)

Perl est également optimisé pour la lecture et le traitement de fichiers, mais aucune idée de ce qu'il vaut pour la génération d'image...

Pour le php, il te faut installer un serveur web sur ta machine, et l'exécution des scripts se fait lors de l'appel à la page par un navigateur :
<html>
<body>
<?php echo "Hello World !"; ?>
</body>
</html>

ok merci. mais impossible d'Executer..

Posté : 27 mars 2006, 11:10
par fiftoman
ok merci !

le problème, c'est que j'arrive pas À executer ce fichier.

J'ai copié les commandes dans un fichier texte que j'ai nommé fichier.pl

Sous unix, je tappe > fichier.pl
et il me sort "command not found"

j'ai essayé comme ca aussi: > .fichier.pl
toujours pareil : "command not found"

?????
:roll:

Posté : 27 mars 2006, 12:59
par jpaul
Si ton fichier perl commence bien par :
#!/usr/bin/perl 
Il va être interprété par le programme /usr/bin/perl (quelquesoit son extention)
Vérifie que tu as bien un perl sous /usr/bin.
Il faut aussi que ton fichier soit exécutable chmod +x nom_du_fichier, mais tu aurais un autre message d'erreur.

Ce qui est troublant c'est qu'il ne te dis pas quelle est la commande qu'il ne trouve pas...
D'après ton message, je m'attendais à avoir :
perl: commande not found.

autrement si tu veux lui dire fichier.pl dans le répertoire courrant, ce n''est pas .fichier.pl mais ./fichier.pl qu'il faut utiliser....

Tu peux essayer de taper :
type perl
ça devrait te donner l'endroit où est perl
tu pourras éventuellement remplacer le chemin dans la première ligne...

Posté : 27 mars 2006, 13:50
par tomypunk
il faut aussi que ton fichier est le droit X pour pouvoir l'éxécuter, fait un petit chmod ça résoudra peut etre ton problèle ...

Re: PHP ou Perl: Cherche petit exemple tout con.

Posté : 20 août 2012, 14:43
par Mazarini
Bonjour,

Pour lancer un fichier executable dans le répertoire courant, il faut ./fichier.pl

En général, le répertoire courant ne fait pas partie du path d'ou le ./ devant le nom de fichier.

Edit : oops, pas vu la date du post...

Re: PHP ou Perl: Cherche petit exemple tout con.

Posté : 20 août 2012, 19:57
par moogli
:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: