jives
And the science gets done
|
Also, ich möchte userdaten aus einer stinknormalen textdatei auslesen die so aufgebaut ist: user=ort usw. Der Code ist jetzt nur für die 1. Zeile gedacht, mit 2 eintägen: $fd=fopen("beisp.dat","r"); $line=fgets($fd); $userdata=explode("=",$line); echo "$line - $userdata[0] - $userdata[1]"; Nur ich bekomm weder was für $line, noch für $userdata zurück  Was stimmt da nicht? Thx im voraus
|
Nurmi
OC Addicted
|
also i hob des einmal so gemacht: die ganze datei in eine variable übergeben und dann einfach alle Werte zwischen den ENTER Zeichen (das Kasterl []) als Zeile genommen...
Wennst den Code unbedingt brauchst such i dir erm außa..(PM)
MfG NuRmi
|
jives
And the science gets done
|
Nichts anderes sollte das obere Script machen  Datei zum lesen öffnen, lesen bis zum Zeilenende, die Variable in ein Array aufsplitten und dann kann ich mit dem Array weitermachen. Nur leider funktioniert es nicht
|
Nurmi
OC Addicted
|
$inhalt = file("dateiXYZ.txt"); $zahl = count($inhalt); $z="1"; while($z < $zahl){ $nr =$inhalt[$z]; $z++; $pic =$inhalt[$z]; $z++; $datum = $inhalt[$z]; $z++ }
i hobs so gmocht....
|
jives
And the science gets done
|
thx, das script funktioniert  Warum meins nicht geht würd mich aber wirklich interessieren. Aber wenn ich das hier mache: <?php $inhalt = file("user1.usr"); $zahl = count($inhalt); $z="0"; while($z < $zahl){ $user=$inhalt[$z]; $z++; $ort=$inhalt[$z]; $z++; } echo "$user"; if ($user=="mueller" & $ort=="Wien"){ echo "<br>ok";} ?> Kommt statt: "mueller ok" nur "mueller" Obwohl die Daten stimmen, also in der Datei "mueller Wien" steht
Bearbeitet von jives am 09.02.2002, 22:01
|
Nurmi
OC Addicted
|
string trim (string str)
löscht unsichtbare Zeichen..blablabla...
probier des amoi muaßt wahrscheinlich des ENTER zeichen weglöschen....
|
jives
And the science gets done
|
Welches Enter-Zeichen meinst du? Die Kasterl bei $inhalt[]? Das geht ja net, dann hab ich keinen Index mehr fürn Array. Und wtf ist string trim? Ich programmier erst seit 2 Tagen php, also nicht böse sein wenn ichs net check
|
Vir@s
Code Monkey
|
Welches Enter-Zeichen meinst du? Die Kasterl bei $inhalt[]? Das geht ja net, dann hab ich keinen Index mehr fürn Array. Und wtf ist string trim? Ich programmier erst seit 2 Tagen php, also nicht böse sein wenn ichs net check  Er meint des '\n' am ende von der ersten Zeile! BTW: function get_line ($file) {
$read_again = true;
$buffer_size = 4096;
$full = "";
while ((!feof ($file)) && ($read_again)) {
$read_again = false;
$line = fgets ($file, $buffer_size);
$full .= $line;
if (strlen($line) >= ($buffer_size - 1)) {
if ($line[($buffer_size - 2)] != '\n') {
$read_again = true;
}
}
}
return $full;
}
des is ne funktion von "mir" (mit hilfe von php.net)! Ließt genau eine Zeile immer aus! $file is einfach der pointer auf eine geöffnete Datei (also einfach die var die beim aufmachen def. wird)! Vielleicht hilft des!
|
jives
And the science gets done
|
Thx, ich werd das mal ausprobieren.  Nur lustigerweise macht fgets() nix anderes als die Daten einer Datei auszulesen bis eine vorgegebene Länge, das ZEILENENDE der das Ende der Datei erreicht ist. Also wieso machst du des so kompliziert in einer Funktion? Und es zipft mich ärgstens an das mein Code net geht und i net den blassesten Schimmer hab warum  Damnit
Bearbeitet von jives am 10.02.2002, 13:05
|
Vir@s
Code Monkey
|
|
jives
And the science gets done
|
Ich muss aber ehrlich zugeben dass mir deine function zu hoch ist, bzw. dass ich nicht mit ihr umgehen kann  Irgendwie scheint auch nicht das Auslesen das Problem zu sein, weil das geht bei mir in der Zwischenzeit schon: beisp.dat: wert1,wert2 hallo,welt 1,2 ende,ende code1: <?php $fd = fopen ("beisp.dat", "r"); while (!feof($fd)) { $line = fgets($fd, 4096); $userdata=explode(",",$line); echo $userdata[0]; } fclose ($fd); ?> gibt: http://home.pages.at/kazaa/test/test.phpcode2: <?php $fd = fopen ("beisp.dat", "r"); while (!feof($fd)) { $line = fgets($fd, 4096); $userdata=explode(",",$line); echo $userdata[1]; } fclose ($fd); ?> gibt: http://home.pages.at/kazaa/test/test2.phpAber wenn ich mit "if" Abfrage wirds intersessant: <?php $fd = fopen ("beisp.dat", "r"); while (!feof($fd)) { $line = fgets($fd, 4096); $userdata=explode(",",$line); if ($userdata[0]=="1"){ echo "ok"; break; } } fclose ($fd); ?> funktioniert: http://home.pages.at/kazaa/test/test3.phpAber die 2. Abfrage geht nicht mehr: <?php $fd = fopen ("beisp.dat", "r"); while (!feof($fd)) { $line = fgets($fd, 4096); $userdata=explode(",",$line); if ($userdata[1]=="2"){ echo "ok"; break; } } fclose ($fd); ?> http://home.pages.at/kazaa/test/test4.phpVielleicht versuchts ihr mir das eh die ganze Zeit zu erklären, aber ich überreiss net ganz was ihr mit dem "\n" meints
Bearbeitet von jives am 11.02.2002, 19:57
|
Philipp
Here to stay
|
Ersetzte: $line = fgets($fd, 4096); durch: $line = rtrim(fgets($fd, 4096));
|
Philipp
Here to stay
|
Und hier eine optimiertere Variante des Scripts: <?php
if (file_exists("beisp.dat")) {
$fd = file("beisp.dat");
for($i=0;$i<count($fd);$i++) {
$userdata = explode(",",rtrim($fd[$i]));
if ($userdata[1]=="2") {
echo "ok";
exit;
}
}
} else {
echo "Kann Datei beisp.dat nicht öffnen";
exit;
}
?>
beispiel_4770.zip (downloaded 60x)
Bearbeitet von Philipp am 11.02.2002, 22:00
|
jives
And the science gets done
|
BIG THX, es funktioniert!  Muss gleich mal nachsehen was rtrim() ist  EDIT: Was mich verwundert hat ist, dass er die Leerzeichen nicht ausgibt. Aber jetzt ist alles klar.
Bearbeitet von jives am 11.02.2002, 22:50
|
jives
And the science gets done
|
Kaum ist ein Problem gelöst, komm ich schon wieder nicht weiter  Ich möchte mit include() eine .php / .shtml Datei einfügen, die auf einem anderen Server liegt. Die .php Datei wird vom Server geparst, aber das sollte nix machen, da php beim include-Befehl ja in html umschaltet. Nur leider funktioniert include("http://www.beispiel.url/beispiel.php"); nicht, obwohl die Funktion enabled ist und es laut Referenz gehen müsste. Wenn ich die Datei auf den lokalen Server lege, ist das kein Problem. Aber als Übergangslösung muss ich das so machen  Hat jemand eine Idee was da los ist?
Bearbeitet von jives am 13.02.2002, 21:44
|