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

Discussion in 'WASM.HEAP' started by 2FED, Apr 28, 2010.

  1. 2FED

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    Извеняюсь конечно что топик не в тему сайта. Помогите пожалуста с простым скриптом

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

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

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

    Code (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

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    Code (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

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    так, т.е.
     
  4. 2FED

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    получилось так что оно просто указаную строку удаляет
     
  5. 2FED

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    а не.. это я пропарилсо.. Спасибо.
     
  6. 2FED

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    Не совсем корректно работает



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

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


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

    rmn Well-Known Member

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    Code (Text):
    1. fwrite($open,str_replace("\n", " " . $_GET['CMM'] . "\n", $file[$i]);
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    по идее можно сделать управляющий файл, где будут храниться ссылки на файлы со строками или, вообще, это на бд переписать. при большом накопление строк лучше бд пользовать.
     
  9. 2FED

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    define('NEWLINE', "\r\n");

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

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

    2FED New Member

    Blog Posts:
    0
    Joined:
    Feb 20, 2008
    Messages:
    1,002
    Ещё один вопросик возник

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

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

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    2FED
    вообще, реджексы пользуй.