Bonjour,
j'essai depuis quelques heures d'ajouter le resultat de l'api youtube dans un ficher "cache.xml" mais je n'y arrive pas !
<?php
$youtubecache = "youtube/cache.xml";
if (time() - filemtime($youtubecache) > 10 ) {
require_once("Zend/Gdata/YouTube.php");
Zend_Loader::loadClass('Zend_Gdata_Youtube');
$yt = new Zend_Gdata_Youtube();
$videoFeed = $yt->getVideoFeed('http://gdata.youtube.com/feeds/users/grafikrt/uploads');
file_put_contents($youtubecache, $videoFeed);
echo '<p>direct</p>';
}else{
$videoFeed = file_get_contents($youtubecache);
echo '<p>cache</p>';
}
Quand je met "123" à la place de $videoFeed depuis file_get_contents le système enregistre bien la varaible mais quand ça vien de youtube non :(
Quelqu'un peu m'aider ?
EDIT: l'api fonctionne bien sans le cache, mais je souhaite le mettre pour optimiser la vitesse de chargement de la page :) et eviter le problème de quota de youtube.
EDIT: Solution trouvé ;)
$youtubecache = "youtube/cache.xml";
if (time() - filemtime($youtubecache) > 100000000 ) {
require_once("Zend/Gdata/YouTube.php");
Zend_Loader::loadClass('Zend_Gdata_Youtube');
$yt = new Zend_Gdata_Youtube();
$videoFeed = $yt->getVideoFeed('http://gdata.youtube.com/feeds/users/grafikrt/uploads');
file_put_contents($youtubecache, serialize($videoFeed));
}else{
require_once("Zend/Gdata/YouTube.php");
Zend_Loader::loadClass('Zend_Gdata_Youtube');
$yt = new Zend_Gdata_Youtube();
$videoFeed = unserialize(file_get_contents($youtubecache));
}
Merci beaucoup
Maxigolo
$videoFeed est un objet si mes souvenir sont bon donc tu ne pourra pas le sauvegarder. Vérifie quand même.
Je l'aurais bien copié mais il est trop long :) Il retourne les infos sur les video youtube mais je ne l'utilise pas directement les informations sont extraite grâce à l'api avec par rexemple $v->getVideoTitle() pour le titre.
EDIT: Solution trouvé ;)
$youtubecache = "youtube/cache.xml";
if (time() - filemtime($youtubecache) > 100000000 ) {
require_once("Zend/Gdata/YouTube.php");
Zend_Loader::loadClass('Zend_Gdata_Youtube');
$yt = new Zend_Gdata_Youtube();
$videoFeed = $yt->getVideoFeed('http://gdata.youtube.com/feeds/users/grafikrt/uploads');
file_put_contents($youtubecache, serialize($videoFeed));
}else{
require_once("Zend/Gdata/YouTube.php");
Zend_Loader::loadClass('Zend_Gdata_Youtube');
$yt = new Zend_Gdata_Youtube();
$videoFeed = unserialize(file_get_contents($youtubecache));
}
Le resultat se présente sous forme "array" ,il y aurait une altérantive pour sauvgarder le resultat ?
Salut,
lorsque j'emploi ta solution Maxi Golo, voila mon erreur:
'Notice (8): unserialize() [function.unserialize]: Error at offset 26095 of 904541 bytes [APP/View/Pages/videos.ctp, line 24]'
Ma ligne 24 étant :
$videoFeed = unserialize(file_get_contents($youtubecache));
Que dois je faire?