CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
03.04.2004, 15:38:50
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
Anzahl der Zeilen begrenzen
Hi,
Problemstellung:
Ich möchte aus einer Datei eine bestimmte Anzahl an Zeilen auslesen:
Mit dem folgenden Code klappt das auch ganz gut:
PHP-Code:
$inhalt = file("xxx/news.csv","r");
$anzahl = 2;
for($i = 0; $i < $anzahl; $i++)
{
$eintrag = explode("|",$inhalt[$i]); # inhalt zerteilen
$nr = $eintrag[0]; //Variablen definieren
$head = $eintrag[1];
$short = $eintrag[2];
$autor = $eintrag[3];
$gesamt = $eintrag[4];
$text = $eintrag[5];
$link = $eintrag[5];
echo "$head$short<br>$autor | $gesamt<hr size='1'>";
}
Wenn allerdings keine Daten in der Datei sind, werden zwei Trennzeichen untereinander dargestellt - ja das ist logisch; wie kann ich das verhindern?
Danke. thorben.
|
03.04.2004, 16:25:40
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Re: Anzahl der Zeilen begrenzen
Zitat:
Original geschrieben von thorben
Problemstellung:[/B]
Ich möchte aus einer Datei eine bestimmte Anzahl an Zeilen auslesen:
[ ...]
Wenn allerdings keine Daten in der Datei sind, werden zwei Trennzeichen untereinander dargestellt - ja das ist logisch; wie kann ich das verhindern?
|
Was Du betreibst, bezeichnet man als "Schönwetterprogrammierung".
Dein Script funktioniert nur dann zufriedenstellend, wenn alle "wohlwollend vermuteten" Annahmen auch eintreffen, denn
- Dein Script prüft nicht, ob es das File lesen darf,
- es prüft nicht, ob die Datei leer ist und
- es reagiert nicht auf leere Zeilen.
|
03.04.2004, 17:03:19
|
Anfänger
|
|
Registriert seit: Jun 2003
Beiträge: 65
|
|
Du kannst zuerst mit file_exists(Datei) prüfen, ob die Datei wirklich existiert.
Mit empty($inhalt) kannst du gucken, ob etwas in deiner Datei steht.
Das verbindest du noch if-Schleifen und es müsste besser funktionieren.
|
03.04.2004, 18:14:41
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
"Schönwetter-Programmierung" - ist ein gutes Wort, ich bin positiv eingestellt. Ich sollte diese Abfragen korrekterweise machen.
Danke für den Tip, aber eigentlich hätte ich meine Frage anders formulieren sollen:
Was muss ich tun, wenn nur eine Zeile vorhanden ist - das Resultat hierbei wäre, das ein Trennzeichen angezeigt wird. Funktioniert die Lösung dann immer noch?
|
03.04.2004, 20:55:04
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Zitat:
Original geschrieben von thorben
Was muss ich tun, wenn nur eine Zeile vorhanden ist - das Resultat hierbei wäre, das ein Trennzeichen angezeigt wird.
|
Nur mal das Prinzip:
PHP-Code:
$fname = './filename.ext';
if (! is_readable($fname)) die ('Darf File nicht lesen');
$a = file($fname);
# egal, was in der Datei stand: $a ist ein Array mit mindestens dem Index 0
for ($i=0; $i<count($a); $i++)
{
$a[$i] = trim($a[$i]); # Leerzeichen am Anfang und am Ende entfernen
if (empty($a[$i])) continue; # wenn leer, dann zum nächsten Index.
$b = explode ('|', $a[$i]); # $b besteht mindestens aus Index 0
$b[0] = trim ($b[0]); # wieder eventuelle Leerzeichen entfernen
if (empty($b[0])) continue; # zB. wenn b[0] leer ist, alles übergehen und die nächste Zeile nehmen.
printf('%s%s<br />%s | %s<hr size="1">',
$b[1], $b[2], $b[3],$b[4]);
}
# usw.
|
03.04.2004, 21:38:25
|
|
Junior Member
|
|
Registriert seit: Mar 2003
Ort: Krefeld
Beiträge: 245
|
|
Haaa, für das, was ich eigentlich vorhabe, schien mir dieses Problem am einfachsten zu bewältigen, aber heute Nachmittag war ich äußerst skeptisch - ich brauchte meinen Quelltext nur um eine Zeile ergänzen, und schon war das Problem gegessen. DANKE
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:48:04 Uhr.
|