Помогите со скриптом

Тема в разделе "WASM.HEAP", создана пользователем 2FED, 28 апр 2010.

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Извеняюсь конечно что топик не в тему сайта. Помогите пожалуста с простым скриптом

    надо просто чтобы в нужную строку файла дописывалась ещё одна строка
    например имеем
    Код (Text):
    1. строка
    2. строка2
    3. строка3
    надо дописать в строку 2 ещё что то и получаем
    Код (Text):
    1. строка
    2. строка2 ещё что то
    3. строка3
    http://mysite.com/script.php?EF=file.txt&ES=29&CMM=text

    EF = файл куда писать
    ES = номер строки
    CMM = текст который нужно дописать к строке

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

    Код (Text):
    1. if(isset($_GET['CAT']) && !empty($_GET['CMM']))
    2. {
    3.     $line  = $_GET['ES']
    4.  
    5.     $file=file($_GET['EF']);
    6.     $open=fopen($_GET['EF'],"w");
    7.     for($i=0;$i<count($file);$i++)
    8.     {
    9.         if(($i)!=$line)
    10.             {
    11.             fwrite($open,$file[$i]);
    12.             }
    13.     }
    14.     fclose($open);                 
    15. }
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Код (Text):
    1. if(isset($_GET['CAT']) && !empty($_GET['CMM']))
    2. {
    3.     $line = $_GET['ES'];
    4.     $file=file($_GET['EF']);
    5.     $open=fopen($_GET['EF'],"w");
    6.     for($i=0;$i<count($file);$i++)
    7.     {
    8.         if(($i)==$line)
    9.         {
    10.             fwrite($open,$file[$i]);
    11.         }
    12.         else
    13.         {
    14.             fwrite($open,$file[$i] . " " . $_GET['CMM']);
    15.         }
    16.     }
    17.     fclose($open);
    18. }
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    так, т.е.
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    получилось так что оно просто указаную строку удаляет
     
  5. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    а не.. это я пропарилсо.. Спасибо.
     
  6. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Не совсем корректно работает



    вот так пишет если номер строки 1. В общем почемуто переводит коретку

    ps Нумерация идёт с нуля.. так что строка 1 это "строка2"


    Код (Text):
    1. строка
    2. строка2
    3.  ещё что тострока3
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Код (Text):
    1. fwrite($open,str_replace("\n", " " . $_GET['CMM'] . "\n", $file[$i]);
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    по идее можно сделать управляющий файл, где будут храниться ссылки на файлы со строками или, вообще, это на бд переписать. при большом накопление строк лучше бд пользовать.
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    define('NEWLINE', "\r\n");

    fwrite($open,trim($file[$i]) . " " . $_GET['CMM'].NEWLINE);

    вот так работает! всем спасибо :)
     
  10. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Ещё один вопросик возник

    есть допустим

    Код (Text):
    1. строка
    2. строка2 CMM=text
    3. строка3
    можно ли как то удалить CMM= и всё что идёт после него?
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    2FED
    вообще, реджексы пользуй.