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 |

10.06.2009, 16:12:26
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 58
Beiträge: 9
|
|
mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgeben
Hallo,
ich möchte gerne eine Datei zeilenweise auslesen und formatiert ausgeben. Mit FILE will das nicht so ganz klappen, weil in Abhängigkeit vom Inhalt des Arrays mit jede Zeile etwas anderes passieren soll. Habe ich Tomaten auf den Augen (bitte nicht ja sagen, ich habe erst vor 3 Tagen mit PHP angefangen) oder kann man so erzeugtes array NUR ausgeben?
for $i=0; $i<=1000; $i++)
{echo "danke!";}
mimatete
|

11.06.2009, 04:04:41
|
 |
Anfänger
|
|
Registriert seit: Oct 2008
Ort: Freden
Alter: 36
Beiträge: 37
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Zitat:
Zitat von mimatete
ich möchte gerne eine Datei zeilenweise auslesen und formatiert ausgeben. Mit FILE will das nicht so ganz klappen, weil in Abhängigkeit vom Inhalt des Arrays mit jede Zeile etwas anderes passieren soll.
|
Poste doch mal, wie du es versucht hast, dann können wir dir sagen, was du falsch machst.
btw: Code bitte direkt formatieren, da gibts so nen schicken Button über dem Feld hier. ;-)
Zitat:
Zitat von mimatete
Habe ich Tomaten auf den Augen (bitte nicht ja sagen, ich habe erst vor 3 Tagen mit PHP angefangen)
|
Ja hast du, weil du es erst seit 3 Tagen kennst.
Mein Tipp:
http://tut.php-quake.net/de/
http://www.php.net/
Zitat:
Zitat von mimatete
oder kann man so erzeugtes array NUR ausgeben?
|
Was meinst du damit?
Mehr Code und mehr Erklärung bitte :-)
MfG
Carsten
|

11.06.2009, 11:48:44
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 58
Beiträge: 9
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Viellen Dank für die Blumen.
OK, hier ein wenig code, auch wenn ich mein Problem fast gelöst habe, aber mit "~" und explode. Da werden wohl keine Zeilen, sondern Strings gespeichert.
PHP-Code:
$ausgabe = file("auswertung.txt");
for ($i=0; $i<count($ausgabe); $i++)
{
if ($ausgabe[$i] == "verlinkt")
{
$i++;
$n = $i + 1;
echo "<a href=\"mailto:$ausgabe[n]\">$ausgabe[i]</a>";
$i = $i+2;
}
elseif ($ausgabe[$i] == "geheim")
{
$i++;
echo "$ausgabe[i]";
$i = $i+2;
}
echo "ausgabe[$i]";
}
Falls ich hier einen Syntaxfehler eingebaut habe (ein $, " oder ; vergass), war es im Original nicht dabei. Es muss irgend ein logischer Fehler sein. Vielleicht doch in den Typen?
Ich habe schon den Inhalt der if-Anweisung zu "sage gefunden" verkürzt, aber die Schleife wird als einzige abgearbeitet.
Die Datei besteht aus Zeilen:
verlinkt (oder eben geheim)
name
mail@mail.de
text text text
also ein Gästebuch.
Ich weiss - man könnte auf fertige greifen, oder sich Code holen. Aber ich möchte gerne in Rahmen von Beschäftigungstherapie eben PHP lernen. Muss ich hier schreiben, dass ich mal in Pascal, C, Cobol, Pearl, Java und VB auch schon etwas machte? Aber es ist sehr lange hier mit unangenehmen "Sachen" dazwischen die mir vieles vergessen liesen.
Aus Erfahrung weiss ich, dass man am besten mit einem Projekt lernt. Und natürlich mit einigen Foren-Helfer :)
Es dankt
mimatete
Geändert von vt1816 (11.06.2009 um 12:49:55 Uhr)
Grund: Verhaltensregeln im SelfPHP-Forum
|

11.06.2009, 12:09:17
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 58
Beiträge: 9
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
man sollte vielleicht den Feldern hier die value-option einbauern.
mein ganzer Text ist wohl flöten gegangen, weil ich mich das zweite mal anmelden musste.
Und bitte nicht gleich beleidigen. PHP ist die siebte "Sprache" (ich weis, dass es keine ist), die ich erlerne. Eigentlich nur die Syntax, weil PAP immer gleich ist.
Und ich mache es als $Beschäftigungstherapie ( = "langweile").
Ich möchte ein Gästebuch ohne db machen. Durch ein Projekt lernt man am besten.
Jetzt habe ich das Gesamte auf explode mit "~" umgestellt und es funzt.
Nur die Ausgabe ist noch nicht schön (zu mehrfach und überschreibt *hihi*).
Wahrscheinlich war das Prob, dass Zeilen mit Strings nicht vergleicht werden dürfen. Aber darüber habe ich noch nirgendwo gelesen. Ja, leider sind die Syntax-bücher und-seiten nicht immer gut und zu allgemein.
Übrigens - man hätte diese Frage hier beantworten können.
Meine Übungen stehen unter www.meinphp.mimatete.de , das Gästebuch ist die p3.php.
Danke (auch für die Blumen)
mimatete
|

11.06.2009, 12:27:28
|
 |
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Hallo mimatete, solange du dein PHP Code nicht in den PHP Tags des Forums einbettest, und somit die lesbarkeit um ein vielfaches erhöhst, werden dir nur die wenigen helfen die sich nicht daran stören.
[php ] dein code [/php ]
wir sehen uns wieder wenn du uns entgegen gekommen bist. ( :
|

11.06.2009, 12:29:58
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 49
Beiträge: 1.938
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Zitat:
Zitat von mimatete
mein ganzer Text ist wohl flöten gegangen, weil ich mich das zweite mal anmelden musste.
|
daran sollte es nicht liegen - die texte bleiben i.d.r. nach erneuter anmeldung (eingabefelder in der mitte der seite) erhalten.
Zitat:
Zitat von mimatete
PHP ist die siebte "Sprache" (ich weis, dass es keine ist)
|
wie jetzt - was ist php denn sonst ?
cx
|

11.06.2009, 12:36:38
|
 |
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Wahrscheinlich meinte er dir Unterteilung in eine Scriptsprache.
|

11.06.2009, 13:11:52
|
 |
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Evtl. stolperst du darüber, dass jede Zeile in der Datei mit einen Zeilenumbruch (je nach Betriebssystem \n, \r oder \r\n) abgeschlossen ist und diese Zeilenendezeichen auch durch file() nicht entfernt werden. Es bietet sich also an, diese Zeichen vor Stringvergleichen (==, !=) mit trim() oder rtrim() zu entfernen.
|

11.06.2009, 15:34:56
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 58
Beiträge: 9
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
vielen Dank für die sehr aufmunternde Worte.
Wenn ich in einem PHP-Forum poste nehme ich an, dass ich PHP-Fragen stelle und die PHP-scriptsprache benutze. Ihr nicht?
Jetzt wollte ich gerade eine Frage stellen und ein Code-Fragment posten:
PHP-Code:
$element = explode('~',$eintrag[$i]);
if ($element[4] == "geheim")
Ich habe gehofft, dass für jemanden, der in PHP sitzt sofort klar ist, was so ein Schnippsel soll: hier soll in Abhängigkeit von einem Eintrag (steht im vierten arrayFeld "geheim" oder "verlinkt"?) einiges formatiert werden, aber es haut nicht so ganz hin. Ohne if-Anweisung klappt mit der Formatierung.
Deswegen wollte ich wissen, ob man ein String, hier mein "geheim" eben, mit dem Inhalt eines Arrays vergleichen kann, oder in anderer Sprache - ob dieser Vergleich ein Sinn macht.
Ich habe jeden Fragment meines Scriptes einzeln überprüft.
In dem element-ARRAY steht, was stehen soll.
Das gesammte schaut so aus:
PHP-Code:
<?
$eintrag = file("auswertung.txt");
$temp = count($eintrag)-1;
for ($i=$temp; $i>=0 ; $i--)
{
$element = explode('~',$eintrag[$i]);
if ($element[4] == "geheim")
{ $test .= "<table><tr><td>".$element[0]."</td><td><b>"." - ".$element[1]."</b></td></tr><tr><td>".$element[3]."</td></tr></table>";}
if ($element[4] == "verlinken")
{ $test .= "<table><tr><td>".$element[0]."</td><td><a href=\"mailto:$element[2]\"><b>"." - ".$element[1]."</b></td></tr><tr><td>".$element[3]."</td></tr></table>";}
}
echo $test;
?>
Es ist eigentlich sehr einfach. Wo habe ich was übersehen?
Habe ich Euch mit meine Frage verärgert? Warum werde ich denn so von Oben herab behandelt? Es ist doch das Anfängerforum.
mimatete
Geändert von vt1816 (11.06.2009 um 15:45:43 Uhr)
Grund: Verhaltensregeln im SelfPHP-Forum
|

11.06.2009, 15:47:54
|
 |
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
|
|
AW: mit FILE datei auslesen, inhalte dieses arrays vergleichen und formatiert ausgebe
Hallo mimatete,
a) bitte bette dein PHP Script in die vom Forum vorgesehenen PHP Tags, dann sind deine Scripte für uns lesbarer und wir können dir schneller helfen
b) niemand redet von oben herab, vielleicht hast du ja komplexe. (das war wiederum nicht beleidigend gemeint falls du es so wahrgenommen hast. (was dafür sprechen würde das es stimmt ;))
Du hast also geschaut ob in $element[4] der string "geheim" vorkommt. Vielleicht enthält der String ja, wie auch schon von xabbuh angedeutet zeichen die du mit einer einfachen ausgabe nicht sehen kannst.
Funktionen wie
strlen()
var_dump()
können dir vll. weiterhelfen indem du die ausgaben für den inhalt von $element[4] und deinem string vergleichst.
desweiteren weise ich nochmal auf xabbuh´s tip mit dem \n\r umbrüchen hin
(nur not auch auch nl2br() arbeiten)
viel erfolg weiterhin!
EDIT
Ok jetzt hat vt1816 punkt a) schon für dich erledigt
Geändert von Indyk (11.06.2009 um 15:48:52 Uhr)
Grund: EDIT
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 14:13:32 Uhr.
|