2016-06-12 9 views
1

Ich versuche, mein PHP-Skript öffnen mehr als 1 Textdokument und sie zu lesen.fopen mehrere Dateien in PHP

Meine aktuelle Skript ist wie folgt:

<?php 
 
\t //$searchthis = "ignore this"; 
 
\t $matches = array(); 
 
\t $FileW = fopen('result.txt', 'w'); 
 
\t $handle = @fopen("textfile1.txt", "r"); 
 
\t ini_set('memory_limit', '-1'); 
 
\t if ($handle) 
 
\t { 
 
\t \t while (!feof($handle)) 
 
\t \t { 
 
\t \t \t $buffer = fgets($handle); 
 
\t \t \t if(stripos($buffer, $_POST["search"]) !== FALSE) 
 
\t \t \t \t $matches[] = $buffer; 
 
\t \t } 
 
\t \t fwrite($FileW, print_r($matches, TRUE)); 
 
\t \t fclose($handle); 
 
\t } 
 
?>

ich wie ein Haufen von Dateien fopen bin versucht, vielleicht wie von denen 8 oder weniger.

Wie würde ich öffnen und alle diese Dateien lesen?

Jede Hilfe wird sehr geschätzt!

+0

Stopp '@ fopen' tun, die' @ 'Fehler unterdrückt es sein kann - und mit' fopen', Fehler sind häufig und wichtig. Was hast du selbst versucht? – ceejayoz

+0

Ich glaube, ich brauchte es dort nicht. Keine Fehler, was auch immer. Ich bin nur neugierig darauf, wie ich mehrere Dateien öffnen/in einer Variablen lesen kann. – Ryan

+0

Also, ich weiß, ich kann das nicht tun, aber ich wäre etwas wie: $ multiplefiles = fopen ("textfile1.txt", "textfile2.txt", "textfile3.txt", "r"); jetzt kann man das natürlich nicht machen wegen der fopen Parameter, aber gibt es einen alternativen Weg das zu tun? – Ryan

Antwort

0

Programm defensiv, überprüfen Sie die Rückgabe von Funktionen, um sicherzustellen, dass Sie nicht falsche Annahmen über Ihren Code machen.

Es gibt eine Funktion in PHP, um die Datei zu lesen und puffern:

enter link description here

0

Ich weiß nicht, warum Sie viele Dateien öffnen möchte, wird es sicherlich eine Menge verwenden Speicher, wie auch immer, könnte man die file_get_contents Funktion mit einem foreach verwenden:

$files = array("textfile1.txt", "textfile2.txt", "textfile3.txt"); 

$data = ""; 
foreach ($files as $file) { 
    $data .= @file_get_contents($file); 
} 

echo $data; 
+0

dachte nicht daran, es in einem Array zu haben. Danke für den Tipp! – Ryan

0

Es gibt eine Funktion in pHP file genannt, die in einem Array gesamte Datei liest.

<?php 

    // "file" function creates array with each line being 1 value to an array 

    $fileOne = file('fileOne.txt'); 
    $fileTwo = file('fileTwo.txt'); 

    // Print an array or do all array magic with $fileOne and $fileTwo 
    foreach($fileOne as $fo) { 
     echo $fo; 
    } 

    foreach($fileTwo as $ft) { 
     $echo $ft; 
    } 
?> 

Lesen Sie mehr über: file Funktion Ion php