php将字符串保存到文件

时间:2014-05-12 12:09:38

标签: php string save

我正在尝试将请求的字符串保存到文本文件中。 如果文件中存在字符串,则返回消息,否则保存字符串并返回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);

?>

4 个答案:

答案 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语句。