PHP чтение файла - PullRequest
       1

PHP чтение файла

1 голос
/ 06 ноября 2010

Я пытаюсь прочитать отформатированный файл

name (считайте это в переменную)

10 10 (читать в отдельные переменные)

остальное в массив

line

line

line

line

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

 $fname =  'test.txt';

 $lines = file("$fname", "r");

while($lines as $currenline){

I am trying to put the name, width, height into variables
    then the rest into the array

}

поможет ли это

Ответы [ 3 ]

0 голосов
/ 06 ноября 2010

Не на 100% уверен, что вы просите, но, возможно, это поможет вам начать:

$fname =  'test.txt';

$lines = file("$fname", "r");

foreach($lines as $line) {
    $parts = explode(' ', $line);
    $name = $parts[0];
    $width = $parts[1];
    $height = $parts[2];

    // Do whatever you want with the line data here
}

Предполагается, что все строки ввода, конечно, хорошо отформатированы.

0 голосов
/ 06 ноября 2010
$fh = fopen( $fname, 'r' );

$name = fgets( $fh );
$dimensions = split( ' ', fgets($fh) );
$length = $dimensions[0];
$width = $dimensions[1];

$lines = array();

while ( $line = fgets( $fh ) $lines[] = $line;

Я никогда не проверял это, но оно должно работать, если ваши файлы постоянны.Цикл while может быть отключен, и его нужно доработать, если он не работает, учитывая, что fgets возвращает false, если возникает ошибка или она не может прочитать файл.

0 голосов
/ 06 ноября 2010

$lines уже содержит почти то, что вам нужно, просто вытащите соответствующие кусочки.

$fname =  'test.txt';
$lines = file("$fname", "r");
$name = $lines[0];
list($height, $width) = explode(' ', $lines[1]);
$lines = array_slice($lines, 2);

Обратите внимание, что здесь нет проверки ошибок, поэтому вы можете добавить некоторые из них.

Как указано в комментариях, вы также можете сделать это, используя array_shift:

$fname =  'test.txt';
$lines = file("$fname", "r");
$name = array_shift($lines);
list($height, $width) = explode(' ', array_shift($lines));
// $lines now contains only the rest of the lines in the file.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...