增加一个文本文件中的值并将文本写入另一个文本文件

时间:2017-07-07 03:37:48

标签: php html text int fwrite

我有一个HTML脚本,其中包含一个表单,此表单将一个Name值提交给PHP脚本。在这个PHP脚本中,我打开两个不同的文本文件,第一个文件是获取内部数字,然后将其递增1.另一个文件是打开然后写入新增加的数字以及Post中的Name值。 其中只有一个数字的第一个文件开始于" 0"这就是我遇到问题的地方。运行代码时,没有任何反应,表单被完美地提交并调用PHP脚本。但是这两个不同文本文件中唯一的值是" 0"在他们两个。相反它应该有" 1"在" amount.txt"文件和"要出现的文字:1其他文字:姓名"在" textContent.txt"文件。

我不完全确定我错在哪里,对我而言,理论上似乎是正确的。

这里是PHP部分,它是不起作用的部分。

$nam = $_POST['Name'];

$pastAmount = (int)file_get_contents('/user/site/amount.txt');
$fileOpen1 = '/user/site/amount.txt';
$newAmount = $pastAmount++;
file_put_contents($fileOpen1, $newAmount);

$fileOpen2 = '/user/site/textContent.txt';

$fileWrite2 = fopen($fileOpen2 , 'a');
$ordTxt = 'Text to appear:  ' + $newAmount + 'Other text: ' + $nam;
fwrite($fileWrite2, $ordTxt . PHP_EOL);
fclose($fileWrite2);

2 个答案:

答案 0 :(得分:1)

首先,代码中的错误:

  1. $newAmount = $pastAmount++; =>这将分配$pastAmount的值,然后递增不是您要瞄准的值。
  2. $ordTxt = 'Text to appear: ' + $newAmount + 'Other text: ' + $nam; => PHP中的连接是使用.而不是+
  3. 完成的

    正确的代码:

    $nam = $_POST['Name'];
    
    $pastAmount = (int)file_get_contents('/user/site/amount.txt');
    $fileOpen1 = '/user/site/amount.txt';
    $newAmount = $pastAmount + 1;
    // or
    // $newAmount = ++$pastAmount;
    
    file_put_contents($fileOpen1, $newAmount);
    
    $fileOpen2 = '/user/site/textContent.txt';
    
    $fileWrite2 = fopen($fileOpen2 , 'a');
    $ordTxt = 'Text to appear:  ' . $newAmount . 'Other text: ' . $nam;
    fwrite($fileWrite2, $ordTxt . PHP_EOL);
    fclose($fileWrite2);
    

答案 1 :(得分:1)

而不是:

$newAmount = $pastAmount++;

您应该使用:

$newAmount = $pastAmount + 1;

因为$ pastAmount ++将直接更改$ pastAmount的值。

然后代替

$ordTxt = 'Text to appear:  ' + $newAmount + 'Other text: ' + $nam;

您应该使用:

$ordTxt = 'Text to appear:  '.$newAmount.' Other text: '.$nam;

因为在PHP中我们使用的是。连接。

PHP代码:

<?php
$nam = $_POST['Name'];


// Read the value in the file amount
$filename = "./amount.txt";
$file = fopen($filename, "r");
$pastAmount = fread($file, filesize($filename));
$newAmount = $pastAmount + 1;
echo "Past amount: ".$pastAmount."-----New amount:".$newAmount;
fclose($file);

// Write the value in the file amount
$file = fopen($filename, "w+");
fwrite($file, $newAmount);
fclose($file);


// Write your second file 
$fileOpen2 = './textContent.txt';
$fileWrite2 = fopen($fileOpen2 , 'w+  ');
$ordTxt = 'Text to appear:  '.$newAmount.' Other text: '.$nam;
fwrite($fileWrite2, $ordTxt . PHP_EOL);
fclose($fileWrite2);
?>