Visualizzazione risultati 1 fino 27 di 27

Discussione: Lanciare PHP da php

  1. #1
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito Lanciare PHP da php

    Buona sera a tutti, volevo sapere se è possibile lanciare un file php all'interno di un file php ossia posso far eseguire uno script php richiamandolo da un'altro script php?

    Grazie in anticipo per la risposta.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Certamente. Tramite include(), require(), require_once(), ...
    In realtà, non viene eseguito proprio la pagina, ma è come se venisse incollato il sorgente delle pagine nel punto dove metti i vari require, require_once, etc...

    Ciao!
    Ultima modifica di alemoppo : 06-01-2013 alle ore 19.19.02

  3. #3
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    Grazie per la rapida risposta, per quello che ho capito basterebbe scrivere :

    include 'Script.php';

    per richiamare e quindi avviare lo script.php. Lo provero' e vi faro' sapere. Grazie ancora.

    EDIT:

    Scusatemi, ho letto un po' di informazioni riguardanti l'include ma non ho trovato il caso mio.

    In pratica io avrei bisogno di avviare uno script php quando un precedente php e in fase finale di esecuzione. In pratica il codice dovrebbe essere questo:

    Codice PHP:
    <?php
    ...
    ...
    ...
    Include
    'Carica_PHP_Successivo.php';
    ?>
    ma secondo voi funzionerà?

    Grazie per la risposta
    Ultima modifica di alemoppo : 06-01-2013 alle ore 22.31.56 Motivo: Non fare post consecutivi: usa il tasto "edita" per editare i messaggi

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Citazione Originalmente inviato da modugnoweb Visualizza messaggio
    ma secondo voi funzionerà?
    Cosa dobbiamo rispondere? Non consciamo né quel che vuoi fare, né il contenuto di quei file. Ancora non abbiamo la sfera di cristallo. Perché non provi?

    Ciao!

  5. #5
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Cosa dobbiamo rispondere? Non consciamo né quel che vuoi fare, né il contenuto di quei file. Ancora non abbiamo la sfera di cristallo. Perché non provi?

    Ciao!


    Non credo alemoppo che addirittura ci sia bisogno della sfera di cristallo daltronde ho fornito le informazioni che a mio parere possano servire a dare una risposta.

    Probabilmente ci sarà stata un incomprensione pertanto risponderò alle domande che mi hai posto:

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non consciamo né quel che vuoi fare, né il contenuto di quei file.
    Voglio avviare uno script php (Carica_PHP_Successivo.php) dall'interno di un'altro script PHP.

    Entrambi i file php non presentano alcun contenuto visivo difatti loro operano esclusivamente sui file presenti nel mio spazio web eseguendo operazioni di spostamento e rinominazione di questi.

    Non ho precedentemente spiegato le funzionalità dei file php in quanto a me irrilevanti per risolvere il mio quesito.

    Senza onerarti nella ricerca della sfera magica rimango in attesa di eventuali domande in merito al problema.

    Vi ringrazio anticipatamente,

    Alessandro

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Scusami, ma non ho capito il problema: perché non provi?
    Se lo script non ha nessun output visivo, produrrà degli effetti, spero... altrimenti è inutile . Quindi vedi se gli effetti si verificano includendo la pagina in altre pagine.
    Senza sapere il contenuto dei file, o comuqnue quel che vuoi fare, è impossibile rispondere.

    Ciao!
    Ultima modifica di alemoppo : 06-01-2013 alle ore 22.58.44

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Non mi reca problema (anche perché son qui per questo), ma il fatto è che dipende da cosa c'é dentro. Potrebbe funzionare come potrebbe non funzionare.
    Il fatto che si tratti di uno script che opera su file, dovrebbe funzionare, ma dipende da come è stato fatto.

    Esempio: se la pagina utilizza le sessioni, che vengono inizializzate soltanto nella pagina inclusa, se la pagina principale ha prima un output html, la pagina inclusa potrebbe non funzionare correttamente.

    In ogni caso, ti consiglio di non provare mai script non testati. Prima devi far delle prove :)

    Ciao!
    Ultima modifica di alemoppo : 06-01-2013 alle ore 23.12.12

  8. #8
    serverhost non è connesso Utente Bannato
    Data registrazione
    05-05-2012
    Messaggi
    80

    Predefinito

    alemoppo sei un genio non ce nulla da ridire su quello che affermi sul php sei un esperto con i tuoi post precedenti li ho letti e ho sempre risolto tutto grazie di dedicarti su questo forum, ti ammiro molto :-)
    Allora modugnoweb forse i file che cerchi di includere sono nella stessa cartella del file php che li richiama con un comando curl?
    Ultima modifica di serverhost : 06-01-2013 alle ore 23.23.46

  9. #9
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    alemoppo ti spiego a questo punto in particolare cosa sto facendo:

    Ho una telecamera IP che ogni 15 secondi scatta una foto e la riversa nel server; questa foto (con refresh di 15 secondi) viene visualizzata nella prima pagina del mio sito. Fin qui è tutto ok.

    Ora è sorta un'altra idea per sfruttar maggiormente la telecamera:

    ho creato uno script php che ogni minuto prende la foto e la mette in una cartella rinominando questa secondo numeri progressivi. Il tutto ha un effetto spettacolare (detto specificatamente Time Laps), vedere questa successione di foto quando arriva l'alba, il tramonto, le nuvole che si spostano velocemente ecc..

    Ma tutto questo crolla a causa del server che probabilmente mi crescia il php quando arriva in timeover; in pratica anche se imposto che il php (nel ciclo for) mi deve copiare e rinominare il file della foto fino a 600 difatto più di 212 foto mi ritrovo alla fine nella cartella.

    Pertanto dato che in fondo non è che lo script consumi cosi' tante risorse del server nella sua esecuzione ho pensato di creare un php avente il cicl for per 200 foto e al termine richiamare un'altro file che analogamente rieseguirà la stessa operazione del precedente php partendo pero' da 201.

    Per questo vorrei capire se possa funzionare...io dovrei immortalare l'alba.

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Già hai spiegato meglio .

    Purtroppo il problema del timeout non si risolve né con gli include() o simili, né con le curl.
    L'unica cosa che non ho ben presente è: perché per spostare e rinominare un file, devi modificare gli altri 200 o più file? Se sono in ordine progessivo, o ti salvi su un txt il numero a cui sei arrivato, o controlli l'ultima immagine che numero ha, quindi salvi la successiva con un numero incrementato di 1 .

    Ciao!

  11. #11
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Già hai spiegato meglio .

    Purtroppo il problema del timeout non si risolve né con gli include() o simili, né con le curl.
    L'unica cosa che non ho ben presente è: perché per spostare e rinominare un file, devi modificare gli altri 200 o più file? Se sono in ordine progessivo, o ti salvi su un txt il numero a cui sei arrivato, o controlli l'ultima immagine che numero ha, quindi salvi la successiva con un numero incrementato di 1 .

    Ciao!
    no scusami probabilmente mi sono spiegato io male, il php mi crea i primi 200 file ottenuti rinominando il file Web_Live.jpg:

    Mod_001.jpg
    Mod_002.jpg
    ...
    ..
    Mod_200.jpg

    il secondo php prosegue partendo da 200 non nuovamente da 1 altrimenti mi sovrascriverebbe i precedenti:


    Mod_200.jpg
    Mod_201.jpg
    Mod_202.jpg
    ...
    ..
    Mod_400.jpg

    quindi se funziona mi troverei 400 file cioe' da Mod_001.jpg a foto Mod_400.jpg, questo sempre se funziona.

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Ok.
    Il problema quindi è che non riesci a fare tutte e 400 (o più) foto in un'unica chiamata, perché circa a 212 foto lo script va in timeout (perché supera 30 secondi).
    Questo problema, come ho scritto sopra, purtroppo non è risolvibile soltanto con PHP.

    Potresti:

    1 - creare nuove chiamate cron
    2 - effettuare richieste tramite ajax (invocando di fatto le pagine). Quest'ultima soluzione impone che tu tenga il PC acceso

    Ciao!
    Ultima modifica di alemoppo : 06-01-2013 alle ore 23.57.36

  13. #13
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    difatto volevo evitare entrambe le soluzioni, il cron perchè siccome dovrei impostare 4-5 job al giorno ogni giorno i 200 job disponibili li vedrei sparire in meno di un mese e sia evitare di tener acceso il pc tutto il giorno.

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Purtroppo non mi viene in mente nessun'altra soluzione :v
    Comunque, hai un nuovo messaggio privato .

    ...Ma questo script deve soltanto rinominare i file? Perché potresti sfruttare i visitatori che aprono il sito, inviando richieste ajax alle pagine che riprendono il lavoro di rinominare le immagini. Non sei sicuro al 100% che ogni giorno ci sia uno o più utenti chhe aprono il sito... ma questo dipende dalle statistiche medie.

    Ciao!
    Ultima modifica di alemoppo : 07-01-2013 alle ore 00.01.04

  15. #15
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    A me sembra un lavoro che non andrebbe fatto su un webserver, ma su un VPS o un pc di casa. Ciclo for e wget, ed hai fatto.

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    In effetti ci avevo pensato, ma ha detto che non vuol tenere il pc acceso...

    Ciao!

  17. #17
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    Se deve registrare una timelapse di un'alba, non è tutto il giorno, è una mattina.

    Se invece si parla di registrarne molteplici in continuazione, decisamente un hosting web non è il posto giusto dove tentare l'impresa.

  18. #18
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    Risalve a tutti, difatto include non funziona infatti mi son ritrovato solo 200 foto nella cartella quindi solo il primo file php è stato avviato tramite il job impostato alle 5 di mattina mentre il secondo non è stato avviato al termine del precedente.

    Lo scopo finale sarebbe memorizzare 1000 foto ossia dalle 5 di mattina alle 21 di sera circa e siccome questo dovrebbe essere fatto quotidianamente mi obbligherebbe o a tener attiva impostazione di 4-5 job al giorno o a tener acceso il pc 24 ore su 24.

    Pensare di far attivare i php nel momento in cui un utente entra nel sito non sarebbe fattibile perchè dubito che qualcuno alle 5 di mattina visiti il mio sito.

    Eppure esisterà un qualcosa che mi permetti di risolvere tale problema senza dover tenere il pc acceso 24 ore su 24.

    Se qualcuno gli viene in mente un idea.....

    Saluti a tutti, Alex

  19. #19
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    Ti basta il più economico dei VPS. Magari fai un giro su http://www.lowendbox.com/ e guarda se ci sono buone offerte.

  20. #20
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    Scusatemi, avrei bisogno di un paio di info se è possibile.

    Se ad esempio creo un php con il nome 'Avvia' con tale codice:

    Codice PHP:
    <?php
    Include 'Car_Foto.php';
    ?>
    e nel php 'Car_Foto' faccio caricare le foto, il php 'Avvia' lancia il php Car_Foto e termina oppure rimane in esecuzione finchè non termina il php 'Car_Foto'.

    Inoltre il timeover dello script come avviene?

    Il server genera un timer unico per entrambi i php o ogni php ha un suo timer anche se in fondo è un php che richiama l'altro?

    Vi chiedo questo perchè ho provato questo codice:

    Codice PHP:
    <?php
    Include 'Car_Foto1.php';
    Include
    'Car_Foto2.php';
    ?>
    dove per prova i due php Car_Foto1 e Car_Foto2 caricano 1 sola foto.

    Effettivamente entrambi i php in successione vengono avviati con successo quindi terociamente funziona solo che non so il timeover come avviene ossia se il timeover è unico non ho concluso nulla se invece i time over sono distinti e per i soli php Car_Foto1 e Car_Foto1 allora avrei risolto il problema.

  21. #21
    Guest

    Predefinito

    Sei fuori strada.

    Se hai

    pagina1.php

    Codice PHP:
    <?php
    echo "Ciao";
    ?>
    e pagina2.php

    Codice PHP:
    <?php
    echo "Mondo";
    ?>
    una paginaall.php composta così
    Codice PHP:
    <?php
    include("pagina1.php");
    include(
    "pagina2.php");
    ?>
    equivale a

    Codice PHP:
    <?php
    echo "Ciao";
    echo
    "Mondo";
    ?>
    il codice dei due include viene eseguito come se fosse scritto per intero sulla pagina che include.

    e il timeout è riferito solo ed esclusivamente allo script nella sua interezza, per cui non hai 30 secondi per pagina1, 30 per pagina2, ... n*30 per paginan, ma solo 30 secondi riferiti a paginaall.php

  22. #22
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,434

    Predefinito

    Citazione Originalmente inviato da modugnoweb Visualizza messaggio
    Scusatemi, avrei bisogno di un paio di info se è possibile.

    Se ad esempio creo un php con il nome 'Avvia' con tale codice:

    Codice PHP:
    <?php
    Include 'Car_Foto.php';
    ?>
    e nel php 'Car_Foto' faccio caricare le foto, il php 'Avvia' lancia il php Car_Foto e termina oppure rimane in esecuzione finchè non termina il php 'Car_Foto'.

    Inoltre il timeover dello script come avviene?

    Il server genera un timer unico per entrambi i php o ogni php ha un suo timer anche se in fondo è un php che richiama l'altro?

    Vi chiedo questo perchè ho provato questo codice:

    Codice PHP:
    <?php
    Include 'Car_Foto1.php';
    Include
    'Car_Foto2.php';
    ?>
    dove per prova i due php Car_Foto1 e Car_Foto2 caricano 1 sola foto.

    Effettivamente entrambi i php in successione vengono avviati con successo quindi terociamente funziona solo che non so il timeover come avviene ossia se il timeover è unico non ho concluso nulla se invece i time over sono distinti e per i soli php Car_Foto1 e Car_Foto1 allora avrei risolto il problema.
    Mi sembrava di esser stato chiaro già dalla prima risposta...

    Ciao!

  23. #23
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Unhappy

    siccome inizialmente non era ben chiaro il codice php che avevo creato pensavo che nel caso in cui non si ha una vera è propria pagina da visualizzare il discorso fosse diverso.

  24. #24
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Predefinito

    Involontariamente avevo aperto qui una discussione che, date le informazioni grazie a voi acquisite, è una rindondanza al post sempre da me aperto : "Eseguire php di continuo".

    Dato che non è ne possibile raggirare il max_execution_time eseguendo ciclicamente un php o richiamando in sequenza diversi php, la soluzione più semplice per me è ridurre all'osso il codice php in maniera tale da poterlo far durare il più tempo possibile.

    Ho cercato in rete informazioni riguardanti i tempi di durata delle istruzioni per capire come ridurre al minimo i tempi di esecuzione ciclica del php ma non ho trovato nulla.

    Del resto, tranne a pagamento, non credo abbia altre alternative.

  25. #25
    modugnoweb non è connesso Utente giovane
    Data registrazione
    24-12-2012
    Messaggi
    50

    Red face

    Riducendo al minimo le righe dello script ci sono riuscito. 800 foto scattate ogni minuto, durata script 13 ore e 10 minuti. Domani provero' ad arrivare a 1000.

    Ringrazio tutti per l'aiuto.

    Il risultato del lavoro lo trovate qui:

    http://www.modugnoweb.altervista.org/time-lapse.php

    Qualsiasi consiglio è ben accetto.

    Grazie ancora.

  26. #26
    capoeiraCB non è connesso Neofita
    Data registrazione
    22-11-2004
    Messaggi
    2

    Predefinito in che modo?

    scusa Modugno ma alla fine in che modo hai risolto ?


    Citazione Originalmente inviato da modugnoweb Visualizza messaggio
    Riducendo al minimo le righe dello script ci sono riuscito. 800 foto scattate ogni minuto, durata script 13 ore e 10 minuti. Domani provero' ad arrivare a 1000.

    Ringrazio tutti per l'aiuto.

    Il risultato del lavoro lo trovate qui:

    http://www.modugnoweb.altervista.org/time-lapse.php

    Qualsiasi consiglio è ben accetto.

    Grazie ancora.

  27. #27
    Guest

    Predefinito

    Allora, questo post è un attimo un casino, non rimprovero nessuno, ma do dei consigli per fare un debug più efficente cosi da risolvere prima i problemi:

    Questo è un forum di supporto, ma nessuno è pagato per darvelo, ogniuno da quel che può nel suo tempo libero e perchè ha voglia, il php è un linguaggio di scripting, per fare una cosa ci sono mille vie, e ogni via comporta fare cose diverse nello script, che possono generare problemi di un tipo o di un altro.

    Quindi: Quando volete una mano cercate di essere più precisi possibili, spiegando cosa volete ottenere dallo script e come pensate di ottenerlo.
    Se corredate il tutto dai sorgenti è anche meglio, perchè come spiegato supra, ci sono mille modi per fare la stessa cosa.

    Esempio pratico per chi ha la testa dura:
    Codice PHP:
    - Voglio andare al supermercato ma quando entro nel mio mezzo non parte!!!

    Le domande più scontate saranno che macchina hai, se senti rumori quando giri la chiave, che carburante usi, c'è benzina?

    Poi alla fine si scopre che hai una bicicletta e hai la catena attaccata a un palo.
    (la catena potrebbe essere il limite di esecuzione del php :P :P :P)



    Detto questo:
    A parte ridurre il codice e migliorarne l'efficienza che è comunque una cosa corretta da fare, comunque vorrei dare una soluzione più efficente di quella degli include, e visto che non so come hai risolto tento di andare avanti nell debug/risoluzione cosi da dare forse una dritta a chi si ritrova nella stessa situzione:

    Capiamo prima il problema,

    Hai la ipcam che ti riversa le immagini dentro una cartella sul server e fin qui ok: domande,

    - Hai creato tu lo script della cam che carica il file nel server? Ti sarebbe possibile modificarlo?
    - Oppure la cam l'hai semplicemente configurata e fa tutto lei e non puoi modificare lo script di salvataggio?

    Altre domande:

    - I file caricati sul server vengono ogni volta sovrascritti perchè hanno lo stesso nome? Oppure hanno numero incrementale quindi hai tantissimi file e basta?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •