Faire un EXEcutable avec du php

hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je me pose une question surement idiote, mais j'aimerai bien avoir une réponse quand même.

Je programme plutôt bien en php, je trouve que pour ce que je veut faire, ça me suffit, mais j'aimerai bien faire des petits programme qu'on pourrait utiliser sur un simple pc, sans passer par un serveur.

J'ai essayer de me mettre au c++, mais c'est très compliqué, et je n'en vois pas l'utilitée pour le moment.

Je voudrait donc savoir si c'est possible de faire un programme en php qui serait utilisable sur un pc sans installer easyPhp ou un autre programme du genre, de le lancer directement de la même manière qu'on lance un .exe?

Si non, d'ailleur je pense que c'est le cas, quel langage se raproche le plus du php?




4 réponses

jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Oui bien sûr. Sous les Unices il suffit d'utiliser le shebang au début de ton script
https://fr.wikipedia.org/wiki/Shebang
exemple:
johand@osiris: ~/src/CCM/php $ cat testsocket.php 
#!/usr/bin/php 
<?php 
  $port=80; 
  $server  = "192.168.0.8"; 
  if ($argc >1 ) 
    { 
    $port   = $argv[1]; 
    } 
  echo "Testing $port\n"; 
  $timeout = 10; 
  
  $resultat =  @fsockopen("$server", $port, $errno, $errstr, $timeout); 
  if($resultat) 
    echo "ON\n"; 
  else 
    echo "OFF\n"; 
?> 
johand@osiris: ~/src/CCM/php $ ./testsocket.php 80 
Testing 80 
OFF 
johand@osiris: ~/src/CCM/php $ ./testsocket.php 8080 
Testing 8080 
OFF

Sous Windows c'est évidemment plus difficile, vu la pauvreté de ce système.

Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0
hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   30
 
Salut, merci pour ta réponse.

Ça marche comment exactement, si g UNIX par exemple, je créer un fichier teste.php, je met ton code à l'intérieur, je double clic dessus et il s'exécute?

Ça me parai trop simple, il faut surement le compiler à l'aide d'un logiciel ou bien le renommer non?

Je viens d'essayer, mais ça donne rien, j'ai Windows.

Tu n'as rien qui fonctionne sous Windows?

0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
C'est lourdingue sous Win$ (que j'utilise 2 fois par an):

créer un batch contenant quelque chose du genre
%chemin _complet_vers_php_cli [options.php]* nom_du_script.php [paramètres]*

Créer un lien sur le bureau avec une zolie icone. Cliquer dessus. Bref une gestion impossible et une infinité de clics. Un appel compliqué depuis le minable cmd.exe, une gestion des chemins infernale, bref le bourrin.
Passe à Unix.
0
hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   30
 
Ok, ça à l'aire intéressent tout ça, mais il n'y à pas beaucoup d'exemple sur le net, je nage un peut.....

En gros, si j'ai bien compris, si je créer le fichier "teste.BAT" ou je met ceci :
%C:\Documents and Settings\vogler\Mes documents\php.php*

Et que je créer un fichier "php.php" ou je met ceci :
#!/usr/bin/php
<?php
file_put_contents("C:\Documents and Settings\vogler\Mes documents\teste.dat", "teste");
?>

Mon script devrait créer un fichier "teste.dat" avec à l'intérieur "teste".

Mais ça fonctionne pas, pourquoi, est-ce à cause d'un chemin de fichier qui est mal écrit, une erreur de script?

J'ai essayer plusieurs possibilités, et lue plusieurs articles sur Wikipedia avant de répondre...


Merci de ton aide
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Le % est là pour exemplifier un chemin vers l'exécutable php.exe.

Tu mettras par exemple dans ton fichier .bat</ital>
c:\easyphp\bin\php.exe d:\mes_scripts\mon_script.php
(CECI est un EXEMPLE)

La ligne avec le shebang dans ton script PHP est utile si tu veux utiliser ton script sous Unix et obligatoire si tu veux un script exécutrable sous Unix. (avec un chmod +x script.php)

Elle est comme il se doit, considérée comme un commentaire par l'interpréteur PHP.
0
hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   30
 
En gros, sous windows, il faut obligatoirement EasyPhp?

Je dis ça à cause de ton exemple!
0
hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   30
 
Ha non excuse moi, je viens de comprendre, tu à mis le chemin car il est installer la, ok
0
hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   30
 
--
Ne faite jamais la même erreur que moi, Ne prenez jamais d'hébergement chez LWS !!
Bug, pages longue à chargé, énormément d'options désactivé, mauvais support client, mais prix pourtant bien élevé...
0
hugs-giver Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   30
 
Excuse moi de te faire perdre ton temps, et merci pour tes réponses, je pense que je m'approche du bout!

Pour résumer, j'ai créer un fichier 'teste.BAT' :

C:\Program Files/EasyPHP/php/php.exe C:/Documents and Settings/vogler/Mes documents/teste.php


Puis un fichier 'teste.php' :
<?php
$file = "C:/Documents and Settings/vogler/Mes documents/dat.dat";
$cont = "Chaine de caractères";
file_put_contents($file, $cont);
?>

J'ai verfifié les chemins bien-sûr.

Quand je double-clique sur le fichier teste.BAT, une fenêtre noir s'ouvre et se referme, je pense que c'est normale, par contre, aucun fichier n'est créer et je n'ai pas le temps de lire ce qui est écrit dans cette boite de dialogue vue qu'elle se referme tout de suite!!

Il ne dois pas manquer grand chose non?

0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Le % est là pour montrer que tu peux mettre un chemon.
Bref ton fichier batch contiendra quelque chose du genre
c:\easyphp\bin\php.exe d:\mes_scripts\mon_script.php param1 param2

Le sheban dans le fichier PHP constitue un nombre magique et indique au système qu'il doit utiliser l'interpréteur précisé sur la ligne en question.
D'autre part le "#" introduit un commentaire en PHP.
0