0

我正在尝试做一个网络计数器,计算访问我网站的人数。

我使用 txtfile 作为计数器,但是当我开始加载我的网站时,遇到了错误。

消息:file_put_contents() [function.file-put-contents]:文件名不能为空

<?php if(! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller{


    function _construct(){
        parent::__construct();
    }
    function index(){

//Function Web Counter (count visitor)
$filename = 'counterePOD.txt';
function  inc_count() {
    global $filename;

    if (file_exists($filename)){
        $current_value = file_get_contents($filename);
    }else{
        $current_value = 0;
    }

    file_put_contents($filename, ++$current_value);
}

inc_count();
    }
    $this->load->view('login_view');    
    }
}
?>

有人可以告诉错误消息的确切含义是什么:“文件名不能为空”??

4

2 回答 2

0

像这样将文件名作为函数的参数传递。使用全局变量不是一个好习惯..

//Function definition
function  inc_count($filename) {
    if (file_exists($filename)){
        $current_value = file_get_contents($filename);
    }else{
        $current_value = 0;
    }

    file_put_contents($filename, ++$current_value);
}

//Function call
$filename = 'counterePOD.txt';
inc_count($filename);
于 2013-10-17T09:00:14.123 回答
0

您应该使用更多 OOP 方法并将文件名传递给 inc_count 函数:

<?php if(! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller{


    function _construct(){
        parent::__construct();
    }

    function  inc_count($filename) {

        if (file_exists($filename)){
            $current_value = file_get_contents($filename);
        }else{
            $current_value = 0;
        }

        file_put_contents($filename, ++$current_value);
    }

    function index(){
        //Function Web Counter (count visitor)
        $this->inc_count('counterePOD.txt');
        $this->load->view('login_view');    
    }
}
?>
于 2013-10-17T09:00:58.140 回答