Приколемся и напишем текстовый редактор на PHP

Не зря был выбран ник, которым я свечусь на всех форумах «Idler» - да … от безделья можно ведь и *** сломать :-)

Ну вот очередная дурь в голову, хотя и заняться чем есть. Просто вдруг решил посмотреть как работают stream-wrappers на PHP. А чтобы скучно не стало - тестами не ограничился, а написал простенький редактор.

Редактор умеет записывать введенный в STDIN текст в указанный (уже после ввода текста) файл.

Посмотрим что нам понадобится? Да практически ничего - цикл с проверкой вводимого символа на соответствие символу конца файла. Кто не знает - это ^D или просто Ctrl+D. Обращаться ко входному потоку будет как к php:stdin , информацию об ошибках будем выводить в php:stderr

Надо заметить что это стабильно работает начиная с версии PHP 5.2.1

Итак! Без комментакриев… САМЫЙ ПРОСТОЙ ТЕКСТОВЫЙ РЕДАКТОР в 19 строк, да еще и на PHP!!! Посмотрим, что он умеет?!

#!/usr/bin/php
<?php
$stream=$name='';
$fp = fopen('php://stdin','r');
while($t=fread($fp,1)){
        if($t===chr(0)) break;
        $stream.=$t;
}
fclose($fp);
echo "Имя файла, для сохранения:";
$name=trim(fread(STDIN,4096));
echo "\n\n{$name}\n\n{$stream}";
if(strlen($name)<1 ){
        file_put_contents('php://stderr',"Неверное имя файла\n");
        exit(1);
}
file_put_contents($name,$stream);
echo "Файл {$name} сохранен\n";
exit (0);

Не густо? А что вы хотели от 19 строк? Положил его в ~/bin/ - т.к иногда vim - это лишнее - просто ввести пару строк и сохранить из в файле… Посмотрим, может быть со временем прикручу к нему пару фич..

Последние изменения: %2010/%03/%22 %01:%Mar