我想在脚本的开头包含一个打开IF条件的PHP文件。然后我编写我的脚本,并完成我包含另一个关闭条件的PHP文件。
这让我想到了一个" Parse错误:语法错误,文件意外结束......"错误。
通过这个简单的例子可以更好地理解:
的header.php
if(aConditionalTest()) {
footer.php
} // endIf
mypage.php
include_once 'header.php';
echo 'my awesome content';
include_once 'footer.php';
仅供参考:我想这样做:
谢谢!
编辑:更准确地解释为什么我想使用phpfastcache这样做:
http://www.phpfastcache.com/说:
缓存整个网页PHP Cache整个网页: 您也可以使用phpFastCache缓存整个网页。这很简单 例如,但在实际代码中,您应该将其拆分为2个文件: cache_start.php和cache_end.php。 cache_start.php将存储 开始代码直到ob_start();并且cache_end.php将从 获取HTML WEBPAGE。然后,您的index.php将包含cache_start.php 在文件末尾开头和cache_end.php。
这就是我尝试做的事情! 根据下面的代码片段,这会带来条件在" cache_start.php"中打开的情况。然后关闭" cache_end.php"
cache_start.php
use phpFastCache\CacheManager;
$cache = CacheManager::Memcached();
$keyword_webpage = md5($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING']);
// try to get from Cache first.
$resultsItem = $cache->getItem($keyword_webpage)
if(!$resultsItem->isHit()) {
ob_start();
cache_end.php
// GET HTML WEBPAGE
$html = ob_get_contents();
$resultsItem->set($html)->expireAfter(1800);
$cache->save($resultsItem);
}
echo $resultsItem->get();
mypage.php
include_once 'cache_start.php';
// my awesome content to cache goes here...
include_once 'cache_end.php';
myotherpage.php
include_once 'cache_start.php';
// my other great content to cache goes here...
include_once 'cache_end.php';
因此我想将phpfastcache代码放在2个单独的文件中的原因是我有许多不同的PHP页面要缓存,所以我想在每个页面上重复所有这些代码......
希望这个编辑能帮助你更好地理解为什么我会这样做,即使我理解,因为我担心,这是不可能的。
答案 0 :(得分:2)
试一试:
我怎样才能做到这一点?
这是邪恶的方式和eval所有而不是包括:)喜欢
__try
如果你想加入黑暗面,这可能是一个解决方案:)
SideNote:在这个解决方案中,你必须关注全局变量!
但是,关于这个事实的事情,你想传播条件超过单独的文件,在我看来是非常非常非常糟糕的做法。
我真的回答了这个问题8]
答案 1 :(得分:1)
我以其他方式尝试。
仅限规则:仅适用于全局空间(其他地方: - ))
因此,您要在cache_start.php
中打开if()并关闭它cache_end.php
。 (出于ob_cache的原因)
但如果条件没有改变,为什么不做两次这个条件呢?
在if(condition)
的每个文件测试中!
或设置$cach_op_started=true
之类的变量,并在cache_end.php
两者都适合你。
有点可笑,我第一次没有看到这个解决方案:)
最后注意: 如果需要,您还可以使用PHP中的自动前置和附加文件。 这可以在php.ini中配置。 始终在脚本之前和之后自动加载文件。 http://www.webdevsecrets.com/using-phps-auto_prepend_file-and-auto_append_file/
度过愉快的时光。
答案 2 :(得分:0)
所以我理解问题是当你不希望某个用户看到页面的内容时,页面的其余部分没有加载,那是什么导致错误?
如果是这样,为什么不直接包含这些文件?在特定页面中,您可以为谁设置查看内容的条件?
我在标题中使用ob_start(),在我的页脚中使用ob_end_flush,效果很好。 如果登录用户有权查看内容,请在特定页面内容上查看我的SESSION变量,否则会显示如下消息:“您无权查看此内容”