我正在尝试将请求的字符串保存到文本文件中。 如果文件中存在字符串,则返回消息,否则保存字符串并返回ok消息。 以下是我的所作所为,而且不起作用。我没有在当前目录中获得任何文件。
<?php
$data=$_REQUEST["data"];
function registration($dat)
{
$file = 'data.txt';
if( strpos(file_get_contents($file),$_GET[$dat]) !== false) {
$current = file_get_contents($file);
$current .= $dat;
file_put_contents($file, $current);
$result.='Data Added ok!!';
return $result;
} else {
$result.='Data Already Saved';
return $result;
}
}
echo registration($data);
?>
答案 0 :(得分:1)
你可能犯了一个错误。什么是$ dat?
$current .= $dat;
另外,我怀疑使用!==,为什么不简单!=?
答案 1 :(得分:1)
试试这个 更新 ::在每次保存时添加新行:
$data=((string)$_REQUEST["data"]);
echo registration($data);
function registration($dat,$file = 'data.txt')
{
$result='';
$fileContent=file_get_contents($file);
if( strpos($fileContent,$dat) === false) {
$current = $fileContent;
$current .= "\r\n".$dat;
file_put_contents($file, $current);
$result.='Data Added ok!!';
} else {
$result.='Data Already Saved';
}
return $result;
}
答案 2 :(得分:0)
你将这里的变量与$ _GET和$ _REQUEST混合在一起。它适用于您的情况:
<?php
$data=$_REQUEST["data"];
function registration($data)
{
$file = 'data.txt';
$content = file_get_contents($file);
mb_internal_encoding('UTF-8');
if( mb_strpos($content, $data) !== false) {
file_put_contents($file, $content.$data);
$result ='Data Added ok!!';
return $result;
} else {
$result ='Data Already Saved';
return $result;
}
}
echo registration($data);
?>
答案 3 :(得分:0)
在同一目录中创建一个名为data.txt
的空文件,并将文件的权限更改为+w
并检查您的if语句。