PHP 使用用户提交的数据将内容写入文件

PHP write contents to file with user submitted data

我正在尝试将内容写入包含用户提交数据的文件。我有一些文字说 "my name is" ,在这段文字之后我想写用户提交的值。我该怎么做呢?我试图用下面给出的代码来做到这一点。

<?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"

如何解决这个问题?

要输出一个PHP变量,需要使用双引号。

$data= "My name is $name";

$data = 'My name is '.$name;

试试这个:

<?php
$name=$_POST['name'];
$my_file='file.txt';
$handle= fopen($my_file,'w+');
$data= 'My name is ' . $name;
$fwrite($handle, $data);
?>

您需要在将名称写入文件时访问变量 $name。您现在执行此操作的方式不会在字符串中添加变量的值。为此,您可以更改:

$data= 'My fname is $name and My lname is $lname';

$data= "My fname is $name and My lname is $lname";

双引号替换字符串文字中变量的值,因为它在表达式中使用之前被评估。有关详细信息,请参阅 this 答案。

$data= 'My fname is '.$name.' and My lname is '.$lname;

此处,字符串文字使用 . 运算符与变量值连接。

你必须用变量连接你的字符串。

<?php
  $name=$_POST['name'];
  $my_file='file.txt';
  $handle= fopen($my_file,'w+');
  $data= 'My name is '.$name;
  $fwrite($handle,$data);
  $fclose($handle);
?>

在PHP中,变量returns的值只能在双引号中,单引号将其视为字符串。

<?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's value but single quote is a literal
      $fwrite($handle,$data);
?>