我正在使用CentOS7。我的index.html,action.php和file.txt都在同一文件夹中。我已经将let printf = Format.printf
let rec poll_keys () =
let open Sdlevent in
if has_event () then begin
match wait_event () with
| KEYDOWN {keysym=key} -> printf "keydown '%c'@." (Sdlkey.char_of_key key)
| KEYUP {keysym=key} -> printf "keyup '%c'@." (Sdlkey.char_of_key key)
| _ -> Sdltimer.delay 5
end;
poll_keys ()
let () =
Sdl.init [`VIDEO];
(* Sdlkey.enable_key_repeat (); *)
poll_keys ()
设置为整个/ var / www / html树。该文件确实打开,但是我无法对其进行任何写入。这是我有史以来的第一个PHP代码,所以请让我知道我是不是很蠢。 var_dump($ _ POST);也可以正常工作。
chown apache:apache
答案 0 :(得分:2)
在这种情况下,您必须使用文件句柄资源$fp
,而不是名称。
所以这个:
$name = $_POST['fname'];
$fp = fopen("file.txt","w") or die("Can not open file");
fwrite("file.txt",$name) or die ("can not write to file");
应该是:
//if(!empty($_POST['fname'])){ ..you should really check this
$name = $_POST['fname'];
$fp = fopen("file.txt","w") or die("Can not open file");
fwrite($fp,$name) or die ("can not write to file");
供参考:
http://php.net/manual/en/function.fwrite.php
int fwrite (资源 $ handle ,字符串 $ string [,int $ length ])>
在这种情况下,只写一行。
if(!file_put_contents("file.txt", $name)) die ("can not write to file");
易于使用。但是无论如何,您不需要做以下两件事:
fclose($fp);
?>
PHP完成后,文件将关闭,并且结尾标记实际上可能导致更多问题,这是值得的。我唯一使用fclose
的情况是,如果我打开文件并从中读取文件,然后用unlink
删除它,则无法unlink
对其进行打开,否则我只能让PHP关闭它。仅当您计划在PHP代码后加上HTML之类的内容时,才需要使用end标签。例如,在结束标记后留有空格可能会损坏文件下载,因为任何输出的内容都将包含在下载中。更糟糕的是,如果包含的文件具有空格(或其他填充物),那么很难找出为什么无法打开作为下载文件发送的zip文件的原因。
干杯,祝你好运。
答案 1 :(得分:0)
您需要将文件对象传递给函数
<?php
$name = $_POST['fname'];
$fp = fopen("file.txt","w") or die("Can not open file");
fwrite($fp,$name) or die ("can not write to file");
fclose($fp);
?>