Мой последний вопрос не был объяснен очень хорошо.
То, что я пытаюсь сделать здесь, – это вставить данные в файл PHP, используя функцию fwrite в другом .php-файле.
Чтобы это было просто, я помечен тем, что мне нужны данные, вставленные как file.php, и тот, который я использую для запуска fwrite, – это edit.php
Теперь у меня проблема с записью, в чем моя проблема, мне нужно ВСТАВИТЬ эти данные, перед закрывающим тегом php на file.php.
Я пытался сделать это, удалив закрывающий тег php, записывая данные, а затем переписывая тег.
Вот мой исходный код:
<?php $rows = file("file.php"); $tagremove = "?>"; foreach($rows as $key => $row) { if(preg_match("/($tagremove)/", $row)) { unset($rows[$key]); } } file_put_contents("file.php", implode("", $rows)); $User = $_GET["user"]; $File = "file.php"; $Handle = fopen($File, "a"); fwrite($Handle, ""); fwrite($Handle, $User); fwrite($Handle, "\r\n"); fwrite($Handle, "?>"); print "Data Written"; fclose($Handle); ?>
Когда я запускаю это на Edit.php, он вставляет эти данные в файл, но только записывает его в первую строку и заменяет все, что уже есть. (В моем случае это открывающий тег php). Я не знаю, что я делаю неправильно, или если есть другой способ сделать это, но любая помощь будет оценена по достоинству.
Изменить: это снова для чат-клиента.
У меня есть файл, который отправляет сообщение в файл .txt, который затем читает клиент.
И этот файл читает файл file.php (staff.php), чтобы проверить, является ли пользователь подчиненным сотрудником.
Если верно, что пользователь является сотрудником, то он изменяет переменную имени пользователя в send.php.
И до сих пор send.php только успешно, включая Staff.php, я пробовал staff.txt, и причина в том, что php-код находится в staff.php.
Попробуй это:
$data="echo 'hello world!';"; $filecontent=file_get_contents('file.php'); // position of "?>" $pos=strpos($filecontent, '?>'); $filecontent=substr($filecontent, 0, $pos)."\r\n".$data."\r\n".substr($filecontent, $pos); file_put_contents("file.php", $filecontent);
Не забывайте, что вам нужно проверить данные у пользователя.
Хорошо, что лучше использовать файл данных. Я использую json, потому что его простой в использовании очень легко разбирать человеческие глаза:
// read file $data = file_get_contents('data.json'); $json = json_decode($data, true); // manipulate data $json['users'][] = $_GET['user']; // write out file $dataNew = json_encode($json); file_put_contents('data.json', $dataNew);
причина в том, что PHP-код находится в staff.php
Ну, это не то, что вы обманываете. Вы должны писать / читать этот вид информации из хранилища данных – это может быть файл или база данных … но не настоящий скрипт.