免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1466 | 回复: 5
打印 上一主题 下一主题

我晕了。请各位帮忙看看这几行代码。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-05 00:50 |只看该作者 |倒序浏览

  1. <?php
  2. echo "<br />;===============================<br />;";
  3. $filename = $_SERVER['SCRIPT_NAME'];
  4. clearstatcache();
  5. if (file_exists($filename)) {
  6.     print "TRUE";
  7. } else {
  8.     print "FALSE";
  9. }
  10. echo "<br />;===============================<br />;";
  11. ?>;
复制代码


执行结果居然是 FALSE;

论坛徽章:
0
2 [报告]
发表于 2004-06-05 01:04 |只看该作者

我晕了。请各位帮忙看看这几行代码。

:(

解决:

$filename =$_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'];

论坛徽章:
0
3 [报告]
发表于 2004-06-05 07:51 |只看该作者

我晕了。请各位帮忙看看这几行代码。


  1. <?php
  2. class txt_data{
  3.         var $data              = "data.txt";   //数据文件。
  4.         var $data_dir          = "/data";      //数据文件目录。
  5.         var $_err              = 0;
  6.         var $_err_msg          = "";
  7.         var $_result           = "";           //数据游标.
  8.         var $_separator        = "        ";         //数据界定符。
  9.         var $_array_separator  = " ";          //数据界定符。
  10.         var $_data_line        = 0;            //数据总行数。
  11.         var $_selected         = "";           //临时数据。
  12.         var $_tmp              = "";           //测试用变量。

  13.     /** 清除错误标志 */
  14.     function clear_err(){
  15.             $this->;_err = 0;
  16.                 $this->;_err_msg = "";
  17.         }  
  18.         /** 选择关键字列的数据
  19.          * $id 是行的关键字。
  20.          * $file 是数据文件的绝对目录。       
  21.          * $value_name 是列的关键字。
  22.          * 最后返回寻找到列的内容。
  23.          * 如果失败则置错误标志为 1。同时返回 FALSE
  24.          */
  25.         function select_value($id,$value_name){
  26.             $this->;clear_err();
  27.         $this->;read_data($id);
  28.                 if($this->;_err == 0){
  29.                 if(is_array($this->;_result)){
  30.                         foreach($this->;_result as $key =>; $val){
  31.                                 $tmp_arr = explode("=",$val);
  32.                                         if($tmp_arr[0] == $value_name){
  33.                                                 $this->;_selected = $tmp_arr[1];
  34.                                         return $this->;_selected;
  35.                                         }
  36.                                 }
  37.                     }else{
  38.                         $this->;_err = 1;
  39.                             $this->;_err_msg = $value_name."列不存在!";
  40.                             return false;
  41.                     }
  42.                 }else{
  43.                     return false;
  44.                 }
  45.         }
  46.         /** 返回错误信息 */
  47.         function get_err_msg(){
  48.             return $this->;_err_msg;
  49.         }
  50.         /** 检查数据文件是否 存在,并确定可读写。
  51.          *  $file 是数据文件的绝对目录。
  52.          *  如果成功则返回 清除错误标志;
  53.          *  失败则置错误标志和信息。
  54.          */
  55.         function check_data_stat($file){
  56.             $this->;clear_err();
  57.             clearstatcache();
  58.                 if(file_exists($file)){
  59.                     if(is_readable($file)){
  60.                          if(is_writeable($file)){
  61.                                $this->;clear_err();
  62.                               }
  63.                          }
  64.                    }else{
  65.                        $this->;_err = 1;
  66.                            $this->;_err_msg = "文件权限不够,请确定数据文件可读写!";
  67.                        //return false;
  68.                    }
  69.         }
  70.         /** 计算数据列的总数据。
  71.          *  没有返回值。
  72.          *  $file 是数据文件的绝对目录。         
  73.          *  成功则设置 _data_line 为数据列数量。
  74.          *  失败无任何操作。       
  75.          */
  76.         function count_data_line(){
  77.             $this->;clear_err();
  78.                 $file=$_SERVER['DOCUMENT_ROOT'].$this->;data_dir."/".$this->;data;       
  79.             $this->;check_data_stat($file);
  80.                 if($this->;_err == 0){
  81.                     $fp = fopen($file,"rb");
  82.                         rewind($fp);
  83.                         $tmp_int = 0;
  84.                         while($line = fgets($fp)){
  85.                 $tmp_int++;
  86.                         }
  87.                     $this->;_data_line  = $tmp_int;
  88.                         return true;
  89.                         fclose($fp);
  90.                 }else{
  91.                     return false;
  92.                 }
  93.         }
  94.         /** 读取数据内容。
  95.          *  $id 是数据行的键值。
  96.          *  $file 是数据文件的绝对目录。       
  97.          *  成功则返回true。
  98.          *  失败返回 false;
  99.          *  如果返回值为空,则说明没有对应数据。
  100.          */
  101.     function read_data($id){
  102.             $this->;clear_err();
  103.                 $file=$_SERVER['DOCUMENT_ROOT'].$this->;data_dir."/".$this->;data;
  104.                 $this->;check_data_stat($file);
  105.                 if($this->;_err == 0){
  106.                     $fp = fopen($file,"rb");
  107.                         rewind($fp);
  108.                         while($line = fgets($fp)){
  109.                             $data = explode($this->;_separator,trim($line));
  110.                             if(intval(trim($data[0])) == intval($id)){
  111.                                 $this->;_result = $data;
  112.                                         break;
  113.                                 }else{
  114.                                     $this->;_result = "";
  115.                                 }
  116.                         }
  117.                         return true;
  118.                         fclose($fp);
  119.                 }else{
  120.                     $this->;_err =1;
  121.                 $this->;_err_msg = "数据文件读取错误。"; // ?这里逻辑比较混乱。
  122.                         return false;
  123.                 }
  124.         }
  125.         /** 插入新数据
  126.          *  $file 是数据文件的绝对目录。               
  127.          *  $array_data 为欲插入的数据内容。形式必须为数组或字符串。
  128.          *  成功返回保存的数据的列ID。
  129.          *  失败置错误标志和信息。同时返回FALSE;
  130.          */
  131.         function insert_data($array_data){
  132.             $this->;clear_err(); //清除错误标示.
  133.                 $file=$_SERVER['DOCUMENT_ROOT'].$this->;data_dir."/".$this->;data; //数据文件绝对地址。
  134.                 $this->;check_data_stat($file); //数据文件是否可读写。
  135.                 if($this->;_err == 0){ //如果没有错误。
  136.                     $this->;count_data_line(); //得到当前行标。
  137.                         $data_id=$this->;_data_line + 1; //当前行标加1作为下一行行标
  138.                     $fp=fopen($file,'ab'); //以写方式打开数据文件,忽略结束符。
  139.                 if(is_array($array_data)){ //如果参数为数组。
  140.                         $data_line  = implode($this->;_separator,$array_data); //分解数组为字符串。
  141.                             $data_line .= "\r\n"; //加上数据行结束符               
  142.                         $data_line  = $data_id.$this->;_separator.$data_line; //得到写入数据。
  143.                                 if(!fwrite($fp,$data_line,strlen($data_line))){ //如果写入数据失败。
  144.                                 $this->;_err = 1; //置错误标示。
  145.                                         $this->;_err_msg ="数据保存错误!"; //置错误信息。
  146.                                         return false; //返回错误。
  147.                                 }else{ //如果写入成功。
  148.                                         return $data_id; //返回行标。
  149.                                 }
  150.                     }elseif(is_string($array_data)){ //如果参数为字符串形式。
  151.                             $data_line = eregi_replace(",",$this->;_separator,$array_data); //替换字符串分割符为数据文件分割符。
  152.                             $data_line = $data_id.$this->;_separator.$data_line."\r\n"; //得到写入数据。
  153.                                 if(!fwrite($fp,$data_line,strlen($data_line))){ //如果写入数据失败
  154.                                 $this->;_err = 1; //置错误标志
  155.                                         $this->;_err_msg ="数据保存错误!"; //置错误信息。
  156.                                         return false; //返回错误。
  157.                                 }else{ //如果写入成功
  158.                                         return $data_id; //返回写入成功行标
  159.                                 }
  160.                         }
  161.                         fclose($fp); //关部文件。
  162.                 }else{ //如果文件不可以读写。
  163.             return false; //返回错误。
  164.                 }
  165.         }
  166. }
  167. ?>;
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-06-05 10:56 |只看该作者

我晕了。请各位帮忙看看这几行代码。

提醒楼上的一下,贴这么多代码出来之前花一两分钟写点说明不会死人的

论坛徽章:
0
5 [报告]
发表于 2004-06-05 13:40 |只看该作者

我晕了。请各位帮忙看看这几行代码。



接受批评。

凡是我自己写的都有注释了。直接用的PHP函数没加注释。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-06-05 13:55 |只看该作者

我晕了。请各位帮忙看看这几行代码。

写注释这个习惯很好,至少比我做得好 ,但是如果有说明的话,看代码之前就会对全局有一个了解,看起来会省力很多,特别是这种公开发表的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP