• Bannato User Attivo

    @Senamion said:

    Se quella lista è su un file devi fare:

    >
    $indirizzi = file("lista.txt");
    foreach ($indirizzi AS $indirizzo)
      // QUI LANCI LO SCRIPT DI INVIO EMAIL A $indirizzo
    
    >```
    
    posso fare anche una cosa del genere?
    
    file.dat
    nome1-nome2
    nome3-nome4
    nome5-nome6
    
    $indirizzi = file("file.dat");
    foreach ($indirizzi AS $indirizzo){
      // QUI LANCI LO SCRIPT DI INVIO EMAIL A $indirizzo
    $pieces = explode("-", $indirizzo);
    print "$pieces[0] and $pieces[1]";
    }
    
    ottengo però solo l'ultimo risultato...se io volessi ottenerli su ogni riga sempre con due risultati, il primo diviso da - che il secondo sempre della stessa riga ogni volta?

  • User Attivo

    Non ho ben capito cosa intendi, intanto ti consiglio (per chiarezza di codice, di usare CODE e /CODE (tra quadre).
    Poi se questa riga:

    
    $pieces = explode("-", $indirizzo);
    print "$pieces[0] and $pieces[1]";
    
    

    la trasformi così:

    
    list($primo, $secondo) = explode("-", $indirizzo);
    print "$primo and $secondo";
    
    

    Riesci a capire meglio i tuoi campi (ma questo è un consiglio generale).

    Venendo al tuo problema non ho capito come mai ottieni solo l'ultimo risultato, in realtà la print la fai nel ciclo quindi dovrebbe stampartela 3 volte.
    Semmai dopo la lettura del file prova a mettere:

    
    print_r($indirizzi);
    
    

    per vedere cosa hai dentro l'array!


  • Bannato User Attivo

    si possono mettere constanti dentro foreach?

    del tipo:

    [PHP]$indirizzi = file("lista.txt");
    foreach ($indirizzi AS $indirizzo){
    if ($indirizzo == 'parola'){
    echo "si bravo è uguale a parola";
    }else{
    //non viene visualizzato nulla
    }
    }[/PHP]

    lo chiedo perchè a me non funziona....forze sbaglio qualcosa :mmm:

    cioè se per esempio faccio una constante specificando una parola che troverò in un solo record la cosa funziona

    ma se io specifico in una constante un carattere che poi lo trova su due o più record allora non funziona più niente....

    è un mistero :():

    volevo fare un controllo se su quel record c'era yes allora inviare un e-mail se c'era no niente....boh mentre aspetto qualche risposta controllo quello script della scorsa volta se riesce a funzionarmi all'interno di un altro foreach :mmm:


  • User Attivo

    Nel txt c'è una riga dove c'è scritto 'parola'?
    Può anche essere che fallisce il controllo di uguale perchè c'è qualche spazio, prova a fare trim($indirizzo)


  • Bannato User Attivo

    @Senamion said:

    Nel txt c'è una riga dove c'è scritto 'parola'?
    Può anche essere che fallisce il controllo di uguale perchè c'è qualche spazio, prova a fare trim($indirizzo)

    ho editato sopra 😄

    comunque nel txt ho tipo questo:

    [email][email protected][/email]<~>Alessiofbt<~>yes
    [email][email protected][/email]<~>Ciaos<~>no
    [email][email protected][/email]<~>Alessiofbt2<~>no


  • Bannato User Attivo

    uhm....domanda che mi è utile per completare il sistema di invio

    restando sempre sulla stessa lista

    [PHP][email protected]
    [email protected]
    [email protected]
    [email protected] [/PHP]

    se io volessi inviare l'e-mail a tutti questi...ma tranne che [email][email protected][/email] che quindi viene specificato...come posso fare?


  • User

    @alessiofbt said:

    uhm....domanda che mi è utile per completare il sistema di invio

    restando sempre sulla stessa lista

    [php][email protected]
    [email protected]
    [email protected]
    [email protected] [/php]

    se io volessi inviare l'e-mail a tutti questi...ma tranne che [EMAIL="[email protected]"][email protected][/EMAIL] che quindi viene specificato...come posso fare?

    Pottresti mettere un controllo..
    Nella lista email crei una divisione..
    [php][email protected]|1
    [email protected]|0
    [email protected]|1
    [email protected]|1[/php]

    Nel codice fai:

    $arrIndirizzi = file("lista.txt");
    foreach ($arrIndirizzi AS $strIndirizzo) {
         $arrTmp = explode('|', $strIndirizzo);
         if (intval($arrTmp[1]) == 1) {
              mail($arrTmp[0], "Oggetto dell E-Mail", "Messaggio dell E-Mail", "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nFrom: nome-sito.com <[email protected]>\r\nReply-To: [email protected]\r\nX-Mailer: PHP/".phpversion()");
         }
    }
    

    Non ho testato il script, quindi può essere che ci sia qualche errore...


  • Bannato User Attivo

    [PHP]if (intval($arrTmp[1]) == 1) {[/PHP]

    e se io anzichè usare un informazione contenuta dentro il file divisa con | volessi usare una variabile esterna?

    del tipo

    [PHP]if (intval($variabile) == 1) {[/PHP]

    $variabile che specifico righe prima...posso farlo? ho visto che ci sono problemi nel farlo... :mmm:


  • Bannato User Attivo

    @alessiofbt said:

    [PHP]if (intval($arrTmp[1]) == 1) {[/PHP]

    e se io anzichè usare un informazione contenuta dentro il file divisa con | volessi usare una variabile esterna?

    del tipo

    [PHP]if (intval($variabile) == 1) {[/PHP]

    $variabile che specifico righe prima...posso farlo? ho visto che ci sono problemi nel farlo... :mmm:

    up :sbav:


  • User

    @alessiofbt said:

    [php]if (intval($arrTmp[1]) == 1) {[/php]

    e se io anzichè usare un informazione contenuta dentro il file divisa con | volessi usare una variabile esterna?

    del tipo

    [php]if (intval($variabile) == 1) {[/php]

    $variabile che specifico righe prima...posso farlo? ho visto che ci sono problemi nel farlo... :mmm:

    spiegati meglio...


  • Bannato User Attivo

    @Andriy said:

    spiegati meglio...

    praticamente tutto questo script lo sto facendo per le notifiche via e-mail in una piattaforma forum, cosi che quando uno risponde tutti quelli iscritti alla discussione ricevono la notifica.... però non voglio che poi che se risponde lo stesso che ha sottoscritto la discussione riceve le notifiche dei messaggi che ha scritto lui.... capito? 😄

    l'utente ha questa variabile fissa $user_env e viene riconosciuto con tale