Replace написав:Ось тут десь помилка зарита, не зовсім зрозуміла логіка:
      $editline=explode(',', $currentline);
        if ($editline[0]==$imgfilename) {
            $photo[$line_num]=$imgfilename.','.trim( str_replace(chr(13).chr(10), '<br/>', $_POST['textarea']))."\n";        
        }
        fwrite($pagefile, $photo[$line_num]);
Навіщо там explode? Він походу все і рубає.
 в даний скрип передаються методом POST два значення:
$_POST['imgfilename'] - ім’я картинки, опис якої відредаговано і треба записати
$_POST['textarea'] - сам опис 
є текстовий файл ('data/photo.db') в форматі - один рядок - один запис:  два поля(розділені комою)
перше поле - ім’я файла з картинкою, друге поле - тект опису цієї картинки.
починаємо перебирати файл по рядках.
почергово explode присвоює масиву $editline ці поля. відповідно  $editline[0] - ім’я файлу з картинкою
як тільки  $editline[0] співпаде з переданим $imgfilename=$_POST['imgfilename'];   , то слід замінити опис (при цьому в самому описі міняються CR/CL на <br/>)
так що explode нічого не рубає.
поставив і уважно  протрасив в eclipse - $_POST['textarea'] - має повне,не обрубане значення - з комами.
 $photo[$line_num]  теж не  обрубане! 
додаю скріншот з debug:

редагував останній , 6-ий елемент масиву
видно, що $photo[5] має текс доданий до коми і після коми.
тисну крок далі - на моніторі текст БЕЗ доданого після коми 
виходить - обрізає fwrite() ?
НІ!!!
я просто БАРАН! файл записаний вірно, але в скрипті виводу на екран теж використана explode з розділовою комою!!!
і вона  просто те, що після коми - присвоює елементу масиву, який на екран не виводиться!!!
найпростішим рішенням є замінити кому для розділу полів у файлі на щось хитріше - наприклад на   #separator# 
УРА, все працює!!!
дякую, закачав.
початок дещо застарів - ну нема вже інету через модеми , Netscape browse давно помер, але туди ж пр’ямує і тогочасний переможець - IE.
але то деталі, сподіваюся що принципи розробки там дано добре .