今天做了下测试,在thinkphp项目中任意一个Controller \ Model\ Common/function.php里写file_put_contents('log.txt',"log info")
最后生成的log.txt居然位于项目根目录!
难怪thinkphp地址栏格式是http://localhost/项目名/index.php/模块名/控制器名/方法名/参数,这也就意味着每次访问thinkphp的网站时,每次都是访问的index.php,通过向该页面传参再路由到其他模块当中。(可能这么理解也不对,回头有空了看看源码确认一下)
于是这样就好办了,php在进行文件操作的时候,使用文件绝对路径居然报错
file_put_contents('/project/file/log.txt','hehe')是报错的,但是file_put_contents(‘../../log.txt',"log info")又没问题,试了其他的比如unlink这些文件操作的函数基本如此。
所以thinkphp只要使用"./Public/".文件名就可以操作公共文件下的文件了
如果要配合框架自带常量诸如 __URL__ __APP__ 使用也好办,只要使用 "..".__URL__ 或者 “..”.__APP__ 就好了