eMailadressen in txt exportieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

QCO hat geschrieben:Ich weiß was unset macht, aber was soll das hier bringen?
Meine Variablen sind initialisiert, warum sollte ich mit unset rumwerkeln?
wollte nur damit ausdrücken das ich eher eine Variable aus dem Speicher kicke als das ich dieser einen Standardwert übergebe.
Benutzeravatar
mtsluft
Mitglied
Beiträge: 413
Registriert: 03.12.2005 18:54
Kontaktdaten:

Beitrag von mtsluft »

Code: Alles auswählen

<?
// eMailadressen aus phpBB Tabelle exportieren
  mysql_connect("localhost(Server)",  "Username","Passwort"); //Datenbank connect
  mysql_select_db("Datenbank"); //Datenbank auswählen
  $ergebnis = mysql_query("SELECT user_email FROM phpbb_users");
       if (!$ergebnis) {
                     echo 'Fehler: ' . mysql_error();
                    exit;
                  }
  $datei = fopen("email.txt","w");
         while ($row = mysql_fetch_array($ergebnis, MYSQL_NUM)) {
                  if ($row[0]!="") { //Prüfen ob eMailfeld leer ist                  
                  printf ($row[0] . "<br>"); //Ausgabe auf Bildschirm
                  fwrite($datei, $row[0]. "\n"); //Ausgabe in Datei
                  }
      }
  fclose($datei);
echo "<br><b>Fertig</b>";
 ?>

Hallo,

kann mir mal einer sagen, WO ich da WELCHE datein (pw und so) meiner datenbank einsetzen soll???
Benutzeravatar
Ivan
Mitglied
Beiträge: 267
Registriert: 28.12.2004 17:26
Wohnort: Mössingen, BW
Kontaktdaten:

Beitrag von Ivan »

Hier:

Code: Alles auswählen

  mysql_connect("localhost",  "Username","Passwort"); //Datenbank connect 
Der Götterbote - Die Zeitung von The-Arena
Benutzeravatar
mtsluft
Mitglied
Beiträge: 413
Registriert: 03.12.2005 18:54
Kontaktdaten:

Beitrag von mtsluft »

Aber wo trage ich den NAMEN meiner DB ein??
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

mtsluft hat geschrieben:Aber wo trage ich den NAMEN meiner DB ein??
Mit dem lesen klappts aber ansonsten? Steht doch als Kommentar im Code!

mysql_select_db("Datenbank"); //Datenbank auswählen
Blutgerinsel hat geschrieben:
QCO hat geschrieben:Ich weiß was unset macht, aber was soll das hier bringen?
Meine Variablen sind initialisiert, warum sollte ich mit unset rumwerkeln?
wollte nur damit ausdrücken das ich eher eine Variable aus dem Speicher kicke als das ich dieser einen Standardwert übergebe.
Vollkommen richtiger Weg, man beachte auch einen der Userkommentare auf php.net:
In addition to what timo dot hummel at 4fb dot de said;

>For the curious: unset also frees memory of the variable used.
>
>It might be possible that the in-memory size of the PHP Interpreter isn't reduced, but your scripts won't touch the memory_limit boundary. Memory is reused if you declare new variables.

It might be worth adding that functions apparently don't free up memory on exit the same way unset does..
Maybe this is common knowledge, but although functions destroys variables on exit, it (apparently) doesn't help the memory.

So if you use huge variables inside functions, be sure to unset them if you can before returning from the function.

In my case, if I did not unset before return, then the script would use 20 MB more of memory than if I did unset.
This was tested with php 5.0.4 on apache 2 on windows xp, with no memory limit.

Before I did the test, I was under the impression that when you exit from functions, the memory used inside it would be cleared and reused. Maybe this should be made clear in the manual, for either unset() or in the chapter for functions.
Benutzeravatar
mtsluft
Mitglied
Beiträge: 413
Registriert: 03.12.2005 18:54
Kontaktdaten:

Beitrag von mtsluft »

Ok danke jetzt klappts! :)
Leiki
Mitglied
Beiträge: 5
Registriert: 26.06.2012 00:17

Re: eMailadressen in txt exportieren

Beitrag von Leiki »

Da dieser Beitrag wohl durchaus noch interessant sein dürfte (ich bin jedenfalls per Googlesuche darauf aufmerksam geworden), möchte ich noch einen kleinen Zusatz im Code anfügen:

Code: Alles auswählen

<?
// eMailadressen aus phpBB Tabelle exportieren
  mysql_connect("localhost(Server)",  "Username","Passwort"); //Datenbank connect
  mysql_select_db("Datenbank"); //Datenbank auswählen
  $ergebnis = mysql_query("SELECT user_email FROM phpbb_users" WHERE user_allow_massemail != 0");
       if (!$ergebnis) {
                     echo 'Fehler: ' . mysql_error();
                    exit;
                  }
  $datei = fopen("email.txt","w");
         while ($row = mysql_fetch_array($ergebnis, MYSQL_NUM)) {
                  if ($row[0]!="") { //Prüfen ob eMailfeld leer ist                  
                  printf ($row[0] . "<br>"); //Ausgabe auf Bildschirm
                  fwrite($datei, $row[0]. "\n"); //Ausgabe in Datei
                  }
      }
  fclose($datei);
echo "<br><b>Fertig</b>";
 ?>
Die Ergänzung "WHERE user_allow_massemail != 0"" sorgt dafür, dass nur die Emailadressen herausgesucht werden, deren User erlaubt haben, dass sie von Administratoren benachrichtigt werden dürfen.
Im Falle eines Newsletters sollte darauf auf jeden Fall Rücksicht genommen werden, da es sonst zu unangenehmen Situationen führen könnte.
Antworten

Zurück zu „Coding & Technik“