注:extension=php_dbase.dll 已经默认开启代码如下:
<?php
$file_dbf = 'test.dbf';
$db = dbase_open($file_dbf,0);
?>
出现错误提示:
Warning: dbase_open() [function.dbase-open]: unable to open database test.dbf in F:\web\AppServ\www\test\dbf.php on line 3我试了很多路径都出现同样的警告:(路径是正确的)
$file_dbf = 'test.dbf';
$file_dbf = '/test.dbf';
$file_dbf = ./test.dbf';
$file_dbf = 'http://localhost/test/test.dbf';
$file_dbf = 'F:\web\AppServ\www\test\test.dbf';
$file_dbf = 'F:/web/AppServ/www/test/test.dbf';请问这是什么原因?应该如何解决?谢谢~

解决方案 »

  1.   

    unable to open database test.dbf 是无法打开 test.dbf,并不是找不到这个文件php_dbase 只支持 dbase 系列数据库:php_dbaseII、dbaseIII、dbaseIV
    而不支持 foxpro 的库,但你可以修改 dbf 文件的第一个字节来使基本的 foxpro 自由表兼容于 dbaseIII,但有紧凑索引(cdx)的表不行
      

  2.   


    不好意思,我对dbf不太了解,见笑了。请问PHP读取foxpro dbf文件有什么好的方法吗?最好能方便的存为数组。十分感谢!
      

  3.   

    用 ODBCVFP(.dbc, .dbf) 
    标准连接: 
    "Provider=vfpoledb;Data Source=C:\DatabasePath\MyDatabase.dbc; " 
    或 
    "Provider=VFPOLEDB.1;Data Source=d:\temp;Password= " ";Collating Sequence=MACHINE " 
      

  4.   


    感谢这位仁兄,还有些问题望不吝赐教:公司员工以“复制粘贴”的方式,复制dbf数据粘贴到excel模板中,并根据excel模板的公式计算出结果,于是想做个小软件简化这一过程。我没学过C/S开发,只好用PHP来蛮干,毕竟PHP不是干这些的,结果是处处碰壁,首先是PHPExcel类不支持直接修改已有的excel文件,然后又是这个dbf问题。请问编这儿软件PHP有什么好的解决思路吗?如果PHP不能做到,什么开发工具比较方便做这个软件?
      

  5.   

    怎么能这么做呢?
    1、既然能“复制dbf数据粘贴到excel模板中”,那么就应有foxpro环境了。你可以写个程序完成这个工作。具体做法可在 其他数据库--VFP 讨论区讨论。这与 C/S 没有关系
    2、vfp 有指令可以直接将数据表(也可是查询结果)导出到 EXECL
    3、PHPExcel类是支持直接修改已有的excel文件的,对于这一点毋庸置疑
    4、PHPExcel类同时支持公式的写入和运算
    5、虽然你对使用php读取vfp数据库有些问题,但是你也可以用 vfp 导出的 execl 或 csv 文件进行处理
      

  6.   


    我是新来的,很多情况不大清楚,只知道:1、无权访问总服务器,能得到的原始数据只有dbf文件。
    2、Excel模板是其他员工设计好的,里面自带公式了,只需要将dbf数据复制粘贴到对应的sheet中。(相当于填空)我真不知道PHPExcel类能够直接修改已有的excel文件,百度google了半天,只有用COM实现的。请问PHPExcel具体如何修改已有的excel文件?PS:我的思路比较简单,PHP读取dbf文件->转为数组->用PHPExcel循环写入原excel文件。不知这样是否合理?
      

  7.   

    合理,为什么不合理呢?你需要注意的是
    用php读取vfp的dbf,需要在同一台机器中安装vfp开发环境(当然也可只安装同版本的运行库和ODBL支持),然后通过php提供的 odbc 函数组访问
      

  8.   


    十分感谢你的耐心回答,我现在就把分给你吧,请问PHPExcel类如何直接修改已经存在的excel文件呢?