Проверить и исправить маленький код

grandeur

Новичок
Всем добрый вечер, уважаемые.
Есть задаченька : "Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.."
под предложением подразумевается каждая строка
я написал
PHP:
<? 
$mass[]=file('file.txt', "r") or die ("Ошибка при открытии файлаn");
$mass=array();

for($j=3;$j=>0;$i++,$j--) {
echo $mass[$j] ;}
?>
Но он ничегошеньки не выводит:(((
помогите пожалуйста
Спасибо))
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
Угадайте что выведет этот код:
Код:
$a = 'Привет мир!';
$a = '';
echo $a;
 

vasinsky

Новичок
PHP:
<?
$lines = file('file.txt') or die ("Ошибка при открытии файла");
$lines = array_reverse($lines);
foreach($lines as $key=>$line)
    echo $line."<br/>"; //
}
?>
по поводу вашего кода

//die ?? логичней проверять на file_exists(), is_writable()
<?$lines = file('file.txt', "r") or die ("Ошибка при открытии файла");$lines=array();
//foreach() быстрей, $i++ $i-- - в чём смысл???
for($j=3;$j=>0;$i++,$j--) {
//откуда $mass???
echo $mass[$j] ;}?>
 

hell0w0rd

Продвинутый новичок
Становится все забавнее)
//die ?? логичней проверять на file_exists(), is_writable()
- yet another bad advice, ТС, надо проверять is_readable, потому что ты собираешься считывать файл, а не писать в него

PHP:
$mass[]=file('file.txt', "r") or die ("Ошибка при открытии файлаn");
$mass=array();
Нет. Еще раз, ты берешь и переопределяешь переменную, код исполняется сверху вниз
 
  • Like
Реакции: AmdY

AmdY

Пью пиво
Команда форума
PHP:
<?
$lines = file('file.txt') or die ("Ошибка при открытии файла");
$lines = array_reverse($lines);
foreach($lines as $key=>$line)
    echo $line."<br/>"; //
}
?>
по поводу вашего кода

//die ?? логичней проверять на file_exists(), is_writable()
<?$lines = file('file.txt', "r") or die ("Ошибка при открытии файла");$lines=array();
//foreach() быстрей, $i++ $i-- - в чём смысл???
for($j=3;$j=>0;$i++,$j--) {
//откуда $mass???
echo $mass[$j] ;}?>
блин, ты только почитай бред который генеришь.
во первых, ответ уже был дан.
дальше ты путаешь чтение и запись.
дальше не видишь синтаксическую ошибку $j=>0
дальше предлагашь использовать foreach, хотя по коду видно, что ТС пытается почитать три строки в обратном порядке и foreach здесь не замена

ты вообще, программировать умеешь? только не говори, что придираюсь к запетым и без аргументов.
 

vasinsky

Новичок
foreach здесь не замена
оо.. до, он здесь лишний))

PHP:
$lines = file('file.txt');
$lines = array_reverse($lines);
foreach($lines as $key=>$line)
    echo $line."<br/>";
    if($key == 2)
          break;
}
ты вообще, программировать умеешь?
абстрагируйся от того что кроме тебя никто ничё не умеет, посмотри на мир глазами смертного

во первых, ответ уже был дан.
где?
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
оо.. до, он здесь лишний))

PHP:
$lines = file('file.txt');
$lines = array_reverse($lines);
foreach($lines as $key=>$line)
    echo $line."<br/>";
    if($key == 2)
          break;
}
абстрагируйся от того что кроме тебя никто ничё не умеет, посмотри на мир глазами смертного


где?
ок. давай ты попробуешь объяснить что делает твой код и почему он не аналогичен примеру с for, заодно может сможешь поднапрячь извилину и написать таки код который работает как нужно ТС
: "Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.."
 

vasinsky

Новичок
ну если ещё раз прочитать цитату с задачей - она уже видится по другому, толи прочитать первие 3 строки но в обратном порядке, толи прочитать последние 3 строки из файл (последнее выглядит логично - первая часть на бред)

ну рассмотрим задачу - как "бред"

и вуаля - и снова foreach;

PHP:
$file = array(
            ' первое предложение',
            ' второе предложение',
            ' третье предложение',
            ' четвёртое предложение'
            );

$res = array();
        
foreach($file as $k=>$v){
    $res[] =  $v;
    if($k == 2) break;
}

echo implode("<br/>", array_reverse($res));
 

AmdY

Пью пиво
Команда форума
Сейчас правильно, но foreach здесь лишний, можно убить ещё 4 строки кода.
 

vasinsky

Новичок
сдаётся мне, что ТС хотел последние 3 строчки постоянно читать.
 

WMix

герр M:)ller
Партнер клуба
ну тоже самое же, яб так решал подобную задачку
 
Сверху