2009-10-24 7 views
0
132 
a:4:{s:8:"template";a:1:{s:10:"index.html";b:1;}s:9:"timestamp";i:1256373019;s:7:"expires";i:1256373079;s:13:"cache_serials";a:0:{}}<body> 
php<br > 
    java<br > 
    c++<br > 

</body> 

Quelqu'un peut-il expliquer cette partie:Que signifie la tête des fichiers de cache smarty?

132 
    a:4:{s:8:"template";a:1:{s:10:"index.html";b:1;}s:9:"timestamp";i:1256373019;s:7:"expires";i:1256373079;s:13:"cache_serials";a:0:{}} 
+1

Avez-vous besoin de connaître le fonctionnement interne des fichiers de cache Smarty? – cletus

+0

@cletus, oui je le fais! – Mask

Répondre

1

est une version sérialisée d'un tableau PHP:

<?php 
$serialized = 'a:4:{s:8:"template";a:1:{s:10:"index.html";b:1;}s:9:"timestamp";i:1256373019;s:7:"expires";i:1256373079;s:13:"cache_serials";a:0:{}}'; 
$unserialized = unserialize($serialized); 
print_r($unserialized); 

Résultats dans:

Array 
(
[template] => Array 
    (
     [index.html] => 1 
    ) 

[timestamp] => 1256373019 
[expires] => 1256373079 
[cache_serials] => Array 
    (
    ) 

) 
1

Je ne sais pas beaucoup sur Smarty, mais qui ressemble à quelque chose de similaire à Bencoding, qui est l'endroit où vous encodez des choses comme des chaînes et des tableaux en spécifiant leur longueur premier. Cela évite d'avoir à délimiter de telles choses avec des "caractères spéciaux" (comme des guillemets) qui doivent ensuite être "échappés" s'ils apparaissent dans la chaîne réelle.

  • 132 est la longueur de la chaîne codée.
  • a:4: ressemble à l'introduction d'un tableau associatif (dictionnaire) avec 4 éléments.
  • s:8:"template" semble être une chaîne de longueur 8, avec la valeur "template". Dans ce cas, c'est la clé du premier élément du dictionnaire.
  • La valeur de cet élément est, dans ce cas, un autre dictionnaire qui mappe juste la clé "index.html" à la valeur entière 1.
  • ... Et je pense que vous pouvez travailler le reste.