2016-06-12 3 views
1

Я пытаюсь сделать мой PHP-скрипт открытым более чем 1 текстовым документом и прочитать их.fopen несколько файлов в php

Мой текущий сценарий выглядит следующим образом:

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

Я пытаюсь FOPEN как куча файлов, может быть, как 8 из них или меньше.

Как открыть и прочитать все эти файлы?

Любая помощь ВОЗМОЖНО!

+0

Стоп делать '@ fopen', то' '@ подавляет любые ошибки могут быть - и с' fopen', ошибки являются общими и важными. Что вы пробовали самостоятельно? – ceejayoz

+0

Думаю, мне там не нужно. Нет ошибок, которые так когда-либо были. Мне просто интересно, как я могу открыть несколько файлов/прочитать их в одной переменной. – Ryan

+0

Итак, я знаю, что не могу этого сделать, но я бы хотел что-то вроде: $ multiplefiles = fopen ("textfile1.txt", "textfile2.txt", "textfile3.txt", "r"); теперь, очевидно, вы не можете сделать это из-за параметров fopen, но есть ли альтернативный способ сделать это? – Ryan

ответ

0

Програмируйте оборону, проверьте возврат из функций, чтобы убедиться, что вы не делаете неправильных предположений о своем коде.

Существует функция в PHP, чтобы прочитать файл и поместить их в буфер:

enter link description here

0

Я не знаю, почему вы хотите, чтобы открыть много файлов, она, безусловно, будет использовать много память, в любом случае, вы можете использовать функцию file_get_contents с foreach:

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

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

echo $data; 
+0

не думал о наличии в массиве. Спасибо за совет! – Ryan

0

Существует функция в PHP называется file, который читает весь файл в массив.

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

Подробнее о: file функции иона PHP

Смежные вопросы