fopen multiple files in php

2019-08-13 22:42发布

问题:

I'm trying to make my PHP script open more than 1 text document and to read them.

My current script is as follows:

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

I'm trying to fopen like a bunch of files, maybe like 8 of them or less.

How would I open, and read all these files?

Any help is GREATLY appreciated!

回答1:

Program defensively, check the return's from functions to ensure you are not making incorrect assumptions about your code.

There is a function in PHP to read the file and buffer it:

enter link description here



回答2:

I don't know why you would want to open a lot of files, it surely will use a lot of memory, anyway, you could use the file_get_contents function with a foreach:

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

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

echo $data;


回答3:

There is a function in php called file which reads entire file into an array.

<?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;
    }
?>

Read more about : file function ion php



标签: php fopen fwrite