Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86

    Aspettare che termini exec

    Salve,

    ho richiamato tramite il comando exec l'esecuzione di una funzione matlab,il problema è che oltre a non fornirmi in output i risultati richiesti termina prima.
    In pratica ho caricato da php delle immagini in una cartella,poi tramite il comando exec elaboro queste immagini,e poi le cancello dalla cartella tramite php ma inizia a farlo per un'immagine e poi si blocca mentre se non inserisco il codice per eliminare le immagini esegue tutto come dovuto, dove sbaglio!!posto il codice:

    codice per eseguire l'elaborazione delle immagini

    Codice PHP:
    $command "matlab -r [a,b,c,d]=lettura ";    
    $valori=exec($command$out$status);    
     echo 
    "<pre>";   
    echo 
    "out=";   
    print_r($out);   
    echo 
    "res=".$res.PHP_EOL;   
    echo 
    "status=".$status.PHP_EOL;   
    "</pre>"
    volevo sapere come posso farmi restituire i valori di a,b,c,d della funzione matlab?

    praticamente mi da in output questo:

    out=Array
    (
    [0] => Array
    (
    [0] => Sagre in Italia
    [1] =>
    [2] =>
    [3] =>
    [4] =>
    [5] =>
    [6] => la via dei tortelli di zucca
    [7] => la via del tartufo
    [8] => la via del pesce
    [9] => la via dei salami
    [10] => fattoria e caccia
    [11] => sapori e tradizioni
    [12] => santi e patroni
    [13] => primi piatti
    [14] => rane e lumache
    [15] => polenta
    [16] =>
    [17] =>
    [18] =>
    )

    [1] => Array
    (
    [0] => src="images/logoSD.jpg" alt="Sagre in Italia" /
    [1] => src="images/cycle1.jpg" alt="" class="slide_image"/
    [2] => src="images/cycle2.jpg" alt="" class="slide_image" /
    [3] => src="images/cycle3.jpg" alt="" class="slide_image" /
    [4] => src="images/cycle4.jpg" alt="" class="slide_image" /
    [5] => src="images/cycle5.jpg" alt="" class="slide_image" /
    [6] => src="images/icon-vie01.jpg" border=0 alt="la via dei tortelli di zucca" class="imgleft" /
    [7] => src="images/icon-vie02.jpg" border=0 alt="la via del tartufo" class="imgleft" /
    [8] => src="images/icon-vie03.jpg" border=0 alt="la via del pesce" class="imgleft" /
    [9] => src="images/icon-vie04.jpg" border=0 alt="la via dei salami" class="imgleft" /
    [10] => src="images/icon-vie05.jpg" border=0 alt="fattoria e caccia" class="imgleft" /
    [11] => src="images/icon-vie06.jpg" border=0 alt="sapori e tradizioni" class="imgleft" /
    [12] => src="images/icon-vie07.jpg" border=0 alt="santi e patroni" class="imgleft" /
    [13] => src="images/icon-vie08.jpg" border=0 alt="primi piatti" class="imgleft" /
    [14] => src="images/icon-vie09.jpg" border=0 alt="rane e lumache" class="imgleft" /
    [15] => src="images/icon-vie10.jpg" border=0 alt="polenta" class="imgleft" /
    [16] => src="images/icon-fb.gif" alt="" class="imgsocial" /
    [17] => src="images/icon-twit.gif" alt="" class="imgsocial" /
    [18] => src="images/logo-bottom.png" alt="" /
    )

    )
    res=
    status=0


    cioè informazioni sulle immagini.

    Funzione per svuotare lla cartella dalle sole immagini

    Codice PHP:
    function findExt($filename)
    {     
     
    $exts = array( '.jpg' => 'image',        
                         
    '.png' => 'image',         
                         
    '.gif' => 'image',        
                         
    '.tif' => 'image',         
                          
    '.bmp' => 'image', );    
      
    $ext strrchr($filename,'.');    
        if (
    $exts[$ext]) 
          { 
             return 
    $exts[$ext]; 
           }     
        else 
           { 
              return 
    "unknown"
           } 
    }   

    function 
    svuota_cartella($dirpath
    {  
         if (
    is_dir($dirpath)) 
           {     
    //Apro l'oggetto directory    
             
    if ($directory_handle opendir($dirpath)) 
              {         
    //Scorro l'oggetto fino a quando non è termnato cioè false        
                 
    while (($file readdir($directory_handle)) !== false
                  {
                     
    $a=findExt($file);      
                     
    $b="image";     
                     if (
    strcmp($a,$b)=="0")
                      {      
                         
    unlink($file);      
                       }   
                  }   
               
    closedir($directory_handle);     
             }   
           } 
    }

    exec(.........)
    ......................................
    .....................................
    %
    codice che che esegue altre cose 




    %chiamata alla funzione svuota cartella
    svuota_cartella
    ("..\sitoweb"); 
    Ho provato ad eseguire la funzione da sola e funziona mentre con il comando exec termina prima e non riesce a cancellare nulla,potrebbe essere un problema di permessi?come posso apettare il termine dell'esecuzione del comando exec e poi svuotare la cartella?

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    eh... quanta roba :)... prova a guardare passthru invece di exec

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86
    Il primo problema l'ho risolto eliminado le immagini nella funzione matlab via via che venivano elaborate, mentre non riesco ancora a visualizzare l'output della funzione in php ,devo reindirizzare l'output della funzioni in un file o su un array in php, ho già provato passthru ma niente.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma... usando un qualche batch? magari con un piping...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86
    potresti spiegarti meglio o suggerirmi qualche link che ne parla,perchè non l'ho mai usato

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    cioè... fare uno script "batch" (".bat" su wind o con bash su L., p.es.) che esegua i comandi che ti servono (in cui magari controllare quindi anche il completamento degli stessi)... eventualmente si può anche pensare ad un piping dei dati su un file di output (cioè il passaggio di parametri con il carattere "|" pipe da un comando all'altro)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.