¿Cómo puedo ejecutar un script PHP al colocar el archivo en el icono?

2

Tengo un script php que toma un nombre de archivo como argumento. Cuando lo ejecuto desde una ventana de terminal, escribo

./my_script.php file_to_process.txt

Funciona muy bien!

Lo que me gustaría poder hacer es tener un ícono en mi dock que, cuando coloque un archivo en él, se ejecute el script php y proporcione la ruta completa al archivo soltado como un argumento para ese script. .

¿Es esto posible? ¿Puede por favor proporcionar instrucciones paso a paso?

    
pregunta Scott 10.01.2012 - 13:10

3 respuestas

2

Sí, esto debería ser posible utilizando Automator. No he trabajado con php desde la línea de comandos, así que no estoy seguro de cómo funciona exactamente, pero esta es una instrucción general.

  1. Abra Automator (está en la carpeta Aplicaciones).
  2. Elija crear una aplicación.
  3. SeleccioneUtilidadesenBibliotecayelijaEjecutarscriptdeshellyarrástreloaláreadeladerecha.
  4. En el área de texto de la acción de ejecución del script de shell, elimine 'cat' y escriba la ruta completa al script que desea ejecutar.
  5. Seleccione pasar la entrada a la entrada estándar.
  6. Guarde la aplicación en algún lugar y arrástrela a su base.
  7. Pruébelo arrastrando un archivo hacia él.
respondido por el Lizzan 10.01.2012 - 15:25
0

Necesitas usar Automator.app

Cree una aplicación y agregue Utilidades- > Ejecute el script de shell para incluir su my_script.php

    
respondido por el Mark 10.01.2012 - 15:15
0

También puedes hacer esto con AppleScript.

La siguiente secuencia de comandos abre de forma recursiva todos los archivos / carpetas colocados en ella. Para cada archivo, ejecute el script PHP definido por phpScriptPath pasando la ruta del archivo como argumento.

Para crear la aplicación:

1. Abre el editor de AppleScript

2. Pegue el siguiente código:

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. Establecer la ruta absoluta de PHPscript

Edite la primera línea de propiedad del script

4. Exportar como aplicación

Menú de archivo > Exportar:

  • Elija el nombre de la aplicación & destino
  • Seleccione para exportar como aplicación
respondido por el Bibou 24.02.2013 - 14:45

Lea otras preguntas en las etiquetas