/** * Returns a string with the output of var_dump * pique dans nusoap_base * * @param mixed $data The variable to var_dump * @return string The output of var_dump * @access public */ function varDump($data) { ob_start(); var_dump($data); $ret_val = ob_get_contents(); ob_end_clean(); return $ret_val; }
Plein de bouts de codes un peu partout pour gérer les download avec check préalable, mais aucun qui gère le cache proprement, donc à partir des commentaires de la fonction header de la doc php, ça donne :
session_cache_limiter('private_no_expire'); // IMPORTANT car par défaut php envoie du no-cache @session_start(); // ici code de vérif des droits, de la validité du fichier, etc... $extension = substr($fichier, strrpos($fichier, ".")+1); // puis, le download à proprement parler if(is_file($fichier)) { // fichier existe // on gere le cache coté client $headers = apache_request_headers(); if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($fichier))) { // le fichier est en cache chez le client, avec la bonne date header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fichier)).' GMT', true, 304); } else { // pas en cache ou trop vieux header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fichier)).' GMT', true, 200); header('Content-Length: '.filesize($fichier)); $mime = 'application/'.$extension; if ($extension == 'html' || $extension == 'htm') { $mime = 'text/html'; } header("Content-type: $mime"); readfile($fichier); } } else { // fichier KO header('header("HTTP/1.x 404 Not Found");'); }