如何自动将表单生成的文本复制到PHP中的另一个文件中?

时间:2011-04-09 20:45:38

标签: php

因此,在我的网站上,我有一个表单设置,当一个人输入信息时,它会向另一个页面吐出,其结果全部格式化为大约10行。如何让PHP复制这10行并将其附加到我网站上另一个文件的末尾?如果这只能在JavaScript中使用,请您告诉我,以便我可以在Javascript论坛发帖?

让我提供一个指向我网站的链接来说明:请访问new / entry.hostei.com(删除/),然后点击底部的“提交查询”。您无需在框中键入任何内容。查看页面源,我想要复制的行是< / head&gt ;,通过接下来的十行(直到空格开始)。

注意:我不想替换“目标文件”,而只是在最后添加代码行。

我曾尝试在Google上搜索此内容,但它涉及太多关键字,因此没有太多有用的输出。我还问过另一个论坛,但到目前为止他们还没能提供任何有用的输出。

2 个答案:

答案 0 :(得分:1)

  

如何让PHP复制这10行并将其附加到我网站上另一个文件的末尾?

容易。给定$data是要添加的行的数组,$filename是要追加到的文件的名称:

// Open the file in Append mode, with the file pointer placed at the end of the file.
// The file will be created if it does not exist.
    $fh = fopen($filename, 'a+');
// Establish a lock on the file.
    flock($fh, LOCK_EX);
// Write each line in the array and a newline.
    foreach($data as $line) {
        fwrite($fh, $line);
        fwrite($fh, "\n");
    }
// Expressly release the lock and close the file.
    flock($fh, LOCK_UN);
    fclose($fh);

如果$data是字符串而不是数组,

// Open the file in Append mode, with the file pointer placed at the end of the file.
// The file will be created if it does not exist.
    $fh = fopen($filename, 'a+');
// Establish a lock on the file.
    flock($fh, LOCK_EX);
// Write the data and a newline.
    fwrite($fh, $data);
    fwrite($fh, "\n");
// Expressly release the lock and close the file.
    flock($fh, LOCK_UN);
    fclose($fh);

此外,

  

如果这只能在JavaScript中使用,请你告诉我

恰恰相反,Javascript无法访问您的服务器或客户端系统的文件系统。

答案 1 :(得分:0)

您可能想尝试file_put_contents:

file_put_contents( "filename.txt", $line, FILE_APPEND );

这将放在PHP文件中,将结果输出到屏幕,您需要将“$ line”替换为包含正在输出的行的变量。将“filename.txt”更改为您希望添加行的文本文件。任何有效的文件名都可以。

根据代码的编写方式,可能还涉及其他内容。您可以保持它非常简单,并为您正在处理的每一行单独执行file_put_contents:

file_put_contents( "filename.txt", $line1, FILE_APPEND );
file_put_contents( "filename.txt", $line2, FILE_APPEND );
file_put_contents( "filename.txt", $line3, FILE_APPEND );
...etc...

上面的地方,$ line1,$ line2,$ line3被结果页面上输出的变量名替换。

如果线路输出处于循环中,您可能只需要一次file_put_contents,就像我在顶部的第一个示例中一样。同样,这完全取决于您现有代码的一些细节。

另外需要注意的是,您可能需要在写入磁盘的行末尾添加换行符(\ n)。可能需要这样做以防止您的线条在输出文件的同一行上出现在一起:

file_put_contents( "filename.txt", $line . "\n", FILE_APPEND );

有关file_put_contents的更多信息,请参阅此处: http://www.php.net/file_put_contents