关于html页面生成问题

#1 beginning

关于html页面生成问题,main controller下有一个显示新闻的action show, 还有一个生成html测试action test_html,
现在运行test_html,耗费用很长时间,结果生成了目录 但是没有html文件,请问是怎么回事。

代码如下:
function show(){
        $news_id = $this->spArgs("nid","");
        $news = spClass("cat_news_list_t");
        $condition = array("News_id"=>$news_id);
        $this->news_list = $news->spLinker()->findAll($condition);  //关联查询;

        $this->display("white/news_content.html");
    }
   
    function test_html(){
        $url = array("main", "show", array('nid'=>'2010020408535286'));
        spClass('spHtml')->make($url);
    }

2010-04-01 14:49:57

#2 jake

这些代码看不出什么。

试试对照例子来研究问题在什么地方:http://speedphp.com/bbs/redirect.php?goto=findpost&ptid=283&pid=1078

2010-04-01 14:57:08

#3 beginning

运行这个例子 也是同样问题
不知道是不是因为我项目目录问题
我的项目不是在根目录里
而是在根目录里建了一个项目目录

2010-04-01 16:54:25

#4 jake

spHtml的原理是通过PHP本身去读取spUrl生成的地址的网页内容,然后再生成静态文件。

当目录已经生成的时候,那么也就是说spHtml已经有读取网页了,但是生成不了文件,极有可能就是spUrl生成的地址的这个网页,本身显示就有问题,或者是PHP不能读取。

所以一般来说,spHtml不会一开始就使用,而是当程序做好了,需要生成html的页面本身已经能够正确显示了,那么再加入spHtml来进行优化。

2010-04-01 16:59:05

#5 beginning

需要生成的html已经能正确显示
而且用
echo spUrl("main", "show", array('nid'=>'2010020408535286'));
显示出来的地址也可以正常打开

2010-04-01 17:22:13

#6 beginning

tmp下生成了这两个文件:
%%2A^2A0^2A010E90%%index.html.php
56f11ec24fe3dc1c806b4512f0d89e87.php

其中56f11ec24fe3dc1c806b4512f0d89e87.php里的内容是:
1570114095s:160:"main|show|a:1:{s:3:"nid";s:16:"2010020408535286";}||/succescms/topic/2010/4/01/011409521.html|D:/Program Files/wamp/www/succescms/topic/2010/4/01/011409521.html";
这是什么意思呢?

2010-04-01 17:32:41

#7 jake

需要生成的html已经能正确显示
而且用显示出来的地址也可以正常打开
beginning 发表于 2010-4-1 17:22
用实例代码进行测试吧,看看问题在哪里,因为那个例子经过很多的测试都是没问题的。
就那么几行代码我实在看不出问题在哪里。。。

2010-04-01 17:34:10

#8 beginning

麻烦问下spHtml这个类位置在哪里?

2010-04-01 17:53:42

#9 jake

麻烦问下spHtml这个类位置在哪里?
beginning 发表于 2010-4-1 17:53
在SP_PATH/Core/spView.php内。

只要看看手册就知道了 http://speedphp.com/manual/sphtml

2010-04-01 17:56:57

#10 beginning

原因找到了
sphtml中
@file_get_contents('http://'.$_SERVER["SERVER_NAME"].call_user_func_array("spUrl",$spurl));
没有端口号。。我的机子用的8081端口
添加了端口号 就正常生成了

2010-04-02 14:30:58