[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: чтение и показ из файла
ДиммКа
как сделать что бы информация из текстового файла выкладывалась на экран пользователя?
тоесть есть в файле строки, эти строки должны выложиться следующим образом:
Вопрос: "Строка"
Ответ:

Вопрос: "Строка"
Ответ:

ну тоесть система FAQ, как это осуществить?!



Спустя 29 минут, 40 секунд (21.07.2010 - 21:15) Ice написал(а):
можно так:

$f = file('faq.txt');
$faq = '';
foreach( $f as $line=>$data ) {
if( $line % 2 == 0 ) {
$faq .= "Вопрос: {$data}<br />";
} else {
$faq .= "Ответ: {$data}<br />";
}
}

print $faq;

faq.txt

Как считать файл в виде массива?
Использовать функцию file

Спустя 9 минут, 7 секунд (21.07.2010 - 21:24) Lenarfate написал(а):
Цитата
Как считать файл в виде массива?
Использовать функцию file



а лучше file_get_contents()

Спустя 21 минута, 8 секунд (21.07.2010 - 21:45) Ice написал(а):
Цитата (Lenarfate @ 21.07.2010 - 22:24)
а лучше file_get_contents()

да это ясно, но гет-контентс поусловию здесь не подходит

Спустя 1 минута, 47 секунд (21.07.2010 - 21:47) ДиммКа написал(а):
а почему вопрос и ответ в одной переменной data? хотя в faq.txt они на разных строках? тогда должно быть чтобы он считывал поочередно строки. первая вопрос ,вторая ответ. а так получаем что ответ на вопрос сам вопрос? еще нарыл в нете вот это
<?php
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
$buffer = fgets($handle);
echo $buffer;
}
fclose($handle);
?>

но когда вставляю данное на страницу почему то она не грузится...

Спустя 2 минуты, 8 секунд (21.07.2010 - 21:49) ДиммКа написал(а):
точнее грузится все что до этого скрипта а то что ниже нет!

Спустя 2 минуты, 6 секунд (21.07.2010 - 21:51) Ice написал(а):
Потому что мы разобрали массив $f, возвращенный функцией $file, и сказали, что, дескать, если ячейка массива четная, то обрабатывай как ответ, если нечетная -- то как вопрос.


Цитата (ДиммКа @ 21.07.2010 - 22:47)
<?php
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
    $buffer = fgets($handle);
    echo $buffer;
}
fclose($handle);
?>


Вы на имя файла обратили внимание? Этот листинг из официального мануала, а Вы даже не удосужились изменить имя файла.

Спустя 2 минуты, 11 секунд (21.07.2010 - 21:53) ДиммКа написал(а):
а ну тогда все ясно! спасибо за ответы!

Спустя 15 минут, 44 секунды (21.07.2010 - 22:09) Ice написал(а):
При сравнении вариантов:

$f = file( 'faq.txt' );
$s = microtime( true );
$faq = '';
foreach( $f as $line=>$data ) {
if( $line % 2 == 0 ) {
$faq .= 'Вопрос: '. $data .'<br />';
} else {
$faq .= 'Ответ: '. $data .'<br />';
}
}

print $faq;

и

$faq = '';
$handle = fopen( "faq.txt", "r" );
$j = -1;
while ( ! feof( $handle ) ) {
$buffer = fgets( $handle );
if( ++ $j % 2 == 0 )
$faq .= 'Question: '.$buffer."<br />";
else
$faq .= 'Answer: '.$buffer."<br />";
}
fclose( $handle );
print $faq;

стало ясно, что мой вариант работает в 11 с половиной раз быстрее мануального. Дальше решать Вам.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.