[已解决]PHP SMATY的一个问题
我在a.php里定义define(WEB_ROOT,dirname(http://{$_SERVER['HTTP_HOST']}$_SERVER['SCRIPT_NAME'])."/");
然后
require_once(WEB_ROOT."smarty/libs/Smarty.php");
$SMARTY = new Smarty();
但报错说找不到Smarty这个类.
对php不熟,请各位赐教.
[ 本帖最后由 hjack 于 2007-4-7 01:49 编辑 ] smarty放在:
J:\PHP\rdcmphp\rdc_manager\class里
此目录下有:internals
plugins
两个目录
和 smarty.class.php 等文件
J:\PHP\rdcmphp\rdc_manager/config/smarty.php:
<?php
include "class/Smarty.class.php";
define('__SITE_ROOT',"J:/PHP/rdcmphp/rdc_manager");
$tpl = new Smarty();
$tpl->template_dir = __SITE_ROOT . "/templates/";
$tpl->compile_dir = __SITE_ROOT . "/templates_c/";
$tpl->config_dir = __SITE_ROOT . "/configs/";
$tpl->cache_dir = __SITE_ROOT . "/cache/";
?>
需要用smarty的文件只要加一句:
include('configs\smarty.php');
就可以了
[ 本帖最后由 iptton 于 2007-4-4 22:23 编辑 ] 下载的smarty应该是只解压出lib目录下的东西就行了
tmplate等目录可自建 但是如果使用
define(WEB_ROOT,'../');
这样是可以的。 一楼的代码可以试试
echo (WEB_ROOT);
看看指向的位置上是否有 smarty.class.php 原帖由 hjack 于 2007-4-4 23:39 发表
但是如果使用
define(WEB_ROOT,'../');
这样是可以的。
好像用相对路径不是很好,在不同的文件里引用,WEB_ROOT就有不同的值 回楼上,
就是因为不想用相对path
所以才想取url路径,
或者还有其它方法来使用绝对路径,IP知道么/ 是用网上提供的免费空间?
有个较曲折的办法
先用一个测试文件echo出自己的文件夹的绝对路径
再直接显式定义 web_root
其它方法我就不知道了...
因为Apache可以映射不同的盘不同的目录,同一个网站的同一级子目录,可以是不在同一父目录之下(这个师兄应该知道吧..),用$_SERVER[]可能行不通...
之前我接手那一部分代码,也是用$_SERVER这样定义的,但我在APACHE里设了好几个 Alias 那些定义就失效了.. //在一个config.php文件里通过以下代码定义路径,在其它文件里include这个文件即可。
$NowPathArray = explode("HJACK",str_replace("\\","/",dirname(__FILE__))) ;//强制将windows下"\分隔符"转化为/
define('WEB_ROOT',$NowPathArray);
require_once(WEB_ROOT.'/smarty/libs/Smarty.class.php');
$SMARTY = new Smarty();
ok,解决了。 原帖由 iptton 于 2007-4-5 13:30 发表
是用网上提供的免费空间?
有个较曲折的办法
先用一个测试文件echo出自己的文件夹的绝对路径
再直接显式定义 web_root
其它方法我就不知道了...
因为Apache可以映射不同的盘不同的目录,同一个 ...
alias,的确是这样。我现在也是alias另一个目录到htdocs下的。。。
页:
[1]