jhaustein
22-11-2004, 16:19
hallo gemeinschaft
lese aus einer csv datei daten ein - allerdings sind bei manchen zellen punkte drin - diese wollte ich mit
$test= ereg_replace (".", " ", $datenfeld[$i][6]);
ersetzen - leider steht in der variable nichts mehr drin nach dem ersetzenvorgang
was mache ich da falsch
mrhappiness
22-11-2004, 16:27
Original geschrieben von jhaustein
leider steht in der variable nichts mehr drin nach dem ersetzenvorgangin welcher?
in $test oder in $datenfeld[$i][6]?
wie hast du das festgestellt?
Original geschrieben von jhaustein
leider steht in der variable nichts mehr drin nach dem ersetzenvorgang
natürlich nicht, denn du hast ja auch gesagt, dass du jedes beliebige zeichen (*) ersetzen willst.
was mache ich da falsch
den üblichen jhaustein-fehler - techniken einsetzen, ohne sich auch nur im grundlegendsten über ihre funktionsweise informiert zu haben.
(*) OK, auf zeilenumbrüche matcht der ausdruck m.W. nicht.
Der Punkt ist ein Meta-Zeichen in regulären Ausdrücken. Er bedeutet: alles (jedes Zeichen). In deinem Fall schmeißt er also alles raus.
Das wär der richtige Code
$test= ereg_replace ("\\.", " ", $datenfeld[$i][6]);
//Der Backslash teilt der RegEx-Engine den Punk nicht als Meta-Zeichen zu interpretieren
Allerdings würde ich folgendes empfehlen:
$test = str_replace ('.', ' ', $datenfeld[$i][6]);
Die String-Funktionen zu benutzen ist schneller (RegEx's sind in diesem Fall auch nicht nötig, da du auf keinen komplexen String prüfen musst).
Edit: Verdammt, da braucht man mal länger als 30 Sekunden für das Posting und schon sind zwei andere da, die schneller antworten :p
jhaustein
22-11-2004, 16:31
hi
mit echo hab ich es getestet
echo $datenfeld[$i][6]; -- dort steht diese zahl 2.001
dann hab ich getestet ob der ereg_replace (".", " ", $datenfeld[$i][6])befehl funzt indem ich mal den punkt durch eine 0 ersetzet habe und den term der danach stehen soll (in diesem fall sollte es ja gelöscht werden) durch einen buchstaben (hier ein a) - dann stand da dort 2.aa1
jhaustein
22-11-2004, 16:33
@Nezzar
vielen dank - das wars