Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
eresetzen klappt nicht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
eresetzen klappt nicht


 
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?

 
wahsaga
22-11-2004, 16:28 
 
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.

 
Nezzar
22-11-2004, 16:30 
 
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:12 Uhr.