我正在尝试编写一个函数,它接受两个参数(文件名和放入内部的sting),创建一个包含字符串的新文件。
<?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!";
?>
这是我到目前为止,函数echos创建文件,但是当我运行IF条件来检查文件是否已创建时,它返回它不是。
答案 0 :(得分:5)
如何使用file_put_contents呢?
$current = "John Smith";
file_put_contents("blabla.txt", $current);
答案 1 :(得分:4)
试试这个:fopen($name . ".txt", 'w')
$ name +“。txt”总是返回0!
答案 2 :(得分:2)
$name + ".txt"
这不是string concatenation在php中的工作方式。它应该是$name.'txt'
。
您的代码将生成名为0
的文件,因为它会将$name
(在给定示例中为string
)的值添加到string
和{{1 }}
答案 3 :(得分:1)
function writeFile($name, $string) {
$filename = $name.".txt";
$text = "helloworld";
$fp = fopen($filename,"a+");
fputs($fp,$string);
fclose($fp);
}
这应该做到 - 希望它到目前为止。 使用+ w,您将删除已存在于文件中的内容,并使用+将其附加到文本中。
答案 4 :(得分:0)
这是一种略有不同的方法。 :)
<?php
$file = new SplFileObject('file.txt', 'w');
$file->fwrite('Hi!');