Est-ce que c'est bon? pour exec - PHP - Programmation
Marsh Posté le 12-07-2006 à 11:28:34
Si tu t'attendais que ça ouvre un programme à l'ecran je ne pense pas que ça fonctionnera. Il l'affichera à Php mais pas à toi. C'est pas toi qui executer le programme mais php donc le programme répond à php. Si par contre le programme fait une tache interne tu pourras le voir que ça été executé de plus tu peux le vérifier dans la liste des processus s'il est présent.
Marsh Posté le 12-07-2006 à 11:51:11
Non je voulais dire que mes " ' étaient bon parce que il ne se passe rien quand je l'execute, il n'y a pas de PID au nom de sc_trans_root quand je fais ps aux sous le ssh.
Marsh Posté le 12-07-2006 à 12:08:00
normalement il doit voir quoi linux point de vue syntaxe ?
Si c'est le guillement qui te gene pour l'implenter utilise la fonction chr(numero du caractère).
Marsh Posté le 12-07-2006 à 12:12:18
Code :
|
s'nawak
Code :
|
zou on en parle plus!
Marsh Posté le 12-07-2006 à 12:21:05
mmhh mouais c'est pas très pro c'est une technique de vieux renard mais bon ça marchera.
Marsh Posté le 12-07-2006 à 12:21:34
C'est bon j'ai trouver la solution miracle ( enfin ).
exec("".$chemin."sc_trans_".$user." ".$chemin."sc_trans_".$user.".conf" );
Marsh Posté le 12-07-2006 à 12:22:58
Berceker United a écrit : mmhh mouais c'est pas très pro c'est une technique de vieux renard mais bon ça marchera. |
Euh ... pourrais tu developper s'il te plait?
Tu compteras ces " et ' dans la commande qu'il passe a exec et tu te rendras compte que ces concaténations sont à l'ouet.
Maintenant en quoi ma technique est "pas pro" ou "de vieux renard", je suis assez curieux
Marsh Posté le 12-07-2006 à 12:33:32
anapajari a écrit : Euh ... pourrais tu developper s'il te plait? |
Juste le $_user qui est present à l'intérieur de la chaine. c'est en ça que je disais que c'était pas pro. Ne le prend pas mal man
Marsh Posté le 12-07-2006 à 12:36:12
Dite moi c'est possible de recuperer le numéro de PID du programme lors de l'execution svp?
Marsh Posté le 12-07-2006 à 13:21:34
Berceker United a écrit : Juste le $_user qui est present à l'intérieur de la chaine. |
Et??? En quoi c'est pas pro je m'interroge toujours.
Si tu me sors que la ligne du dessous est plus "pro", je t'avertis d'avance que je vais me marrer...
Code :
|
Berceker United a écrit : c'est en ça que je disais que c'était pas pro. Ne le prend pas mal man |
Je le prends pas mal je suis juste curieux
foxyfox a écrit : Dite moi c'est possible de recuperer le numéro de PID du programme lors de l'execution svp? |
Lire la doc, c'est marqué dans les commentaires http://fr.php.net/function.exec :
Code :
|
Marsh Posté le 12-07-2006 à 13:30:55
anapajari a écrit : Et??? En quoi c'est pas pro je m'interroge toujours.
|
Non mais ça c'est d'la bombe de balle.
Code :
|
Marsh Posté le 12-07-2006 à 13:41:11
Berceker United a écrit : Non mais ça c'est d'la bombe de balle.
|
C'est marrant comme tu réponds toujours pas à ma question
ça m'interesserait vraiment de savoir pourquoi c'est pas "pro", histoire que je sache pourquoi je ne dois plus faire comme ça
Marsh Posté le 12-07-2006 à 13:59:29
anapajari a écrit : C'est marrant comme tu réponds toujours pas à ma question |
Plusieurs raison :
Code :
|
Une chaine c'est autre chose. Il est préférable de faire ceci :
Code :
|
Voila
un article sur ce sujet !
Marsh Posté le 12-07-2006 à 14:30:12
Berceker United a écrit : Plusieurs raison :
|
Après en terme de lisibilité, pour moi c'est fonction de ce que tu as à écrire.
Prenons la phrase l'élélphant $x et l'écureuil $y s'adorent
Avec concaténation:
Code :
|
Avec "parse":
Code :
|
Franchement laquelle est plus lisible.
Pour l'éditeur ça dépend lequel tu utilises Vi vit ça très bien par exemple. Après c'est sur que sous notepad
Berceker United a écrit :
|
Ce n'est plus vrai depuis quelques temps déjà, la version php4.2 ayant nivellé la différence.
Tu vas me dire "oui mais regarde l'exemple sur les 3 millions de ligne dans l'article en bas", et je te répondrais "Le jour ou on te demande d'afficher 3 millions de ligne dans une page web, change de métier".
edit: tu trouveras 400 pages web disant un truc et son contraire sur ces benchmarks de toute façon
Berceker United a écrit :
|
Je ne vois pas où intervient la logique
C'est deux façons différentes d'écrire la même chose, après chacun ces gouts, si ce n'est que tu as oublié de backslasher le guillement de "s'appelle" et que du coup ça plante
Berceker United a écrit :
|
PHP étant le fils illégitime de PERL, ce comportement sur les chaines provient surement de la ( j'ai la flemme de vérifier ( afin je sais que c'est pareil en PERL) ). Chaque langage a effectivement ces spécificités.
L'absence de typage des variables en php t'empêche d'avoir un code "générique", le fait de devoir concatener des chaines de caractères n'arrive que loin loin derrière.
Les exemples sont complètement foireux dans cet article...
Je les reprends "à ma sauce":
Code :
|
Et l'argument sur la "libisibité" est inversé
Ma morale c'est que, les deux solutions sont possibles et sensiblement identiques en terme de performance. Autant choisir celle qui est le plus adaptée au besoin. Mais en aucun cas l'une ou l'autre n'est plus "pro" ou plus "vieux renard".
La vraie problématique c'est d'apprendre aux gens les différences entre ' et " ...
Marsh Posté le 12-07-2006 à 14:40:55
La derniere solution est totalement réglé a partir du moment ou les parametres sont identifié par des guillements. Personnellement, je n'aime pas travailler avec des variables présent dans une chaine de caractère car il faut rester logique, lisible. Comme je developpe sous plusieurs language je peux pas me permettre de laisser prendre cette voix. Franchement pour bien comprendre la problématique c'est de developper plusieurs language. Là ont abandonne très vite cette manière de faire.
Mais ceci reste que mon avis. Au boulot j'interdis qui que ce soit de faire ce genre de chose (je contrôle les codes )
Marsh Posté le 12-07-2006 à 16:59:46
Y'a pas de bonne ou mauvaise solution absolue pour les quotes et simple quotes. PHP autorise les deux, alors utilisez la méthode qui vous plaît, et qui vous convient le mieux, stou!
Marsh Posté le 12-07-2006 à 17:41:48
anapajari a écrit : Et??? En quoi c'est pas pro je m'interroge toujours. |
Personellement, j'aurais tendance à dire qu'utiliser une méthode qui plante dés que t'as besoin de coler un caractére alphabétique juste derriére le contenu de ta variable n'est pas une méthode trés pro. En plus de ça, il y a le probléme des variables tableau à plusieurs niveau qui seront mal interprété ainsi que les variables objects qui risquent de ne pas l'être du tout. (c'est vrai que je n'ai jamais poussé le vice jusqu'a faire appel à une propriété d'un objet directement dans une chaine entre " )
A noter qu'en général, pour faciliter la relecture du code sur des projets moyen ou gros, on essaye de faire la même chôse de la même maniére partout dans le code et donc on évite les solutions du style "d'habitude, je fais comme ceci, mais là et là et là et ..., je peux pas alors je fais autrement".
Marsh Posté le 12-07-2006 à 20:05:22
soulmanto a écrit : Y'a pas de bonne ou mauvaise solution absolue pour les quotes et simple quotes. PHP autorise les deux, alors utilisez la méthode qui vous plaît, et qui vous convient le mieux, stou! |
Non, si tu travailles en équipe. Il faut pas pensé pour soi-même, dans ses habitudes mais en terme de groupe même si php autorise. Mais, je n'impose pas mon point de vue je dis pourquoi il est préférable de. Après, chacun lave son linge avec le savon qu'il veut
Marsh Posté le 11-07-2006 à 23:00:59
Bonjour je souhaiterais executer un programme a l'aide de cette ligne de commande:
/home/httpd/vhosts/server3.zefox.info/httpdocs/bin/sc_trans_root sc_trans_root.conf
Et dans mon script php j'ai:
exec('".$chemin."/bin/sc_trans_".$user." sc_trans_".$user.".conf');
chemin = /home/httpd/vhosts/server3.zefox.info/httpdocs
user = root
j'ai essayer de remplacer les ' par des " mais rien du tout.. merci de votre aide :]
Message édité par foxyfox le 11-07-2006 à 23:03:30