- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
推荐用这种方式表示
./Images/UserImages/1.jpg
./代表站点根目录
Php路径问题及其解决方法
PHP相关, 原创 05月 20th, 2008
初学PHP的时候,我们经常被PHP的绝对路径和相对路径弄的晕头转向。路径问题经常导致include及 require命令不能加载到指定的页面,从而导致Web程序运行错误。本文将跟大家一起探讨一下PHP路径问题的常用解决方案。下面我们先做一个个简单的示例:
上图是一个简单Web项目的结构图,其中各文件的代码如下:
root/index.php :
?php require_once ‘app/blog.php’;$blog=new Blog();echo $blog-GetBlogInfo();?
root/app/blog.php :
?php require_once ‘../lib/smarty/functions.php’;? ?php class Blog{ ???public function GetBlogInfo()???{?????return ‘This is a test of blog!’;???}} ? ?php echo ‘root/app/blog.php loaded successed!/br’; ?
首先,我们从浏览器里直接输入http://localhost/root/app/blog.php, 浏览器显示:
———————————————————————-
root/app/blog.php loaded successed!
———————————————————————-
文件加载成功,没发生任何警告或错误。
接下来,我们在浏览器中请求如下网站:http://localhost/root/index.php, 浏览器显示出如下错误信息:
———————————————————————————Warning: require_once(../lib/smarty/functions.php) [function.require-once]: failed to open stream: No such file or directory in T:\Study\PHP_REL\Projects\root\app\blog.php on line 2Fatal error: require_once() [function.require]: Failed opening required ‘../lib/smarty/functions.php’ (include_path=’.;C:\php5\pear’) in T:\Study\PHP_REL\Projects\root\app\blog.php on line 2———————————————————————————
为什么’../lib/smarty/functions.php’没能加载? 我们访问http://localhost/root/app/blog.php没有出现任何异常,这说明出现错误的原因很可能在root/index.php的require_once ‘app/blog.php’语 句。从Google里搜索一下:php路径问题,你就能找到问题的答案。当root/index.php引用root/app/blog.php后,blog.php中的require_once语句的参照点变成了root/index.php所 在的目录(根目录root)。所以,以root/index.php为 参照点加载‘../lib/smarty/functions.php’时,自然就出错了。
找到了问题所在,接下来,我们就来寻找解决问题的办法:
1.将所有文件放在一个文件夹下
将所有文件放在一个文件夹下,那么就不会存在路径问题了。但是,这绝对是个馊主意!!除非你写一个小的不能再小的项目,不然请不要尝试这种方法,没有结构 的系统太可怕了!
2.使用绝对路径
注:PHP中的include和require使用的是 文件系统的绝对路径,如“c:\wwwroot\yourproject\index.php”
step1:刚刚发生异常是因为我们使用了相对路径,如果换成绝对路径就不会出现以上错误。让我们简单修改一下root/app/blog.php:将前三行由
?php require_once ‘../lib/smarty/functions.php’;?
修改为:
?php require_once ‘T:\\Study\\PHP_REL\\Projects\\root\\lib\\smarty\\functions.
文档评论(0)