Outils pour utilisateurs

Outils du site


php:snippets

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
php:snippets [04/02/2008 18:03] – créée danielphp:snippets [05/02/2008 12:32] (Version actuelle) – rmq session cache daniel
Ligne 1: Ligne 1:
 ====== Bouts de scripts ====== ====== Bouts de scripts ======
 +
 +===== dump de var dans une chaine =====
 +<code php>
 +/**
 + * 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;
 +}
 +</code>
 +
 ===== check & download ===== ===== check & download =====
 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 : 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 :
 <code php> <code php>
 +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... // ici code de vérif des droits, de la validité du fichier, etc...
 +$extension = substr($fichier, strrpos($fichier, ".")+1);
 // puis, le download à proprement parler // puis, le download à proprement parler
 if(is_file($fichier)) { // fichier existe if(is_file($fichier)) { // fichier existe
    // on gere le cache coté client    // on gere le cache coté client
    $headers = apache_request_headers();    $headers = apache_request_headers();
-   if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($url))) {+   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       // le fichier est en cache chez le client, avec la bonne date
-      header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($url)).' GMT', true, 304);+      header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fichier)).' GMT', true, 304);
    } else {    } else {
       // pas en cache ou trop vieux       // pas en cache ou trop vieux
-      header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 200); +      header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fichier)).' GMT', true, 200); 
-      header('Content-Length: '.filesize($url));+      header('Content-Length: '.filesize($fichier));
       $mime = 'application/'.$extension;       $mime = 'application/'.$extension;
       if ($extension == 'html' || $extension == 'htm') {       if ($extension == 'html' || $extension == 'htm') {
Ligne 20: Ligne 43:
       }       }
       header("Content-type: $mime");       header("Content-type: $mime");
-      readfile($url);+      readfile($fichier);
    }    }
 } else { } else {
Ligne 26: Ligne 49:
    header('header("HTTP/1.x 404 Not Found");');    header('header("HTTP/1.x 404 Not Found");');
 } }
 +</code>
php/snippets.1202144628.txt.gz · Dernière modification : 04/02/2008 18:03 de daniel