Array-Problem; ereg

Shiivva

Erfahrenes Mitglied
Hi! Folgendes Problem tat sich grad auf:

Nehmen wir mal an, ich würde über ein Input-Feld Daten zu meiner
MySQL-Datenbank hinzufügen wollen und was er da hineinschreibt wird aus einer zwischengespeicherten Datei geholt.

Wenn ich da irgendwo in meiner temporären Datei so etwas wie:

Das höre ich zur Zeit: [VARIABEL].

stehen hab,
([VARIABEL] meint, dass da immer was anderes stehen kann, aber vom "Schema" sieht es immer so aus.)

wie bekomme ich dann beim Speichern in meine MySQL-Datenbank, den Punkt . weg?

Vielleicht ist auch mein "Such"ereg schon falsch (?)

Code:
$temp = fopen("temp.dat","r");
while ($zeile = fgets($temp, 15000))
  {
  if (ereg("Das höre ich zur Zeit: (.*).",$zeile,$array));
  $this->titel=$array[1];
  } 

fclose($temp);
$titel=$this->titel;

Mit ereg_replace hab ich es schon ausprobiert, aber das geht vermutlich wg. dem (.*) nicht...

Weiss da jemand Rat? Oder steh ich grad einfach nur aufm Schlauch?
 
Bei der Regexp solltest du den . am Schluss escapen. Und das ; bei der Zeile mit der if-Abfrage muss raus, das ist nämlich eine Nullanweisung. Die Zeile darunter wird also immer abgearbeitet.

Ansonsten könntest du das ja auch mit substr() machen, wenn nur ein bestimmter Teil variabel ist.


reima
 
hmm.. schonmal so probiert?

PHP:
$temp = fopen("temp.dat","r");
while ($zeile = fgets($temp, 15000))
  {
  if (ereg("Das höre ich zur Zeit: (.*).",trim($zeile),$array));
  $this->titel=$array[1];
  } 

fclose($temp);
$titel=$this->titel;

aber so hast du doch immer nur den eintrag der letzten zeile, soweit ich das durchblicke..
 
trim war goldrichtig! danke :)

oben hatte sich das ; nur beim reinschreiben reingemogelt...

JETZT geht alles wie es soll.

Danke für Eure Hilfe.
 
hm, wenn da jetzt kein Punkt ist, dann löscht er mir jetzt dennoch das letzte Zeichen bzw. den letzten Buchstaben. Warum?
 
PHP:
if (ereg("Das höre ich zur Zeit: (.*)\.",$zeile,$array));

der punkt steht ansonsten einfach für irgendein zeichen, nicht nur einen punkt, darum: entwerten wir ihn.

[edit]hm... das forum unterschlägt den strich davor,. es soll jedenfalls ein \ backslash dahin.
 
Zurück