我有一個用戶名和displaynames店就這樣的文件替換文本文件中的字符串。我需要在列表中的兩個區域中替換它們(需要被替換兩次)PHP使用
我試圖創建一個表單,用戶可以更改它們的顯示名稱。我試圖從一個頁面複製我的代碼,在那裏它查找文件中的帳戶密碼,找到它並替換它,但它似乎不適用於此文件。
用於更改名稱的表單很簡單,它將它們輸入到它們的成員名稱中(所以我可以使用它來讓它在列表中找到它們的名稱),然後使用它們輸入的顯示名稱來更改它們的名稱在文件中顯示名稱。
窗體頁代碼:
<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>
以下是處理
<?
$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);
?>
當我輸入的數據,並點擊提交我的PHP代碼,它進入我的成功頁面,但是它不」不要在正確的文件中做任何改變,我不確定如何知道我錯過了什麼。
美麗,我完全錯過了strpos,謝謝科迪! –
注意,如果你有兩個類似的名字,比如'john'和'johns',你會得到不需要的效果('johns'可以被'john'覆蓋)。請參閱http://stackoverflow.com/a/35695745/487923以避免它。 – ksimka
然後你可以:strpos($ line,$ membername。「=」)=== 0來避免這個問題。 – Kordi