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


PHP write contents to file with user submitted data

我正在尝试将内容写入包含用户提交数据的文件。我有一些文本说"我的名字是",在这个文本之后,我想写下用户提交的值。我该怎么做?我试图用下面给出的代码来做这件事。

<?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写入

"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变量,需要使用双引号。

$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);
?>

您必须将字符串与变量连接起来。

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

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