JeuWeb - Crée ton jeu par navigateur
[PHP] Accès rapides aux données - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP] Accès rapides aux données (/showthread.php?tid=4261)

Pages : 1 2


RE: [PHP] Accès rapides aux données - Ekilio - 13-08-2009

Tout dépends la façon dont tu utilises ton cache, mais dans l'idée oui. Mais une façon encore plus interessante de faire ça est de stoquer l'html de ta carte, totalement générée, dans le cache.


RE: [PHP] Accès rapides aux données - tog84 - 13-08-2009

Si je peux abuser un peu...
Tu stocke seulement le résultat html soit un truc du genre pour une image de ma carte.
$macache = '<img id="6-8:2-1:492" class="img_terrain" src="images/mer.jpg" alt="mer.jpg" onclick="affiche_infos(this)">';
C'est bien ça ?
Merci


RE: [PHP] Accès rapides aux données - Ekilio - 13-08-2009

Ben, c'est ça mais à un niveau plus global. Si ta carte est une image générée par php, ce sont les données que php affiche (tu les as via ob_start()) qu'il faut mettre en cache


RE: [PHP] Accès rapides aux données - tog84 - 13-08-2009

(13-08-2009, 11:28 PM)Ekilio a écrit : Ben, c'est ça mais à un niveau plus global. Si ta carte est une image générée par php, ce sont les données que php affiche (tu les as via ob_start()) qu'il faut mettre en cache

tu peux préciser sur ob_start, stp ?
Désolé d'être si exigeant.


RE: [PHP] Accès rapides aux données - Ekilio - 14-08-2009

Ben, le concept c'est de capturer ce qui va être affiché par le serveur lorsque tu fais ton imagejpeg(). L'enregistrement dans un fichier (en utilisant imagejpeg) est super lourd et inutile, il suffit d'utiliser un code de ce genre :

Code PHP :
<?php

// D'abord tu envoies les headers voulus, ça c'est la base
header('Content-type: image/jpeg');

// Ensuite tu testes si le cache existe
$cacheID = md5(serialize($_REQUEST) . serialize($_SESSION));
$cache = new cached;
if(
$cache->exist($cacheID)) // Ce n'est qu'un exemple de classe hein bien sûr
{

// Le cache existe : on s'en sert
echo $cache->getCachedData($cacheID);

// Et on quitte
die();
}

// Si on est ici le cache n'existe pas, on créé notre image
$im = imagecreatetruecolor(120, 120);

/*
* Bla bla bla tu génères ton image
*/
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Bla bla bla', $text_color);

// Tu prépares le buffer
ob_start();

// Tu affiches ton image
imagejpeg($im);

// Et tu récupère ce qu'elle contient
$content = ob_get_flush();

// Ensuite c'est tout simple : tu l'enregistre
$cache->saveData($cacheID, $content);

// Et tu l'affiches
echo $content;

// Et voila, c'est fini :)



RE: [PHP] Accès rapides aux données - tog84 - 14-08-2009

Merci beaucoup Big Grin
Je vais essayer d'adapter mes sources.
A+