Я пытаюсь записать содержимое в файл с данными пользователя. У меня есть текст, который говорит "мое имя", и после этого текста я хочу написать представленное пользователем значение. Как мне это сделать? Я пытаюсь сделать это с помощью кода, приведенного ниже.
<?php
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$my_file='file.txt';
$handle= fopen($my_file,'w+');
$data= 'My fname is $name and My lname is $lname';
$fwrite($handle,$data);
?>
Когда я запускаю этот код, $ name не принимает входное значение и записывает как $name
like
"My name is $name"
Как это исправить?
Вам нужно получить доступ к переменной $name
при записи имени в файл. То, как вы делаете это сейчас, не добавляет значения переменной в строку. Для этого вы можете изменить:
$data= 'My fname is $name and My lname is $lname';
в
$data= "My fname is $name and My lname is $lname";
Двойные кавычки заменяют значение переменных в строковом литерале, когда оно вычисляется до того, как оно используется в выражении. Для получения дополнительной информации обратитесь к этому ответу.
или
$data= 'My fname is '.$name.' and My lname is '.$lname;
Здесь строковый литерал конкатенируется со значением переменных с помощью .
оператор.
В PHP переменная возвращает значение только в двойных кавычках, одинарная цитата рассматривает ее как строку.
<?php
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$my_file='file.txt';
$handle= fopen($my_file,'w+');
$data= "My fname is $name and My lname is $lname"; // Change the quote from single to double. for php to parse and replace the variable with it value but single quote is a literal
$fwrite($handle,$data);
?>
Вы должны согласовать строку с переменной.
<?php
$name=$_POST['name'];
$my_file='file.txt';
$handle= fopen($my_file,'w+');
$data= 'My name is '.$name;
$fwrite($handle,$data);
$fclose($handle);
?>
Попробуй это:
<?php
$name=$_POST['name'];
$my_file='file.txt';
$handle= fopen($my_file,'w+');
$data= 'My name is ' . $name;
$fwrite($handle, $data);
?>
Чтобы получить переменную PHP для вывода, вам нужно использовать двойные кавычки.
$data= "My name is $name";
или
$data = 'My name is '.$name;
$data= "My name is $name";
(Просто подожди вампиров)