Großes Problem

I

i125

Hallo,

ich hab das folgende Problem;

In der Texdatei stehen die Pfade untereinander aufgeliestet, und ich möchte gerne jede Zeile als Variable ausgeben lassen, wie geht denn so was?

Das Auslesen hab ich fertig...

$Datei = fopen("$systempfad/$REMOTE_ADDR.funktion", "r");
$Zeile = true;
$n = "1";
while ($Zeile) {
$Zeile = fgets($Datei,1000);
}
fclose($Datei);

Gruss Alexander

Zum Beispiel:

$as1 = "asdfsadfasd";
$as2 = "dsafdsakf";

... usw.
 
Zuletzt bearbeitet von einem Moderator:
Was genau machst du denn mit $zeile und $n ? Ist dir die Anzahl der Zeilen in der Datei zu jeder Zeit bekannt? Dann mach das doch am besten mit einem Array per file().

PHP:
$datei=("deinedatei"); 
$array = file($datei); 
//Deine Datei in ein Array einlesen

for($i=0 ;$i < $zeilenanzahlanzahl; $i++) {
echo $array[$i];}
//Für die Anzahl der Zeilen die Selbigen ausgeben

Du kannst die einzelnen Zeilen natürlich auch mit $array[x] ansprechen bzw. in andere Variablen übernehmen. Guck am Besten mal hier.
 
Hi,

Das Problem sieht eigentlich folgender Masen aus,
ich schreibe eine Windowsexplorer in PHP...

Um Daten zu löschen, kopieren, verschieben, ausschneiden, lass ich sie vorher makieren, damit man mehrere Dateien auf einmal bearbeiten kann.

Daher muss ich wissen welche Dateien in der Textdatei gelistet sind und diese mit dem "Ergebniss" vergleichen.

Sieht wie folgt aus:

PHP:
			$Eintrag = readdir($Verzeichnis);
			$kb = "filesize($Eintrag)";
			while ($Eintrag) {
			//PRÜFEN OB $EINTRAG == VERZEICHNIS ODER FILE IST
				if (is_dir($Eintrag)) {
				$link1 = '<a href="main.php?rootname='; 
				$link3 = '/" class="text">[open]</a>';
				$link2 = $Eintrag;
		
				$filetype = "";
				$funktionrename = "";
				$bild = '<img src="dir.gif" width="18" height="18">';
				}	
				else {
				$link1 = "";
				$link2 = "";
				$link3 = "";
				$filetype = "$url1$rootlocal/$Eintrag$url2";
				$bild = '<img src="datei.gif" width="18" height="18">';
				$funktionrename = "$renamefile$rootlocal/$Eintrag$renamefile2";
				}
				//END
				//DATEIGRÖßE BERECHNEN
				if (is_dir($Eintrag)) {
				$filesize = "[DIR]";
				}
				else {
				$round = round((filesize($Eintrag)/"1024"), 0);
				$filesize = "$round $file";
				}
				//END
				$abstand = " ";
					if (@file_exists("$systempfad/$REMOTE_ADDR.funktion")) {
						$pruefung = $rootlocal;
						$pruefung .= "/";
						$pruefung .= $Eintrag;
						$Datei = fopen("$systempfad/$REMOTE_ADDR.funktion", "r");
						$Zeile = true;
						while ($Zeile) {
							$Zeile = fgets($Datei,1000);
								if ($pruefung == $Zeile) {	
								echo $tablex1, $bild, $tablex2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $tablex3, $filesize, $tablex4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$tablex5;
								}
								else {
								echo $table1, $bild, $table2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $table3, $filesize, $table4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$table5;
								}
							}
						fclose($Datei);
					}
					else {
					echo $table1, $bild, $table2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $table3, $filesize, $table4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$table5;
					}
				$Eintrag = readdir($Verzeichnis);
				}
				closedir($Verzeichnis);
			}

Anmerkung = $Eintrag ist der Verzeichniseintrag und pruefung sollten die Daten aus der Textdatei sein, funktioniert aber nur bei einem Eintrag und nicht bei zwei oder mehrere...

Gruss Alexander
 
Zu deinen Script:

PHP:
$datei=("deinedatei"); 
$array = file($datei); 
//Deine Datei in ein Array einlesen

for($i=0 ;$i < $zeilenanzahlanzahl; $i++) {
echo $array[$i];}
//Für die Anzahl der Zeilen die Selbigen ausgeben

Kann ich wenn ich echo $array[$i]; auch so auf den Array zugreifen?

Wie macht man denn den Zugriff?

Vielleicht so?

PHP:
$n = 1;
do {
if ($array[$n] == $Eintrag){
//Anweisung
}
else {
//Anweisung
}
$n++;
} while ($n < 5000)
 
Genau, so in der Art könntest du das schon angehen. Nur dass der erste Wert des Arrays immer 0 und nicht 1 ist. Einfach mal etwas probieren.. ;)
 
Nee das macht er nicht, der Quellcode sieht jetzt wie folgt aus...

PHP:
if (@file_exists("$systempfad/$REMOTE_ADDR.funktion")) {
						$pruefung = $rootlocal;
						$pruefung .= "/";
						$pruefung .= $Eintrag;
						$n = 1;
						do {
							if ($pruefung == $array[$n]) {	
							echo $tablex1, $bild, $tablex2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $tablex3, $filesize, $tablex4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$tablex5;
							}
							else {
							echo $table1, $bild, $table2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $table3, $filesize, $table4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$table5;
							}
						$n++;
						} while ($n < 1);
					}		
					else {
					echo $table1, $bild, $table2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $table3, $filesize, $table4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$table5;
					}
Zu Deutsch, er zeigt mir jetzt jeden Fehler 10 mal an!!!

Gibt es denn keine Andere Möglichkeit Textdateien zu durchsuchen?

Wir wäre es denn einen Wert in der Textdatei zu suchen und dann sagen
$Ergebnis = true

??

Geht sowas, oder hat da jemand noch ne andere Idee
 
Hmm, wie gesagt, setz $n mal auf 0. Denn $array[1] entspricht der 2. Zeile der Datei. Deshalb die Fehler?

Ansonsten sind hier alle Dateisystemfunktionen aufgelistet. Vielleicht findest du da was passendes. Aber einen direkten Befehl zur Stringsuche in einer Datei gibt es glaube ich nicht. Das wirst du wohl übe Umwege lösen müssen...
 
Gott bin ich blöd...

Folgendes:

PHP:
if (@file_exists("$systempfad/$REMOTE_ADDR.funktion")) {
			$datei = "$systempfad/$REMOTE_ADDR.funktion";
			$array = file($datei);
			for($x=0;$x<count($array);$x++)
			{
			echo $array[$x];
			}
			unset($datei);
			}
			else {
			}
			echo $x;
$endwert = $x;
Das $x ist der abbruch wert für die Darauffolgende Schleife !!!!!!!!!!

Auf die Idee muss man erstmal kommen...

Die Schleife kann man sich ja jetzt denken...

Danke...

Muss mal editieren:

Hier dir Schleife:

PHP:
$n = 0;
						do {
							if (in_array($pruefung, $array[$n])) {	
							$Ergebnis = true;
							echo $tablex1, $bild, $tablex2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $tablex3, $filesize, $tablex4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$tablex5;
							}
							else {
							echo $table1, $bild, $table2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $table3, $filesize, $table4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$table5;
							$Ergebnis = false;
							}
						$n++;
						} while ($n == $endwert)
 
Zuletzt bearbeitet von einem Moderator:
Hab aber noch ein Problem:


Warning: Wrong datatype for second argument in call to in_array in e:\basis\root\main.php on line 438

Code:
PHP:
$n = 0;
						do {
							if (in_array($pruefung, $array[$n], true)) {	
							echo $tablex1, $bild, $tablex2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $tablex3, $filesize, $tablex4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$tablex5;
							}
							else {
							echo $table1, $bild, $table2, $mak1, $Eintrag, $mak2, $Eintrag, $mak3, $table3, $filesize, $table4, $filetype, $abstand, $funktionrename, $link1, $link2, $link3,$table5;
							}
						$n++;
						} while ($n == $endwert);
$prüfung = der Wert der gesucht wird
$array[$n] = $Array mit dem Index

$endwert = 4 !

Und warum funktioniert diss nitt?
 
Zurück