Folgendes Script in einer Datei aufgerufen funktioniert einwandfrei:
Beim Webserver kommt keine Anfrage mit Status 200 (OK) an sondern gar nichts oder Status 304 (Not Modified) wenn ein Cache zwischen Client und Server die Daten gecachet hat.

please_cache.php:

PHP-Code:
<?php
header
"Expires: ".gmdate("D, d M Y H:i:s",time()+60*60)." GMT" );
header"Cache-Control: public" );

$ims    $_SERVER['HTTP_IF_MODIFIED_SINCE'];
$ftime  filemtime$_SERVER['SCRIPT_FILENAME'] );

if( 
$ims != "" )
{
        
$ims    explode';'$ims );
        
$ims    $ims[0];

        
$it     strtotime$ims );

        if( 
$it >= $ftime )
        {
                
header"HTTP/1.1 304 Not Modified" );
        } else {
                
header"Last-Modified: ".gmdate("D, d M Y H:i:s"$ftime) ." GMT" );
        }
} else {
        
header"Last-Modified: ".gmdate("D, d M Y H:i:s"$ftime) ." GMT" );
}
?>
Sobald ich das Script in einem anderen Script includiere wird der Inhalt wieder direkt vom Server abgerufen und nicht gecachet.

<?php
require_once( './please_cache.php' );
...