WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 28.08.2003, 10:51   #1
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
Standard dateien zeilenweise einlesen mit php

ich will einige text files zeilenweise einlesen, mit php ja kein problem. gibt es nun aber eine einfache möglichkeit dazwischen bestimmte aktionen durchzufürhen? (zb zeilenumbruch oder sonderzeichen im code einbauen)

zb: zeile1 einlesen => "
" einbauen => zeile2 einlesen
spunz ist offline   Mit Zitat antworten
Alt 28.08.2003, 20:03   #2
snowman
Inventar
 
Registriert seit: 26.09.1999
Beiträge: 2.569


Standard

du kannst die datei in einen array einlesen:


$dateiarray = file ('http://www.domain.com/file.txt');

foreach ($dateiarray as $zeile) {
echo htmlspecialchars($zeile) . "
\n";


gruss,
snowman
____________________________________
MediaMarkt? Ich bin doch nicht blöd, Mann!

Vorsprung durch Technik

Lesen Sie keine Anleitungen, FAQs, Readme - Files. Reine Zeitverschwendung. In den Newsgroups und Foren gibt es genug kompetente Leute, die mit großer Geduld immer wieder dieselben einfachen Fragen beantworten. Völlig kostenlos noch dazu!
snowman ist offline   Mit Zitat antworten
Alt 28.08.2003, 20:09   #3
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Wenn du deinen Speicher nicht irrtümlich mit einer großen Datei zumüllen willst solltest du file() nicht verwenden.

Folgendes geht davon aus, dass du wirklich immer nur eine Zeile brauchst:

PHP-Code:
$fh fopen($path'r');
while (!
feof($fh)){
  
$buff fgets($fh);
  
// irgendwas mit $buff anstellen
}
fclose($fh); 
Das hilft aber auch nichts, wenn in der Datei zig MB in nur einer Zeile stehen...

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 28.08.2003, 22:34   #4
Irmi
Senior Member
 
Registriert seit: 15.09.2002
Beiträge: 141


Standard

Zitat:
Das hilft aber auch nichts, wenn in der Datei zig MB in nur einer Zeile stehen...

Daher gibt's bei fgets auch einen 2. Parameter, wo man die max. Buffersize angibt

Nur so als Ergänzung:
In einem File gibt es eigentlich gar keine Zeilen, das wurde nur bei Textfiles zum einfacheren Verständnis eingeführt, genauso wie der Textmodus. In Wirklichkeit ist ein File binär aufgebaut und Zeilen sind nichts anderes als \r\n.
Wenn jemand ein 10MB TIF-File öffnet und mit fgets einliest ohne den 2. Parameter, dann ist die Wahrscheinlichkeit sehr hoch, dass 10MB auf einmal eingelesen werden, da \r\n nicht zwingend vorkommen muss. Daher sollte man auf den 2. Parameter nicht verzichten
____________________________________
Liebe Grüße,
Christian
Irmi ist offline   Mit Zitat antworten
Alt 29.08.2003, 06:06   #5
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

wobei - wenn ich mich nicht irre - noch hinzukommt, dass eine neue zeile auf unterschiedlichen systemen anders definiert ist


unix: \n
windows: \n\r (oder \r\n weiß ich net)
mac: ich glaub nur \r
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 29.08.2003, 07:51   #6
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
Standard

problem: der php code kann leider nicht verwendet werden, der text soll ich ein java script eingebaut werden. leider funktioniert das script nicht wenn der php code zum einlesen eingebaut wird (zb mit nem einfachen <?PHP readfile("fertig.txt"); ?> ) daten mit javascript einlesen scheint zumindest laut selfhtml nicht wirklich gut zu funktionieren, gibts noch andere alternativen?

PHP-Code:
<SCRIPT LANGUAGE="JavaScript1.2" SRC="graph.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
if(parseInt(navigator.appVersion) >= 4) {
var p = new Graph(200,200);
p.scale = 3000;
p.yLabel = "Bytes";
p.xLabel = "Datum";
p.setXScale("",1);
p.setDate(8,27,2003);
p.setLegend("SVNL01","SVWIEN01","SVGRAZ01");
p.addRow( 100

[b]hier soll die textdatei reinkommen[/b] 

 );
p.build();

} else {
  document.writeln("<IMG ALT=\"Upgrade to Communicator!\" SRC=\"exb3.gif\">");
}
</SCRIPT> 
spunz ist offline   Mit Zitat antworten
Alt 29.08.2003, 10:22   #7
snowman
Inventar
 
Registriert seit: 26.09.1999
Beiträge: 2.569


Standard

probier mal das einlesen via php vor dem javascript zu machen und nur die im variable im javascript zu parsen.

oder:
http://at.php.net/manual/en/ref.image.php

gruss,
snowman
____________________________________
MediaMarkt? Ich bin doch nicht blöd, Mann!

Vorsprung durch Technik

Lesen Sie keine Anleitungen, FAQs, Readme - Files. Reine Zeitverschwendung. In den Newsgroups und Foren gibt es genug kompetente Leute, die mit großer Geduld immer wieder dieselben einfachen Fragen beantworten. Völlig kostenlos noch dazu!
snowman ist offline   Mit Zitat antworten
Alt 29.08.2003, 12:04   #8
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Zitat:
Original geschrieben von Irmi
Daher gibt's bei fgets auch einen 2. Parameter, wo man die max. Buffersize angibt
Stimmt
Zitat:
Nur so als Ergänzung:
In einem File gibt es eigentlich gar keine Zeilen, das wurde nur bei Textfiles zum einfacheren
...
da \r\n nicht zwingend vorkommen muss. Daher sollte man auf den 2. Parameter nicht verzichten
Stimmt auch.

Er schrieb aber explitzit Textdateien, deshalb auch mein Vorschlag mit fgets() ohne zweiten Parameter.


@spunz

Code:
<script>
var Zeilen = new Array();
<?php
$i = 0;
$fh = fopen($path, 'r');
while (!feof($fh)){
  printf('Zeilen[%u] = "%s";', $i++, 
    str_replace('"', '\"', 
      preg_replace('/(\n\r|\r|\n){1}/', '\\n', 
        fgets($fh)
      )
    )
  );
  echo "\n";
}
fclose($fh);
?>
</script>
~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 29.08.2003, 13:05   #9
Irmi
Senior Member
 
Registriert seit: 15.09.2002
Beiträge: 141


Standard

@Käptn:

Zitat:
Er schrieb aber explitzit Textdateien, deshalb auch mein Vorschlag mit fgets() ohne zweiten Parameter.
Ja, ich wollte Dir damit auch nicht zu nahe treten
Sollte nur eine Ergänzung sein...
____________________________________
Liebe Grüße,
Christian
Irmi ist offline   Mit Zitat antworten
Alt 29.08.2003, 13:18   #10
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Kein Problem, hab' ich auch nicht so empfunden.

Wahrscheinlich halte ich mich immer zu kurz.

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:18 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag