Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php部分缓存_Php_Caching - Fatal编程技术网

Php部分缓存

Php部分缓存,php,caching,Php,Caching,我想缓存一些php文件的一部分。比如说 <? echo "<h1>",$anyPerdefinedVarible,"</h1>"; echo "time at linux is: "; // satrt not been catched section echo date(); //end of partial cach echo "<div>goodbye $footerVar</div>"; ?> 所以缓存的页面应该像 (ca

我想缓存一些php文件的一部分。比如说

<?
echo "<h1>",$anyPerdefinedVarible,"</h1>";
echo "time at linux is: ";
// satrt not been catched section
echo date();
//end of partial cach
echo "<div>goodbye $footerVar</div>";
?>

所以缓存的页面应该像 (cached.php)

此部分今天已修复
再见,请访问今日推荐网站
这可能是做模板,但我想直接。因为我想要另一种解决方案。

看看php的ob_start(),它可以缓冲所有输出并保存这个。

补充: 查看您想要的函数:) 编辑: 这里有一个更简单的版本:)


以下是一些简单但有效的解决方案:

template.php

<?php
    echo '<p>Now is: <?php echo date("l, j F Y, H:i:s"); ?> and the weather is <strong><?php echo $weather; ?></strong></p>';
    echo "<p>Template is: " . date("l, j F Y, H:i:s") . "</p>";
    sleep(2); // wait for 2 seconds, as you can tell the difference then :-)
?>
看看php的ob_start(),它可以缓冲所有的输出并保存它。

补充: 查看您想要的函数:) 编辑: 这里有一个更简单的版本:)


以下是一些简单但有效的解决方案:

template.php

<?php
    echo '<p>Now is: <?php echo date("l, j F Y, H:i:s"); ?> and the weather is <strong><?php echo $weather; ?></strong></p>';
    echo "<p>Template is: " . date("l, j F Y, H:i:s") . "</p>";
    sleep(2); // wait for 2 seconds, as you can tell the difference then :-)
?>


?生成这些行比从缓存中获取2个键要快。尝试缓存数据库中的数据,不要浪费时间输出,这是模板引擎的工作。此代码仅用于示例。实际代码非常复杂,需要一些sql查询。我试着把我的问题说清楚。我想知道PHP缓存机制。好吧,这不仅仅是关于PHP的,它是很常见的。同样:缓存从数据库中获取的数据,不缓存输出。尝试使用Twig作为模板,这将打开您对将数据与表示分离的理解。@OZ_u这是所有编程语言的常见情况,但我比其他语言更了解PHP语言。我想使用灵活的模板它。我需要一个模板,其中包含在不同日期创建的多个部分。生成这些行将比从缓存中获取2个键更快。尝试缓存数据库中的数据,不要浪费时间输出,这是模板引擎的工作。此代码仅用于示例。实际代码非常复杂,需要一些sql查询。我试着把我的问题说清楚。我想知道PHP缓存机制。好吧,这不仅仅是关于PHP的,它是很常见的。同样:缓存从数据库中获取的数据,不缓存输出。尝试使用Twig作为模板,这将打开您对将数据与表示分离的理解。@OZ_u这是所有编程语言的常见情况,但我比其他语言更了解PHP语言。我想使用灵活的模板它。我需要一个模板,其中包含了在不同日期创建的多个部分。它是有用的,但它不cach页面的所有部分。我想要cach php输出的某些部分,而不是全部。你可以将其传递给函数,include/require,它很灵活。当然,您可以自己将内容传递到缓存文件,然后查看fopen()和fwrite()函数-您仍然需要将内容传递给它们。您可以使用filemtime()检查文件的时间/日期,如果文件过期,只需将其替换。我希望将其用于灵活的模板。我需要一个模板,其中包含在不同日期创建的多个部分。因此,我需要任何忽略缓存中指定php代码部分的函数?你有它所需要的所有信息,如果没有请说。而不是
echo“myVar”
您可以创建一个函数echoBuffer,因此使用
echoBuffer(“myVar”)用于必须缓冲的内容,并生成返回您需要的函数。(在本例中,is应返回一个(缓冲)字符串“myVar”。您可以同时使用它们;如echo、date、其他函数等。您也可以简单地
echo';
到您的新模板文件,也许这就是您想要的?它很有用,但它可以缓存页面的所有部分。我希望缓存php输出的某些部分,而不是全部。您可以将其传递给函数,包括/需要它-这是灵活的。当然e、 您可以自己将内容传递到缓存文件,然后查看fopen()和fwrite()函数-您仍然需要将内容传递给它们检查文件的时间/日期,如果文件过期,只需将其替换。我希望将其用于灵活的模板。我需要包含在不同日期创建的多个部分的模板。因此,我需要从缓存中忽略指定php代码部分的任何函数。因此,创建该函数?您已经获得了该函数所需的所有信息如果没有,请说。您可以创建一个函数echoBuffer,而不是
echo“myVar”
,因此对于必须缓冲的内容使用
echoBuffer(“myVar”);
,并创建一个返回您需要的函数。(在这种情况下,应该返回一个(缓冲)字符串“myVar”。)。您可以同时使用它们;如echo、date、其他函数等。您也可以简单地
echo';
到您的新模板文件,也许这就是您想要的?
<?php    
    function get_include_contents($filename) {
        if (is_file($filename)) {
            ob_start();
            include $filename;
            return ob_get_clean();
        }
        return false;
    }

    // Variables
    $weather = "fine";

    // Evaluate the template (do NOT use user input in the template, look at php manual why)
    eval("?>" . get_include_contents("template.php"));
?>
<?php    
    function get_include_contents($filename) {
        if (is_file($filename)) {
            ob_start();
            include $filename;
            return ob_get_clean();
        }
        return false;
    }

    file_put_contents("cachedir/cache.php", get_include_contents("template.php"));

?>
<?php
    // Variables
    $weather = "fine";

    include("cachedir/cache.php");
?>