Здраствуйте,возникла такая проблема,подскажите как можна организовать чтение и удаление слов,верней логинов,если они записаны в файл в одну строку и через вот такие символы Код (Text): ~@$^логин-1~@$^логин-2~@$^логин-3 ну и так далее,зарание благодарю за помощ или за какой нибудь намёк как это организовать.
Куда ещё подробнее? Вбей функции в гугл, открой доки и почитай. У функции нет "конструкции", её надо вызывать... Тебе 2 разных метода подсказали, пожалуй, даже, preg_replace от runcore поэффективнее будет, но придётся почитать про регулярные выражения и поработать "серыми клеточками"
спасиба за совет,итак целый день клеточками работаю,и еслибы клеточки работали правильно то я помощи не просилбы.
нет не решена,я пытаюсь зделать немного подругому и я попробовал в файле с логинами изьенить тойсть зделал их каждый логин с новой строки,но появилась новая проблема при входе на сайт проверка видать не считывает каждый лог. с новой стр.вот код проверки если реально его подправить чтоб он считывал логины в таком порядке Код (PHP): ~@$^логин-1 ~@$^логин-2 ~@$^логин-3 то подскажите как это зделать вот код Код (PHP): $login=$_POST[login]; $pass=$_POST[pass1]; $ulist=file_get_contents("dat/ulist.dat"); $users=explode("~@$^",$ulist); foreach($users as $key=>$value){ if($value==$login){$numb=$key;}; }; if(isset($numb)){ $user=file_get_contents("dat/users/$numb"); $ud=explode("~~~", $user); @setcookie("n", $numb); @setcookie("p", $ud[3]); }; Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
БД доступна не всегда и это дело автора, юзать ее или нет. Что вот реально проще в его случае, так это не выдумывать свой невероятный синтаксис, раз уж нужно хранить в файлике текстовом массивы, а использовать тот же JSON. И не заморачиваться вообще.
спасиба за правку,а по поводу базы то для меня это новые проблемы,мне с файлами проще,а для чего это вообще нужно,? я решил зделать к примеру пользователь удаляет свою анкету с сайта,а логин остаётца то следующему зарегистрированому выдайотца не правельный номер и из за этого идёт збой у всех пользователей,нужно чтоб в этом файле тоже удалялось.
Тогда тебе точно нужны базы данных. А то ты, такими темпами, сам их скоро напишешь с нуля. Ну или не скоро. Очень не скоро. Или никогда. "Я заворачиваю болты пальцем, а не отверткой, потому что мне так проще" - вот как это звучит. Использовать нужно не то, что тебе проще, а то, что правильнее. Программист должен всегда учиться.
ну тогда мне опять-же проще весь сайт написать с нуля,чем переделать эту одну задачу,это вообще реально чтоб этот скрипт считывал логины каждый с новой строки или нет,если нет то я небуду и голову ломать.
Если у тебя проблема смены хранилища выливается в переписывание всего с нуля, то, быть может, так и стоит сделать. Потому, что в таком случае архитектура у тебя совсем никуда не годится, увы. Ды все реально. Написать что угодно можно. Но ты в итоге упорешься поддерживать свое детище. Оно сильно большое сейчас? Подумай, мб и переписывать ничего прям не надо. Мб хватит просто рефакторинга, и все не так печально, как тебе кажется.
спасиба,но всёже почему этот скрипт проверяет только одну строку а не весь файл.я уже и это (\r\n) везде тыкал,но увы.
вот что получилось Код (PHP): array(3) { [0]=> string(0) "" [1]=> string(10) "login-1 " [2]=> string(6) "login-2" }
Окей, а вот там, где у вас цикл foreach, внутри него поставьте echo ($value, '<br>'); Прямо после строчки foreach. Код (PHP): foreach($users as $key=>$value){ echo ($value, '<br>'); if($value==$login){ $numb=$key; } } Добавлено спустя 37 секунд: Да, точку с запятой после фигурной скобки ставить не нужно. Это ни на что не влияет в коде, но просто так не надо делать и все. Это не имеет смысла.
блин нечего не получаетца,и аватар и блокнот и данные-анкеты,вообщем всё удаляет,кроме логина с этой заразой Код (PHP): ~@$^ с этого файла ulist.dat
Ну вот видишь, значит обрабатывается все, что ты вытянул из файла. Теперь построчно смотри и думай, что происходит в коде. А еще лучше, поставь себе xDebug и занимайся отладкой как белый человек, а не гаданием на вардампах.
дело в том что выше перечисленое в отдельных файлах,тойсть каждый файл на пользователя,а вот в этом файле все логины и я немогу никак понять как их оттуда вытаскивать и удалять.
вообщем скрипт вданный момент работает,но кагда данные в файле расположеные вот так Код (PHP): ~@$^логин-1~@$^логин-2~@$^логин-3 а мне нужно его изменить чтобы он обрабатывал данные вот так Код (PHP): ~@$^логин-1 ~@$^логин-2 ~@$^логин-3 Добавлено спустя 10 минут 56 секунд: вот полный код ниже идёт только форма логин и пароль Код (PHP): $login=$_POST[login]; $pass=$_POST[pass1]; $ulist=file_get_contents("dat/ulist.dat"); $users=explode("~@$^",$ulist); foreach($users as $key=>$value){ if($value==$login){$numb=$key;}; }; if(isset($numb)){ $user=file_get_contents("dat/users/$numb"); $ud=explode("~~~", $user); @setcookie("n", $numb); @setcookie("p", $ud[3]); }; echo" <title>Вход в систему</title> <b><div style='background-color: #$theme[2]'>Вход в систему<br></div></b>"; if(empty($numb)){echo"Извините, такого пользователя <br> не существует!";}; header('Refresh: 1; url=unset.php'); if($ud[3]!==$pass){echo"Введенный пароль не верен!";}; header('Refresh: 1; url=unset.php'); if($ud[3]==$pass){ echo"Вход выполнен!"; header('location:index.php'); };