4

我正在尝试编写一个函数,该函数采用两个参数(文件名和放入其中的字符串)来创建一个包含字符串的新文件。

<?php

function writeFile($name, $string) {
    $text = $string;
    $fh = fopen($name + ".txt", 'w') or die("Could not create the file.");
    fwrite($fh, $text) or die("Could not write to the file.");
    fclose($fh);
    echo "File " . $name . ".txt created!";
}

writeFile("testovFail", "Lorem ipsum dolor sit amet");

if(file_exists("testovFail.txt")) echo "<br>File exists!";

?>

这是我到目前为止所拥有的,该函数回显文件已创建,但是当我运行 IF 条件检查文件是否已创建时,它返回它不是。

4

5 回答 5

5

改用file_put_contents怎么样?

$current = "John Smith";
file_put_contents("blabla.txt", $current);
于 2013-05-18T09:13:20.193 回答
4

试试这个:fopen($name . ".txt", 'w')
$name + ".txt" 总是返回 0 !

于 2013-05-18T09:09:51.747 回答
2

$name + ".txt"这不是字符串连接在 php 中的工作方式。应该是$name.'txt'

您的代码将创建具有名称的文件,0因为它将$namestring在给定示例中)的值添加到stringand (int)'somestring' === 0

于 2013-05-18T09:10:28.470 回答
1
function writeFile($name, $string) {
    $filename = $name.".txt"; 
    $text = "helloworld"; 
    $fp = fopen($filename,"a+");  
    fputs($fp,$string); 
    fclose($fp);  
}

这应该能做到——希望到目前为止能做到。使用 +w 可以删除文件中已经存在的内容,使用 a+ 会将其附加到文本中。

于 2013-05-18T09:07:45.430 回答
0

这是一种略有不同的方法。:)

<?php
$file = new SplFileObject('file.txt', 'w');
$file->fwrite('Hi!');
于 2013-05-18T09:30:53.040 回答