运行Mac OS X 10.5.8,预装PHP 5.2.11。使用Coda 1.6.10。
我正在编写PHP文件,然后预览它们从文件而不是服务器运行。这个工作正常,直到我尝试PHP包含。它们不能作为相对路径,只能作为驱动器根目录的绝对路径。
有什么方法可以使用
之类的语句include_once“common / header.php”;
没有像我这样指定我的整个文件路径:
include_once“/ Volumes / Macintosh HD / Users / neil / Desktop / Website / ColoredLists_v1.0 / common / base.php”;
,其中ColoredLists_v1.0是包含所有网站文件的目录。我尝试过将_SERVER [DOCUMENT_ROOT]或dirname(文件)添加到文件路径之类的解决方案,但由于未设置变量,因此无效。有没有简单的方法可以做到这一点,或者我可以更改配置,以便它默认情况下查找特定目录而不是查看驱动器根目录?目前,echo_include_path显示。:
当我在脚本开头包含这一行时,它可以工作:
set_include_path('/ Volumes / Macintosh HD / Users / neil / Desktop / Website / ColoredLists_v1.0');
但是,如果我想为我的所有脚本执行此操作,我似乎无法使更改永久化。即使我在我的php.ini中编辑了Unix include_path之后,它似乎也无法正常工作。
更新:我最终决定最简单的方法是在本地运行Apache服务器。它预装了Mac,因此没有遇到太多麻烦。我修改了httpd.conf只允许来自localhost的连接,从而减轻了我的安全担忧。当然,这仍然打开80端口,但我在路由器后面,所以我希望我不会暴露。 Coda在“网站”中提供了一些很棒的功能,我可以在这里设置本地网址,因此它现在非常出色。现在,只有缺点是编码后,我需要手动刷新预览。
答案 0 :(得分:2)
你可以尝试这种方法。
require_once(dirname(__FILE__) . '/example.php');
答案 1 :(得分:0)
尝试
set_include_path(
'/Volumes/Macintosh HD/Users/neil/Desktop/Website/ColoredLists_v1.0' .
PATH_SEPARATOR .
get_include_path());
在共享包含文件
中或编辑你的php.ini并更改include_path变量(我正在使用MAMP,因此无法告诉你php.ini的确切路径)
答案 2 :(得分:0)
这确实是一个include_path问题。默认值似乎是.:/usr/lib/php
;也许如果您从脚本中的目录中启动PHP命令,那会没关系吗?
答案 3 :(得分:0)
每次都适合我:
<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/common/header.php'); ?>