Pagina 15 di 16 primaprima ... 5 13 14 15 16 ultimoultimo
Visualizzazione dei risultati da 141 a 150 su 156
  1. #141
    Originariamente inviato da NoR
    Wow! E funziona? Mi sa tanto di uovo di Colombo!
    di funzionare indubbiamente funziona, il problema però è che va impostata la path dell'interprete di php nel php.ini oltre al percorso al file ed ai vari parametri

    era una soluzione che avevo pensato tempo addietro che, mentre è semplice da implementare, è più complessa da applicare di volta in volta
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  2. #142
    Tempo fà ricordo che lo script mio pensava a tutto, l'unico problema era che bisognava conoscere il percorso dell'interprete (a meno che non si impostava la variabile di sistema PATH, per Windows, su Linux non ho provato quindi non so com'è la questione)

    Mi spiace solo non potervelo dare per il semplice fatto che non lo trovo più

  3. #143
    Originariamente inviato da daniele_dll
    di funzionare indubbiamente funziona, il problema però è che va impostata la path dell'interprete di php nel php.ini oltre al percorso al file ed ai vari parametri

    era una soluzione che avevo pensato tempo addietro che, mentre è semplice da implementare, è più complessa da applicare di volta in volta
    Ma l'idea ha l'indiscutibile enorme vantaggio di essere scritta in PHP, ovvero nello stesso linguaggio che sicuramente deve conoscere l'utilizzatore finale! (questo script dopotutto serve solo a noi programmatori in php...).
    Quindi è possibile usare costanti anzicché parametri...

    Io pensavo ad una cosa del genere:

    Codice PHP:
    //ATTENZIONE: QUESTO CODICE E' UNA BOZZA NON TESTATA E SCRITTA AL VOLO

    /*
    ****** sendmail.php ******

    Configure your php.ini like as:

    sendmail_path = "C:\Program Files\EasyPHP5.3.0\php\php.exe" -c "C:\Program Files\EasyPHP5.3.0\apache\php.ini" -f "C:\mail\sendmail.php"

    where 
     - "C:\Program Files\EasyPHP5.3.0\php\php.exe" is full php's path.
     - "C:\Program Files\EasyPHP5.3.0\apache\php.ini" is full path of your "php.ini" file.
     - "C:\mail\sendmail.php" is full path of this file.
    */

    define('_EMAIL_PREFIX_','email_');
    define('_EMAIL_SUFFIX_','.eml');


    $current_dirname=dirname(__FILE__);
    //Find max_count
    $max_count=0;
    if (
    $handle opendir($current_dirname)) {
        while (
    false !== ($file readdir($handle))) {
            if (
    ereg (_EMAIL_PREFIX_."([0-9]+)"._EMAIL_SUFFIX_$file$regs)) {
                if (
    $regs[1]>$max_count$max_count=$regs[1];
            }
        }
        
    closedir($handle);
    }
    $max_count++;

    //Write Email
    $f fopen($current_dirname."/"._EMAIL_PREFIX_.$max_count._EMAIL_SUFFIX_"w++");
    fwrite($ffile_get_contents("php://stdin"));
    fclose($f); 
    Non ho ancora avuto il tempo di provarlo, ma è indubbiamente semplice da usare e sufficientemente semplice da installare.

    Se avete tempo di provarla...
    Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash

  4. #144
    Bisogna commentare le variabili SMTP e smtp_port e impostare la variabile sendmail_from nel php.ini altrimenti dà errore.

    Ad occhio e croce dovrebbe funzionare

  5. #145
    mmm, una soluzione probabilmente migliore sarebbe quella di mettere come suffisso, invece che il numero della e-mail l'orario in forma di unixtimestamp cosi da averle comunque ordinate progressivamente ma snellendo considerevolmente il codice

    codice:
    define('_EMAIL_PATH_','email_'); 
    define('_EMAIL_PREFIX_','email_'); 
    define('_EMAIL_SUFFIX_','.eml'); 
    
    //Write Email 
    $f = fopen(_EMAIL_PATH_ . '/' . _EMAIL_PREFIX_ . time() . _EMAIL_SUFFIX_, "w+"); 
    fwrite($f, file_get_contents("php://stdin")); 
    fclose($f);
    ma oltre a questo, un'altra cosa importante è evitare che la memoria utilizzata per l'operazione sia eccessiva: cosi si butta tutto in memoria senza ritegno e poi scrive, sarebbe meglio leggerlo a chunk andandolo scrivendo

    codice:
    <?php
    
    define('__BUFFER_SIZE', '8192'); 
    define('__EMAIL_PATH', 'email_'); 
    define('__EMAIL_PREFIX', 'email_'); 
    define('__EMAIL_SUFFIX', '.eml'); 
    
    $fpInput = fopen('php://stdin', 'r');
    $fpOutput = fopen(__EMAIL_PATH . '/' . __EMAIL_PREFIX . time() . __EMAIL_SUFFIX, 'wb'); 
    
    while(feof($fpInput) === false)
    {
      $buffer = fread($fpInput, __BUFFER_SIZE);
      fwrite($fpOutput, $buffer);
    }
    
    fclose($fpInput);
    fclose($fpOutput);
    
    ?>
    Poi, se si vuole fare girare su linux si può anche fare

    codice:
    #!/usr/bin/php -q
    <?php
    
    define('__BUFFER_SIZE', '8192'); 
    define('__EMAIL_PATH', 'email_'); 
    define('__EMAIL_PREFIX', 'email_'); 
    define('__EMAIL_SUFFIX', '.eml'); 
    
    $fpInput = fopen('php://stdin', 'r');
    $fpOutput = fopen(__EMAIL_PATH . '/' . __EMAIL_PREFIX . time() . __EMAIL_SUFFIX, 'wb'); 
    
    while(feof($fpInput) === false)
    {
      $buffer = fread($fpInput, __BUFFER_SIZE);
      fwrite($fpOutput, $buffer);
    }
    
    fclose($fpInput);
    fclose($fpOutput);
    
    ?>
    cosi da non dover richiamare anche l'interprete dalla configurazione di php (su linux, *bsd e mac os x)
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #146
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    106
    Qualcuno ha compilato il programma anche per Mac OS X?

  7. #147
    se parli del mio programma in C no ... ma dovresti poterlo compilare senza alcuna difficoltà ... altrimenti, per comodità tua, ti conviene utilizzare quest'ultima soluzione scritta direttamente in php
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #148
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    106
    ma la riga

    #!/usr/bin/php -q

    serve anche su Mac? (considera che io sto usando xampp installato in /Applications/XAMPP)

    Questo file poi dove lo metto?

  9. #149
    Originariamente inviato da samu81
    ma la riga

    #!/usr/bin/php -q

    serve anche su Mac? (considera che io sto usando xampp installato in /Applications/XAMPP)

    Questo file poi dove lo metto?
    La riga "#!/usr/bin/php -q" serve solo su Linux per rendere eseguibile il file.

    Infatti, nello stesso post, Daniele aveva messo sia la versione "senza" riga che con.

    Suppongo tu debba usare la versione "senza" riga, da mettere in un file a parte (p.e. "/Applications/XAMPP/sendmail.php") e da lanciare con l'interprete php.

    Suppongo che dovrai modificare il file php.ini sotto xampp con qualcosa tipo
    Codice PHP:
    sendmail_path = /Applications/XAMPP/php/php.exe -/Applications/XAMPP/php/php.exe -/Applications/XAMPP/sendmail.php 
    dove
    • /Applications/XAMPP/php/php.exe è l'interprete PHP
    • /Applications/XAMPP/php/php.ini è il file di configurazione PHP
    • /Applications/XAMPP/sendmail.php è lo script PHP di Daniele (versione senza "#!/usr/bin/php -q")


    Mi scuso della "grossolanità" delle info, ma non sono un utente Mac...
    Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash

  10. #150
    è meglio metterla la riga, mac os x, cosi come freebsd, linux e i vari sistemi operativi di natura simile utilizzano l'interprete indicato nella prima riga

    andrebbe però cambiato il percorso per farlo puntare all'eseguibile del php
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.