тоесть есть в файле строки, эти строки должны выложиться следующим образом:
Вопрос: "Строка"
Ответ:
Вопрос: "Строка"
Ответ:
ну тоесть система FAQ, как это осуществить?!
Спустя 29 минут, 40 секунд (21.07.2010 - 21:15) Ice написал(а):
можно так:
faq.txt
$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 написал(а):
При сравнении вариантов:
и
стало ясно, что мой вариант работает в 11 с половиной раз быстрее мануального. Дальше решать Вам.
$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 с половиной раз быстрее мануального. Дальше решать Вам.