За последние 24 часа нас посетили 16854 программиста и 1646 роботов. Сейчас ищут 948 программистов ...

Как удалить с тхт файла,слова через определёные символы.

Тема в разделе "PHP для новичков", создана пользователем kmambasa, 31 мар 2016.

  1. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    Здраствуйте,возникла такая проблема,подскажите как можна организовать чтение и удаление слов,верней логинов,если они записаны в файл в одну строку и через вот такие символы
    Код (Text):
    1. ~@$^логин-1~@$^логин-2~@$^логин-3
    ну и так далее,зарание благодарю за помощ или за какой нибудь
    намёк как это организовать.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Прочитать файл, разобрать в массив (explode), удалить из массива, записать обратно
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    preg_replace()
     
  4. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    а можно обьяснить по подробней как зделать конструкцию этой функции.
     
  5. Period

    Period Новичок

    С нами с:
    29 дек 2014
    Сообщения:
    148
    Симпатии:
    1
    explode и implode
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Куда ещё подробнее? Вбей функции в гугл, открой доки и почитай. У функции нет "конструкции", её надо вызывать... Тебе 2 разных метода подсказали, пожалуй, даже, preg_replace от runcore поэффективнее будет, но придётся почитать про регулярные выражения и поработать "серыми клеточками"
     
  7. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    спасиба за совет,итак целый день клеточками работаю,и еслибы клеточки работали правильно то я помощи не просилбы.
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    kmambasa задача решена?
     
  9. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    нет не решена,я пытаюсь зделать немного подругому и я попробовал в файле с логинами изьенить тойсть зделал их каждый логин с новой строки,но появилась новая проблема при входе на сайт проверка видать не считывает каждый лог. с новой стр.вот код проверки если реально его подправить чтоб он считывал логины в таком порядке
    Код (PHP):
    1. ~@$^логин-1
    2. ~@$^логин-2
    3. ~@$^логин-3
    то подскажите как это зделать вот код
    Код (PHP):
    1. $login=$_POST[login];
    2. $pass=$_POST[pass1];
    3. $ulist=file_get_contents("dat/ulist.dat");
    4. $users=explode("~@$^",$ulist);
    5. foreach($users as $key=>$value){
    6. if($value==$login){$numb=$key;};
    7. };
    8. if(isset($numb)){
    9. $user=file_get_contents("dat/users/$numb");
    10. $ud=explode("~~~", $user);
    11. @setcookie("n", $numb);
    12. @setcookie("p", $ud[3]);
    13. }; 
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Может проще воспользоватся базой данных
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    БД доступна не всегда и это дело автора, юзать ее или нет. Что вот реально проще в его случае, так это не выдумывать свой невероятный синтаксис, раз уж нужно хранить в файлике текстовом массивы, а использовать тот же JSON. И не заморачиваться вообще.
     
  12. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    спасиба за правку,а по поводу базы то для меня это новые проблемы,мне с файлами проще,а для чего это вообще нужно,? я решил зделать
    к примеру пользователь удаляет свою анкету с сайта,а логин остаётца то следующему зарегистрированому выдайотца не правельный номер
    и из за этого идёт збой у всех пользователей,нужно чтоб в этом файле тоже удалялось.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Тогда тебе точно нужны базы данных. А то ты, такими темпами, сам их скоро напишешь с нуля. Ну или не скоро. Очень не скоро. Или никогда.

    "Я заворачиваю болты пальцем, а не отверткой, потому что мне так проще" - вот как это звучит. Использовать нужно не то, что тебе проще, а то, что правильнее. Программист должен всегда учиться.
     
  14. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    ну тогда мне опять-же проще весь сайт написать с нуля,чем переделать эту одну задачу,это вообще реально чтоб этот скрипт считывал логины
    каждый с новой строки или нет,если нет то я небуду и голову ломать.
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Если у тебя проблема смены хранилища выливается в переписывание всего с нуля, то, быть может, так и стоит сделать. Потому, что в таком случае архитектура у тебя совсем никуда не годится, увы.

    Ды все реально. Написать что угодно можно. Но ты в итоге упорешься поддерживать свое детище. Оно сильно большое сейчас? Подумай, мб и переписывать ничего прям не надо. Мб хватит просто рефакторинга, и все не так печально, как тебе кажется.
     
  16. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    спасиба,но всёже почему этот скрипт проверяет только одну строку а не весь файл.я уже и это (\r\n)
    везде тыкал,но увы.
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Сделай var_dump($users) после чтения и эксплода.
     
  18. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    вот что получилось
    Код (PHP):
    1. array(3) { [0]=> string(0) "" [1]=> string(10) "login-1 " [2]=> string(6) "login-2" } 
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Окей, а вот там, где у вас цикл foreach, внутри него поставьте echo ($value, '<br>'); Прямо после строчки foreach.

    Код (PHP):
    1. foreach($users as $key=>$value){
    2.   echo ($value, '<br>'); 
    3.   if($value==$login){
    4.     $numb=$key;
    5.   }
    6. }
    Добавлено спустя 37 секунд:
    Да, точку с запятой после фигурной скобки ставить не нужно. Это ни на что не влияет в коде, но просто так не надо делать и все. Это не имеет смысла.
     
  20. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    тоже самое и не пускает на сайт.
     
  21. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    блин нечего не получаетца,и аватар и блокнот и данные-анкеты,вообщем всё удаляет,кроме логина с этой заразой
    Код (PHP):
    1. ~@$^ 
    с этого файла ulist.dat
     
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ну вот видишь, значит обрабатывается все, что ты вытянул из файла. Теперь построчно смотри и думай, что происходит в коде. А еще лучше, поставь себе xDebug и занимайся отладкой как белый человек, а не гаданием на вардампах.
     
  23. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    дело в том что выше перечисленое в отдельных файлах,тойсть каждый файл на пользователя,а вот в этом файле все логины и я немогу никак понять как их оттуда вытаскивать и удалять.
     
  24. Period

    Period Новичок

    С нами с:
    29 дек 2014
    Сообщения:
    148
    Симпатии:
    1
    По-русски напишите последовательность действий, которые должен выполнить пхп.
     
  25. kmambasa

    kmambasa Новичок

    С нами с:
    6 июл 2015
    Сообщения:
    18
    Симпатии:
    0
    вообщем скрипт вданный момент работает,но кагда данные в файле расположеные вот так
    Код (PHP):
    1. ~@$^логин-1~@$^логин-2~@$^логин-3
    а мне нужно его изменить чтобы он обрабатывал данные вот так
    Код (PHP):
    1. ~@$^логин-1
    2. ~@$^логин-2
    3. ~@$^логин-3
    Добавлено спустя 10 минут 56 секунд:
    вот полный код ниже идёт только форма логин и пароль
    Код (PHP):
    1. $login=$_POST[login];
    2. $pass=$_POST[pass1];
    3. $ulist=file_get_contents("dat/ulist.dat");
    4. $users=explode("~@$^",$ulist);
    5. foreach($users as $key=>$value){ 
    6. if($value==$login){$numb=$key;};
    7. };
    8. if(isset($numb)){
    9. $user=file_get_contents("dat/users/$numb");
    10. $ud=explode("~~~", $user);
    11. @setcookie("n", $numb);
    12. @setcookie("p", $ud[3]);
    13. };
    14. echo"
    15. <title>Вход в систему</title>
    16. <b><div style='background-color: #$theme[2]'>Вход в систему<br></div></b>";
    17. if(empty($numb)){echo"Извините, такого пользователя <br> не существует!";};
    18. header('Refresh: 1; url=unset.php');
    19. if($ud[3]!==$pass){echo"Введенный пароль не верен!";};
    20. header('Refresh: 1; url=unset.php');
    21. if($ud[3]==$pass){
    22. echo"Вход выполнен!";
    23. header('location:index.php');
    24. };
    25.