Chinaunix
标题:
我晕了。请各位帮忙看看这几行代码。
[打印本页]
作者:
infom
时间:
2004-06-05 00:50
标题:
我晕了。请各位帮忙看看这几行代码。
<?php
echo "<br />;===============================<br />;";
$filename = $_SERVER['SCRIPT_NAME'];
clearstatcache();
if (file_exists($filename)) {
print "TRUE";
} else {
print "FALSE";
}
echo "<br />;===============================<br />;";
?>;
复制代码
执行结果居然是 FALSE;
作者:
infom
时间:
2004-06-05 01:04
标题:
我晕了。请各位帮忙看看这几行代码。
:(
解决:
$filename =$_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'];
作者:
infom
时间:
2004-06-05 07:51
标题:
我晕了。请各位帮忙看看这几行代码。
<?php
class txt_data{
var $data = "data.txt"; //数据文件。
var $data_dir = "/data"; //数据文件目录。
var $_err = 0;
var $_err_msg = "";
var $_result = ""; //数据游标.
var $_separator = " "; //数据界定符。
var $_array_separator = " "; //数据界定符。
var $_data_line = 0; //数据总行数。
var $_selected = ""; //临时数据。
var $_tmp = ""; //测试用变量。
/** 清除错误标志 */
function clear_err(){
$this->;_err = 0;
$this->;_err_msg = "";
}
/** 选择关键字列的数据
* $id 是行的关键字。
* $file 是数据文件的绝对目录。
* $value_name 是列的关键字。
* 最后返回寻找到列的内容。
* 如果失败则置错误标志为 1。同时返回 FALSE
*/
function select_value($id,$value_name){
$this->;clear_err();
$this->;read_data($id);
if($this->;_err == 0){
if(is_array($this->;_result)){
foreach($this->;_result as $key =>; $val){
$tmp_arr = explode("=",$val);
if($tmp_arr[0] == $value_name){
$this->;_selected = $tmp_arr[1];
return $this->;_selected;
}
}
}else{
$this->;_err = 1;
$this->;_err_msg = $value_name."列不存在!";
return false;
}
}else{
return false;
}
}
/** 返回错误信息 */
function get_err_msg(){
return $this->;_err_msg;
}
/** 检查数据文件是否 存在,并确定可读写。
* $file 是数据文件的绝对目录。
* 如果成功则返回 清除错误标志;
* 失败则置错误标志和信息。
*/
function check_data_stat($file){
$this->;clear_err();
clearstatcache();
if(file_exists($file)){
if(is_readable($file)){
if(is_writeable($file)){
$this->;clear_err();
}
}
}else{
$this->;_err = 1;
$this->;_err_msg = "文件权限不够,请确定数据文件可读写!";
//return false;
}
}
/** 计算数据列的总数据。
* 没有返回值。
* $file 是数据文件的绝对目录。
* 成功则设置 _data_line 为数据列数量。
* 失败无任何操作。
*/
function count_data_line(){
$this->;clear_err();
$file=$_SERVER['DOCUMENT_ROOT'].$this->;data_dir."/".$this->;data;
$this->;check_data_stat($file);
if($this->;_err == 0){
$fp = fopen($file,"rb");
rewind($fp);
$tmp_int = 0;
while($line = fgets($fp)){
$tmp_int++;
}
$this->;_data_line = $tmp_int;
return true;
fclose($fp);
}else{
return false;
}
}
/** 读取数据内容。
* $id 是数据行的键值。
* $file 是数据文件的绝对目录。
* 成功则返回true。
* 失败返回 false;
* 如果返回值为空,则说明没有对应数据。
*/
function read_data($id){
$this->;clear_err();
$file=$_SERVER['DOCUMENT_ROOT'].$this->;data_dir."/".$this->;data;
$this->;check_data_stat($file);
if($this->;_err == 0){
$fp = fopen($file,"rb");
rewind($fp);
while($line = fgets($fp)){
$data = explode($this->;_separator,trim($line));
if(intval(trim($data[0])) == intval($id)){
$this->;_result = $data;
break;
}else{
$this->;_result = "";
}
}
return true;
fclose($fp);
}else{
$this->;_err =1;
$this->;_err_msg = "数据文件读取错误。"; // ?这里逻辑比较混乱。
return false;
}
}
/** 插入新数据
* $file 是数据文件的绝对目录。
* $array_data 为欲插入的数据内容。形式必须为数组或字符串。
* 成功返回保存的数据的列ID。
* 失败置错误标志和信息。同时返回FALSE;
*/
function insert_data($array_data){
$this->;clear_err(); //清除错误标示.
$file=$_SERVER['DOCUMENT_ROOT'].$this->;data_dir."/".$this->;data; //数据文件绝对地址。
$this->;check_data_stat($file); //数据文件是否可读写。
if($this->;_err == 0){ //如果没有错误。
$this->;count_data_line(); //得到当前行标。
$data_id=$this->;_data_line + 1; //当前行标加1作为下一行行标
$fp=fopen($file,'ab'); //以写方式打开数据文件,忽略结束符。
if(is_array($array_data)){ //如果参数为数组。
$data_line = implode($this->;_separator,$array_data); //分解数组为字符串。
$data_line .= "\r\n"; //加上数据行结束符
$data_line = $data_id.$this->;_separator.$data_line; //得到写入数据。
if(!fwrite($fp,$data_line,strlen($data_line))){ //如果写入数据失败。
$this->;_err = 1; //置错误标示。
$this->;_err_msg ="数据保存错误!"; //置错误信息。
return false; //返回错误。
}else{ //如果写入成功。
return $data_id; //返回行标。
}
}elseif(is_string($array_data)){ //如果参数为字符串形式。
$data_line = eregi_replace(",",$this->;_separator,$array_data); //替换字符串分割符为数据文件分割符。
$data_line = $data_id.$this->;_separator.$data_line."\r\n"; //得到写入数据。
if(!fwrite($fp,$data_line,strlen($data_line))){ //如果写入数据失败
$this->;_err = 1; //置错误标志
$this->;_err_msg ="数据保存错误!"; //置错误信息。
return false; //返回错误。
}else{ //如果写入成功
return $data_id; //返回写入成功行标
}
}
fclose($fp); //关部文件。
}else{ //如果文件不可以读写。
return false; //返回错误。
}
}
}
?>;
复制代码
作者:
夜猫子
时间:
2004-06-05 10:56
标题:
我晕了。请各位帮忙看看这几行代码。
提醒楼上的一下,贴这么多代码出来之前花一两分钟写点说明不会死人的
作者:
infom
时间:
2004-06-05 13:40
标题:
我晕了。请各位帮忙看看这几行代码。
接受批评。
凡是我自己写的都有注释了。直接用的PHP函数没加注释。
作者:
夜猫子
时间:
2004-06-05 13:55
标题:
我晕了。请各位帮忙看看这几行代码。
写注释这个习惯很好,至少比我做得好
,但是如果有说明的话,看代码之前就会对全局有一个了解,看起来会省力很多,特别是这种公开发表的代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2