URL: https://www.overclockers.at/coding-stuff/schon_wieder_php_25422/page_1 - zur Vollversion wechseln!
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
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
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
$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....
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
string trim (string str)
löscht unsichtbare Zeichen..blablabla...
probier des amoi muaßt wahrscheinlich des ENTER zeichen weglöschen....
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
Zitat von KaZaaWelches 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
Code: PHPfunction 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; }
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
Zitat von KaZaaThx, 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 warumDamnit
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.php
code2:
<?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.php
Aber 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.php
Aber 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.php
Vielleicht versuchts ihr mir das eh die ganze Zeit zu erklären, aber ich überreiss net ganz was ihr mit dem "\n" meints
Ersetzte: $line = fgets($fd, 4096);
durch: $line = rtrim(fgets($fd, 4096));
Und hier eine optimiertere Variante des Scripts:
Code: PHP<?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; } ?>
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.
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?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025