spHtml的问题

#1 fengyu44

刚学speedPHP,在静态页面生成时总有问题。

最简单的:

function test_html(){ // 测试spHtml生成静态页面的方法
  echo "开始生成留言本内容页面...
";
  $url = array("main", "show", array('tid'=>12));
  spClass("spHtml")->make($url);
  echo "留言本内容页面生成完毕!";
}

浏览器中访问:http://localhost/index.php?c=main&a=test_html
目录生成很慢,而且生成的页面是空的。

可用  $url = spUrl("main", "show", array('tid'=>12));
访问$url,显示是正常的。

不知道是什么原因了,大侠们帮帮忙吧,谢了!

2010-04-21 12:02:15

#2 jake

如果可以的话,麻烦把代码上传看一下。

另外可以看看这贴 http://speedphp.com/bbs/thread-283-1-1.html 内的例子程序,下载来测试。

2010-04-21 12:15:05

#3 fengyu44

谢谢斑竹的回复。

我刚下载了你连接中的例子,可程序运行还好很慢,而且只生成了目录,文件一个都没有。

我的index.php文件为:


// sp框架的目录,SpeedPHP.php文件所在的目录
define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
// 应用程序目录,controller和model等文件夹所在的目录,这里设置的是根目录
define("APP_PATH",dirname(__FILE__));

// 这里开始是应用程序的配置
$spConfig = array(
        "db" => array( // 数据库设置
                'host' => 'localhost',  // 数据库地址
                'login' => 'root', // 数据库用户名
                'password' => 'passwd', // 数据库密码
                'database' => 'tv', // 数据库的库名称
        ),
        
        "view" => array(
                'enabled' => TRUE, // 开启Smarty
                'config' => array(
                        'template_dir' => APP_PATH.'/tpl', // 模板存放的目录
                        'compile_dir' => APP_PATH.'/tmp', // 编译的临时目录
                        'cache_dir' => APP_PATH.'/tmp', // 缓存的临时目录
                        'left_delimiter' => '<{',  // smarty左限定符
                        'right_delimiter' => '}>', // smarty右限定符
                ),
        ),
        
        'html' => array(
                'enabled' => TRUE, // 开启HTML生成功能
                'safe_check_file_exists' => TRUE, // 获取URL时,检查物理HTML文件是否存在,如文件不存在,则返回安全的动态地址
                'file_root_name' => 'articles', // 静态文件生成的根目录名称,设置为空则是直接在入口文件的同级目录生成
        ),
);

require(SP_PATH."/SpeedPHP.php");


2010-04-21 12:36:15

#4 jake

你的服务器禁止了file_get_contents访问网络,也就是有些人说的服务器采集功能。

2010-04-21 12:57:58

#5 fengyu44

检测了一下,file_get_contents没有禁用,file_get_contents('http://baidu.com') 也正常,但 file_get_contents('http://localhost/') 就失败了,在hosts中加入127.0.0.1 tv.com,用tv.com 测试刚才的代码,程序正常。

问题解决。故应该是 file_get_contents 无法正常获取localhost中页面的问题。

不知 能否把 file_get_contents 函数换个实现形式,已解决本地调试的问题。

2010-04-21 13:25:30

#6 jake

hosts内加入 127.0.0.1 localhost

2010-04-21 14:58:02