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 |
02.03.2009, 13:53:26
|
Anfänger
|
|
Registriert seit: Feb 2009
Alter: 49
Beiträge: 12
|
|
Daten aus einer Text Datei lesen
Tach ich hab da ein Problem und hoffe es kann mir jemand helfen.Ich habe eine Textdatei aus der ein Eintrag ausgelesen werden soll.Es sollen 3 Zeilen ausgegeben werden ich bekomme aber nur 2 und die auch noch an der falschen stelle ich hab mal versucht das zu zeigen und zu beschreiben.Danke im voraus.
______________________________________________________________________
Autor: hallo - das ist der eingegebene Text der sollte eine Reihe weiter oben stehen
Betreff: andre bye - und hier ist die zweite und dritte zeile zusammen ausgegeben worden
weil andre müßte eigentlich in die Zeile Autor. Und bye sollte in der
Zeile Betreff bleiben. Nur leider sehe ich den Fehler nicht.
______________________________________________________________________
Hier kommt das dazu gehörige Script:
forum.php
<?
include("forumfunktionen.php");
if (isset($_POST["text"]))
{
beitrag_hinzufuegen();
}
include("beitraege.php");
?>
<html>
<head>
<title>Forum</title>
<meta name="author" content="diazlopez">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<h1>Willkommen beim Forum</h1>
<b>Sagen Sie Ihre Meinung</b> <p/>
<?php formular_anzeigen()?>
<hr>
<?php
for($i=0; $i < count($beitrag); $i++)
{
beitrag_ausgeben($beitrag[$i]);
}
?>
</body>
</html>
forumfunktionen.php
<?php
function beitrag_ausgeben($beitrag)
{
print $beitrag["text"];
print "<br>Autor: ";
print $beitrag["autor"];
print "<br>Betreff: ";
print $beitrag["betr"];
print "<hr> ";
}
function beitrag_hinzufuegen()
{
global $text, $autor, $betr;
$texte = file("beitraege.txt");
$neuer_text = $_POST["text"];
$letzter_textindex = count($texte)-2;
if (trim($texte[$letzter_textindex]) !=$neuer_text)
{
$datei = fopen("beitraege.txt","a");
fputs($datei, "\n$neuer_text\n");
fputs($datei, $_POST['autor']."\n");
fputs($datei, $_POST['betr']."\n");
fclose($datei);
}
}
function formular_anzeigen()
{
?>
<form action="forum.php" method="post">
Text : <input type="text" size=50 name="text"> <br>
Autor: <input type="text" size=20 name="autor"> <br>
Betreff: <input type="text" size=20 name="betr"> <p>
<input type="submit" value="Abschicken">
</form>
<?php
}
?>
beitraege.php
<?php
$datei = fopen("beitraege.txt","r");
$i = 0;
while(!feof($datei))
{
$beitrag[$i]["text"] = fgets($datei, 1024);
$beitrag[$i]["autor"] = fgets($datei, 1024);
$beitrag[$i]["betr"] = fgets($datei, 1024);
$i++;
}
fclose($datei);
?>
Danke!!!
|
02.03.2009, 14:29:04
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Daten aus einer Text Datei lesen
Hab in der funktionen.php mal den ersten Zeilenumbruch entfernt.
Benutze ich eine leere beitraege.txt funktioniert alles wie gewünscht.
Betroffene Zeile:
PHP-Code:
fputs($datei, "$neuer_text\n");
|
03.03.2009, 10:33:46
|
|
Anfänger
|
|
Registriert seit: Oct 2008
Ort: Freden
Alter: 35
Beiträge: 37
|
|
AW: Daten aus einer Text Datei lesen
Moin!
Ich vermute das Problem in:
PHP-Code:
// forum.php
<?
beitraege.php
<?php
$datei = fopen("beitraege.txt","r");
$i = 0;
while(!feof($datei))
{
$beitrag[$i]["text"] = fgets($datei, 1024);
$beitrag[$i]["autor"] = fgets($datei, 1024);
$beitrag[$i]["betr"] = fgets($datei, 1024);
$i++;
}
fclose($datei);
?>
Du liest mit fgets nicht jede Zeile, sondern jeweils immer 1024 bytes aus der Datei.
Wenn du die Datei Zeilenweise lesen willst, solltest du file() benutzen.
MfG
Carsten
|
03.03.2009, 11:30:46
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
AW: Daten aus einer Text Datei lesen
Zitat:
Du liest mit fgets nicht jede Zeile, sondern jeweils immer 1024 bytes aus der Datei.
|
Da wäre ich mir an deiner Stelle nicht so sicher!
|
03.03.2009, 12:03:49
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Daten aus einer Text Datei lesen
Zitat:
Zitat von CeBe
Du liest mit fgets nicht jede Zeile, sondern jeweils immer 1024 bytes aus der Datei.
Wenn du die Datei Zeilenweise lesen willst, solltest du file() benutzen.
MfG
Carsten
|
fgets liest die Datei soweit ein bis:
1. ein Zeilenumbruch erreicht wird
2. Das Ende der Datei erreicht wird
3. die angegebene Menge an bytes erreicht wird.
4. ist kein Bytewert angegeben wird vorerst bis 1024 Bytes eingelesen.
Je nach dem was eher eintritt.
|
03.03.2009, 23:45:36
|
|
Anfänger
|
|
Registriert seit: Oct 2008
Ort: Freden
Alter: 35
Beiträge: 37
|
|
AW: Daten aus einer Text Datei lesen
Zitat:
Zitat von urvater
fgets liest die Datei soweit ein bis:
1. ein Zeilenumbruch erreicht wird
2. Das Ende der Datei erreicht wird
3. die angegebene Menge an bytes erreicht wird.
4. ist kein Bytewert angegeben wird vorerst bis 1024 Bytes eingelesen.
Je nach dem was eher eintritt.
|
Okay, das stimmt, es tut aber nur in einem Fall (1.) das, was er will.
Verstehe grad aber erst den Aufbau der Dateien. Das Problem stammt also nicht von hier.
MfG
Carsten
|
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 03:22:09 Uhr.
|