2 votes

Comment exécuter un script PHP en déposant un fichier sur l'icône ?

J'ai un script php qui prend un nom de fichier comme argument. Lorsque je l'exécute depuis une fenêtre de terminal, je tape

./my_script.php file_to_process.txt

Cela fonctionne très bien !

Ce que j'aimerais pouvoir faire est d'avoir une icône sur mon dock qui, lorsque je dépose un fichier dessus, excuterait le php script et fournirait le chemin complet du fichier déposé comme argument à ce script.

Est-ce possible ? Pouvez-vous fournir des instructions étape par étape ?

2voto

aku Points 54867

Oui, cela devrait être possible en utilisant Automator. Je n'ai jamais travaillé avec php en ligne de commande, je ne sais donc pas exactement comment cela fonctionne, mais il s'agit d'une instruction générale.

  1. Ouvrez Automator (il se trouve dans le dossier Applications).
  2. Choisissez de créer une application. Select the Application template
  3. Sélectionnez Utilitaires sous Bibliothèque et choisissez Exécuter Shell script et faites-le glisser vers la zone de droite. Select Utilities, Run Shell Script
  4. Dans la zone de texte de l'action run shell script, supprimez 'cat' et écrivez le chemin complet du script que vous souhaitez exécuter.
  5. Sélectionnez pour passer l'entrée à stdin.
  6. Enregistrez l'application quelque part et faites-la glisser vers votre dock.
  7. Essayez-le en y faisant glisser un fichier.

1voto

Bibou Points 810

Vous pouvez également le faire avec AppleScript.

Le script ci-dessous ouvre récursivement tous les fichiers/dossiers déposés dessus. Pour chaque fichier, exécute le script PHP défini par phpScriptPath en passant le chemin du fichier comme argument.

Pour créer l'application :

1. Ouvrez l'éditeur AppleScript

2. Collez le code suivant :

property phpScriptPath : "/myPHP\\ Scripts/my\_script.php" -- Absolute path to your PHP script

on open droppedItems
    processItems(droppedItems)
end open

on processItems(theItems)
    repeat with theItem in theItems
        if isDirectory(theItem) then
            processItems(theItem)
        else
            do shell script phpScriptPath & " " & quoted form of (POSIX path of (theItem as alias))
        end if
    end repeat
end processItems

-- This function comes from here :
-- http://stackoverflow.com/questions/6872007/applescript-how-to-check-if-something-is-a-directory-or-a-file
on isDirectory(someItem) -- someItem is a file reference
    set filePosixPath to quoted form of (POSIX path of (someItem as alias))
    set fileType to (do shell script "file -b " & filePosixPath)
    if fileType ends with "directory" then return true
    return false
end isDirectory

3. Définir le chemin absolu du PHPscript

Editez la première ligne de propriété du script

4. Exporter en tant qu'application

Menu Fichier > Exporter :

  • Choisissez le nom et la destination de l'application
  • Sélectionnez pour exporter en tant qu'application

0voto

yoliho Points 340

Vous devez utiliser Automator.app

Créez une application et ajoutez une option Utilities->Run Shell script pour inclure votre my_script.php.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X