Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di jzorn
    Registrato dal
    May 2010
    Messaggi
    14

    passaggio parametri a programma locale da php

    Ciao, sto usando php per crearmi una applicazione desktop per gestire tutti i miei file musicali, usando EXEC non vi sono problemi a suonare,tramite player, un qualsiasi mp3, ma io non vorrei suonarli, vorrei aggiungere i file alla coda di esecuzione del player... per farlo in vb passavo alla shell una stringa con indirizzo del programma, comando (che nello specifico era /insert) e file mp3... e la cosa funzionava... con php ho provato a fare lo stesso con EXEC e SHELL_EXEC e non mi sembra funzionare... sto cercando di fare qualcosa che non si può o semplicemente sto sbagliando qualcosa?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    il programma che richiamavi in VB cosa faceva esattamente?
    il programma in php invece cosa fa?

  3. #3
    Utente di HTML.it L'avatar di jzorn
    Registrato dal
    May 2010
    Messaggi
    14
    Ciao, sto pilotando da php AIMP3 (un player) la linea di comando fa aggiungrere al player un file nella playlist che sta eseguendo, la linea di comando è

    c:\percorso_assoluto\aimp3.exe /INSERT "percorso_assoluto\file.mp3"

    da vb la stringa esattamente così funziona

    stringa="c:\percorso_assoluto\aimp3.exe /INSERT " & chr(34) & "percorso_assoluto\file.mp3" & chr(34)
    shell(stringa)

    su PHP ritengo che il problema deve essere negli spazi e caratteri della stringa dove devono essere passati 3 elementi, l'eseguibile, il comando e l'argomento, serve lo spazio fra l'eseguibile ed il comando, serve lo slash del comando e servr passare il file mp3 da aggiungere compreso di doppi apici...

    per cui mi sono creato una variabile che riporta esattamente la stringa e la passo ad exec, ma non funziona... ho provato con
    $stringa' /INSERT "'. 'percorso_assoluto\file.mp3"';
    escapeshellarg($stringa)

    ma anche così non funziona (forse perchè passa command e argomento come unico argomento fra apici?) mah... continuo a provare combinazioni
    Ultima modifica di jzorn; 18-11-2014 a 13:42

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    tu devi ottenere una stringa così, giusto?

    Codice PHP:
    $stringa "c:\percorso_assoluto\aimp3.exe";
    $exec_stringa exec($stringa ' /INSERT "percorso_assoluto\file.mp3" '); 

  5. #5
    Utente di HTML.it L'avatar di jzorn
    Registrato dal
    May 2010
    Messaggi
    14
    correttissimo...

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    E se la esegui funziona?

  7. #7
    Utente di HTML.it L'avatar di jzorn
    Registrato dal
    May 2010
    Messaggi
    14
    se la eseguo da vb tramite shell funziona, se la lancio a mano da command no, va in errore sugli spazi dell'indirizzo assoluto dell'exe di aimp che sta in "c:\program files (86)\etc etc".

    ma se do al php solo
    $output=exec("c:\program files (86)\etc etc\aimp3.exe");
    aimp viene lanciato, quindi con il solo exe brutalmente inserito fra apici o in una semplice variabile exec fa il suo lavoro...

  8. #8
    Utente di HTML.it L'avatar di jzorn
    Registrato dal
    May 2010
    Messaggi
    14
    correzione includendo fra doppi apici l'exe, come di seguito, funziona anche da command
    "C:\Program Files (x86)\AIMP3\AIMP3.exe" /INSERT "F:\Jazz\Air - Air Song\04 Air Song.mp3"

  9. #9
    Utente di HTML.it L'avatar di jzorn
    Registrato dal
    May 2010
    Messaggi
    14
    ...e grazie che mi ci hai fatto pensare!!!!!
    incredibilmente (per me) se con exec (o shell_exec) passi solo l'eseguibile va tutto bene e il programma viene lanciato, se aggiungi i parametri l'errore che mi veniva restituito (e che finalmente ho avuto in output grazie a 2>&1) era "c:\program eseguibile non trovato"...lo stesso errore che mi dava il prompt... e così è bastato aggiungere i doppi apici anche all'eseguibile!!
    così

    $pezzo = '"'. 'F:\Jazz\Air - Air Song\04 Air Song.mp3'. '" 2>&1';
    $programma = '"'. 'C:\Program Files (x86)\AIMP3\AIMP3.exe'. '"';
    $comando = ' /insert ';
    $stringa=$programma. $comando .$pezzo;

    $output = exec($stringa);

    funziona... ufff... grazie ancora!!
    ciao

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.