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

  • Автор темы Автор темы grandeur
  • Дата начала Дата начала

grandeur

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

for($j=3;$j=>0;$i++,$j--) {
echo $mass[$j] ;}
?>
Но он ничегошеньки не выводит:(((
помогите пожалуйста
Спасибо))
 
Последнее редактирование:
Угадайте что выведет этот код:
Код:
$a = 'Привет мир!';
$a = '';
echo $a;
 
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] ;}?>
 
Становится все забавнее)
//die ?? логичней проверять на file_exists(), is_writable()
- yet another bad advice, ТС, надо проверять is_readable, потому что ты собираешься считывать файл, а не писать в него

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

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

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

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

PHP:
$lines = file('file.txt');
$lines = array_reverse($lines);
foreach($lines as $key=>$line)
    echo $line."<br/>";
    if($key == 2)
          break;
}

абстрагируйся от того что кроме тебя никто ничё не умеет, посмотри на мир глазами смертного


где?
ок. давай ты попробуешь объяснить что делает твой код и почему он не аналогичен примеру с for, заодно может сможешь поднапрячь извилину и написать таки код который работает как нужно ТС
: "Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.."
 
ну если ещё раз прочитать цитату с задачей - она уже видится по другому, толи прочитать первие 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));
 
Сейчас правильно, но foreach здесь лишний, можно убить ещё 4 строки кода.
 
сдаётся мне, что ТС хотел последние 3 строчки постоянно читать.
 
ну тоже самое же, яб так решал подобную задачку
 
Сверху