Smarty程序 failed to open stream??

Hiky 发布于 2012/11/17 16:38
阅读 901
收藏 0

刚起步学习PHP,在学习Smarty基本配置时,按书本编代码,可是却运行不了。出了什么问题?

实例代码如下:

<?php
/* 定义服务器的绝对路径 */
define('BASE_PATH',$_SERVER['DOCUMENT_ROOT']);
/* 定义Smarty目录的绝对路径 */
define('SMARTY_PATH',dirname($_SERVER['SCRIPT_NAME']));
/* 加载Smarty类库文件 */
require BASE_PATH.SMARTY_PATH.'Smarty.class.php';
/* 实例化一个Smarty对象 */
$smarty=new Smarty;
/* 定义各个目录的路径 */
$smarty->template_dir=BASE_PATH.SMARTY_PATH.'templates/';
$smarty->compile_dir=BASE_PATH.SMARTY_PATH.'templates_c/';
$smarty->config_dir=BASE_PATH.SMARTY_PATH.'configs/';
$smarty->cache_dir=BASE_PATH.SMARTY_PATH.'cache/';
//设置Smarty左、右结束符
$smarty->left_delimiter='{%';
$smarty->right_delimiter='%}';
/*使用Smarty赋值方法将一对名称/方法发送到模板中 */
$smarty->assign('title','第一个Smarty程序');
$smarty->assign('content','Hello,Welcome to study \'Smarty\'!');
/* 显示模板 */
$smarty->display('index.tpl');
?>

上述代码是由txt文档编写的,再用Zend Studio运行,可结果显示如下:

Warning: require(C:\DOCUME~1\ADMINI~1\LOCALS~1\TempSmarty.class.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\mr\04\01\index.php on line 7

Fatal error: require() [function.require]: Failed opening required 'C:\DOCUME~1\ADMINI~1\LOCALS~1\TempSmarty.class.php' (include_path='.;C:\php5\pear') in C:\wamp\mr\04\01\index.php on line 7

说找不到路径是吗?该怎么做??


 

加载中
0
昨日今日明日
昨日今日明日

define('SMARTY_PATH',dirname($_SERVER['SCRIPT_NAME'])); 

定义SMARTY_PATH 为当前执行文件所在目录,后面没有 /   斜杠啊!!!下面这样改

$smarty->template_dir=BASE_PATH.SMARTY_PATH.'/templates/';
$smarty->compile_dir=BASE_PATH.SMARTY_PATH.'/templates_c/'; 

$smarty->config_dir=BASE_PATH.SMARTY_PATH.'/configs/'; 
$smarty->cache_dir=BASE_PATH.SMARTY_PATH.'/cache/'; 
0
Hiky
Hiky

引用来自“375897278”的答案

define('SMARTY_PATH',dirname($_SERVER['SCRIPT_NAME'])); 

定义SMARTY_PATH 为当前执行文件所在目录,后面没有 /   斜杠啊!!!下面这样改

$smarty->template_dir=BASE_PATH.SMARTY_PATH.'/templates/';
$smarty->compile_dir=BASE_PATH.SMARTY_PATH.'/templates_c/'; 

$smarty->config_dir=BASE_PATH.SMARTY_PATH.'/configs/'; 
$smarty->cache_dir=BASE_PATH.SMARTY_PATH.'/cache/'; 

怎么定义SMARTY_PATH 为当前执行文件所在目录???

define('SMARTY_PATH',dirname($_SERVER['C:\wamp\mr\04\01\Smarty']));

按上面修改还是不行。。

0
Hiky
Hiky

正解:

(假定index.php存放在C:\wamp\mr\04\01\Smarty 里)

①define( 'SMARTY_PATH',' /wamp/mr/04/01/Smarty/ ' );

$smarty->template_dir=BASE_PATH.SMARTY_PATH.'/templates/';
$smarty->compile_dir=BASE_PATH.SMARTY_PATH.'/templates_c/'; 

$smarty->config_dir=BASE_PATH.SMARTY_PATH.'/configs/'; 
$smarty->cache_dir=BASE_PATH.SMARTY_PATH.'/cache/';

 

返回顶部
顶部