Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58

    Script PHP in Javascript?

    Ciao a tutti, vorrei creare un semplice script che mostra le cartelle presenti nel mio ftp, permette di sceglierne una, e mostra il time-lapse delle immagini contenute in essa.
    Questa cosa io sono riuscito a farla in PHP, utilizzando i seguenti codici:

    Codice PHP:
    <?php

        
    // prepara l'array per i nomi dei file

        
    $directory = array(); //array coi files nella cartella snap

        
    $cartelle = array(); //array delle cartelle coi giorni

        // prepara l'handler per la directory

        
    $handler opendir('../snap');


        
    // apre la directory e legge i singoli nomi dei file

        
    while ($file readdir($handler)) {

            
    $directory[] = $file;

        }    
    // chiude l'handler

        
    closedir($handler);

            
    $numero count($directory);

        
    $i=0;        for($j=0;$j<$numero;$j++){

            if(
    is_dir($directory[$j]) && $directory[$j] != "." && $directory[$j] != ".."){

                print(
    $directory[$j] . "<br>");

                
    $cartelle[$i]=$directory[$j];

                
    $i++;

            }    }

        
    $numero_cartelle $i 1;

    ?>    <form name="modulo" action="eseguilapse.php" method="get">

        <select name="file">

        <?php

        
    for($i=0;$i<$numero_cartelle;$i++){

            
    $file=$cartelle[$i];

            print(
    '<option value="' $file .'">' $file '</option>');

        }    
    ?>

        </select><br>

        Intervallo:<br>

        <input type="text" name="intervallo"><br>

        <input type="submit" value="scegli">

        </form>
    Il file eseguilapse.php è il seguente:

    Codice PHP:
    <?php    $giorno $_GET[file];

        (int)
    $intervallo $_GET[intervallo];    

        
    // prepara l'array per i nomi dei file

        
    $immagini = array();

        
    // prepara l'handler per la directory

        
    $handler opendir('../snap/' $giorno);

        
    // apre la directory e legge i singoli nomi dei file

        
    while ($file readdir($handler)) {

            
    $immagini[] = $file;

        }    
    // chiude l'handler

        
    closedir($handler);


        
    $numero_immagini  count($immagini);

        
    natsort($immagini);

    ?>

    <?php    for($j=0;$j<$numero_immagini;$j++){

            
    $file=$immagini[$j];

            if(
    $file != "." && $file != ".."){

                echo 
    '<IMG STYLE="position:absolute; TOP:35px; LEFT:170px; WIDTH:800px;" 
    SRC="http://www.romaeurmeteo.it/foscam/FI9900P_00626E856BBD/snap/'
    .$giorno.'/'.$file.'">';

                echo 
    "$file";

                echo 
    "<br>";        }        sleep($intervallo);

        }
    ?>
    Il problema è che, come mi è stato fatto notare, il PHP è sincrono e perciò non vedrò sul browser il codice essere eseguito in "live", ma verrà eseguito prima e poi mostrato.
    Vorrei fare un codice che faccia la medesima cosa di questo, però in javascript, che da quanto ho capito invece può essere eseguito in modo asincrono. Il punto è: io conosco soltanto PHP, HTML e C, mentre Javascript non l'ho mai utilizzato. Potete darmi qualche dritta per riuscire a impostare questo tipo di codice in Javascript? Ad esempio le funzioni che potrebbero essermi utili, ecc.
    Grazie
    Ultima modifica di sheldon; 04-02-2018 a 16:57

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    E perchè non hai postato nella sezione dedicata a PHP?

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    ciao!

    per fare quello che chiedi, puoi già usare una delle parecchie gallerie scritte in javascript / jquery.
    ricordo che ce ne stanno alcune che fanno esattamente quello chi chiedi.

    ad esempio prova a vedere qua: http://www.webdesignburn.com/2011/07...s-and-plugins/

    una volta capito come funziona l'esempio base, puoi creare la parte di html delle immagini con php, iterando sulla direcotry che ti serve.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58
    ciao fermat, grazie della risposta. Purtroppo non sono riuscito a trovare dei semplici script per un timelapse, l'unica cosa che sono riuscito a fare è la seguente:

    Codice PHP:
    <?php    $giorno $_GET[file];

        
    $intervallo $_GET[intervallo];

            
    // array contenente le immagini

        
    $immagini = array();

        
    // prepara l'handler per la directory

        
    $handler opendir('../snap/' $giorno);

        
    // apre la directory e legge i singoli nomi dei file

        
    while ($file readdir($handler)) {

            
    $immagini[] = $giorno."/".$file;

        }

        
    // chiude l'handler

        
    closedir($handler);

        
    $numero_immagini  count($immagini);

        
    natsort($immagini);

    ?>
    <HTML> 

        <HEAD> 

            <TITLE>Video</TITLE> 

        </HEAD> 

        <BODY>

            <div align=center>

                <img name="foto">  

                <SCRIPT LANGUAGE="JavaScript">
                     var Pic = new Array();

                    var Pic = ["<?php echo join("\", \"",$immagini); ?>"];

                    var t;

                    var j = 0;

                    var p = Pic.length;

                    var intervallo = [<?php echo $intervallo?>];

                    var preLoad = new Array();

                    for (i = 0; i < p; i++) {

                        preLoad[i] = new Image();

                        preLoad[i].src = Pic[i];

                    }

                    //all images are loaded on client

                    index = 0;

                    function update(){

                        if (preLoad[index]!= null){

                        document.images['foto'].src = preLoad[index].src;

                        index++;

                        setTimeout(update, intervallo);                    }

                    }

                    update();

                </script>

            </div>

        </BODY> 

    </HTML>
    le variabili $giorno ed $intervallo sono acquisite da un form html, e nel codice si dà per scontato che abbiano un valore.
    Dunque, io come già detto di javascript non so niente, quindi non so perché questo codice non funzioni, né tantomeno so cosa di preciso esso faccia . L'unica parte che ho capito è quella in cui si passano i valori dell'array php $immagini all'array javascript Pic. Cosa manca in questo codice?
    Grazie della pazienza

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.