У меня есть файл с именами пользователей и displaynames магазина в нем так:PHP Заменить строку в текстовом файле с помощью
testname=displayname<br>
testname2=displayname2<br>
etc=etc<br>
Этот список делается дважды в тот же файл, одни и те же имена пользователей и те же displaynames. Мне нужно заменить их в обеих областях в списках (необходимо заменить дважды)
Я пытаюсь создать форму, в которой использование может изменить отображаемое имя. Я пытался скопировать код со страницы, где он искал пароли для своих учетных записей в файле, нашел его и заменил, однако он, похоже, не работает для этого файла.
Форма для изменения их имен проста, она включает в себя имя своего члена (чтобы я мог использовать это, чтобы найти его имя в списке), а затем использует то, что они ввели для отображаемого имени, чтобы изменить их имена отображаемое имя в файле.
Форма Страница Код:
<center>Change Display Name:<p>
<form action="http://example.com/xxx/displaynamesave.php" class="form" method="post">
<input "membername" name="membername" /><p><input "displayname" name="displayname" /><p><input name="Submit" type="submit" /></form></p>/center>
и ниже мой PHP код для обработки
<?
$fileurl = '/xxx/myfiles/sitename/xxx/memberfiletest';
$membername = $_POST['membername'];
$displayname = $_POST['displayname'];
$file = file($fileurl, FILE_IGNORE_NEW_LINES); // Get file as array of lines
foreach ($file AS $n=>$line)
if (substr($line, 0, 20) === '$membername') // Line starts with 'membername'
$file[$n] = '$membername = '.$displayname; // Replace displayname
file_put_contents($fileurl, implode("\n", $file)); // Put file back together
$success_page = 'http://example.com/thisplace/xxx/xxx/successredirector.html';
header('Location: '.$success_page);
?>
Когда входные данные и нажмите отправить, он идет на мою страницу успеха, однако это Безразлично» t внесите какие-либо изменения в соответствующий файл, и я не уверен, как сообщить, что мне не хватает.
Красивая, я полностью пропустил strpos, спасибо Корди! –
Обратите внимание, что если у вас есть 2 похожих имени, таких как 'john' и' johns', вы получите нежелательные эффекты ('johns' может быть перезаписано' john'). См. Http://stackoverflow.com/a/35695745/487923, чтобы избежать этого. – ksimka
вы могли бы просто: strpos ($ line, $ membername. "=") === 0, чтобы избежать этой проблемы. – Kordi