我在我的网站有一个雅虎货币脚本,但他们花费太多时间来加载并且正在减慢我的网站。我如何缓存它们并每3600分钟刷新一次缓存?如何实现雅虎货币缓存?
0
A
回答
2
您需要一些地方来存储这些结果。 MySQL是一种流行的选择,但如果数据不需要停留或具有历史价值,那么使用memcache会更容易。根据您的主机,这两个选项可能都可用。
0
而且,而非fgets
其由线而慢读文件行,因为你没有操纵线,你应该考虑使用file_get_contents
函数。
2
的理念是:
- 建立某种形式的缓存目录,并设置定义缓存老化
- 然后,在你的函数的一开始,检查高速缓存
- (如果存在) ,检查它的年龄。
- 如果在范围之内,让它
- 如果缓存太老
- 使用实时数据和设定数据到缓存文件。
- (如果存在) ,检查它的年龄。
像这样的东西应该做的伎俩:
define(CACHE_DIR, 'E:/xampp/xampp/htdocs/tmp');
define(CACHE_AGE, 3600);
/**
* Adds data to the cache, if the cache key doesn't aleady exist.
* @param string $path the path to cache file (not dir)
* @return false if there is no cache file or the cache file is older that CACHE_AGE. It return cache data if file exists and within CACHE_AGE
*/
function get_cache_value($path){
if(file_exists($path)){
$now = time();
$file_age = filemtime($path);
if(($now - $file_age) < CACHE_AGE){
return file_get_contents($path);
} else {
return false;
}
} else {
return false;
}
}
function set_cache_value($path, $value){
return file_put_contents($path, $value);
}
function kv_euro() {
$path = CACHE_DIR . '/euro.txt';
$kveuro = get_cache_value($path);
if(false !== $kveuro){
echo "\nFROM CACHE\n";
return round($kveuro, 2);
} else {
echo "\nFROM LIVE\n";
$from = 'EUR'; /*change it to your required currencies */
$to = 'ALL';
$url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X';
$handle = @fopen($url, 'r');
if ($handle) {
$result = fgets($handle, 4096);
fclose($handle);
}
$allData = explode(',',$result); /* Get all the contents to an array */
$kveuro = $allData[1];
set_cache_value($path, $kveuro);
return $kveuro;
}
}
相关问题
- 1. 在雅虎金融中使用基准货币KWD的所有货币
- 2. 来自雅虎财务限制的货币汇率
- 3. 如何检索使用javascript和json的货币的雅虎基本图表
- 4. 缓存雅虎API数据,允许吗?
- 5. Magento的 - 不高速缓存货币
- 6. 实现雅虎聊天图标
- 7. ec2现货实例优雅终止
- 8. 如何实现OpenID的谷歌,雅虎和其他
- 9. 如何实现像雅虎的APP新闻摘要
- 10. 如何实现VaryByCustom缓存?
- 11. 如何在codeigniter中实现托管与贝宝欧元货币?
- 12. 如何实现离子输入的货币输入指令
- 13. 如何保存NSDecimalNumber以外的货币?
- 14. 在Grails中代表货币(价值+货币)的最佳实践
- 15. 缓存实现
- 16. 缓存雅虎管道iPhone应用程序
- 17. 如何从货币代码
- 18. 如何从iphone中的货币代码获取货币符号?
- 19. 如何货币之前显示浮动货币与负号
- 20. 如何将货币格式化为近似美元的货币?
- 21. 如何通过货币名称获取货币符号?
- 22. 雅虎隐形
- 23. 雅虎RangeSeekBar
- 24. 多货币最佳实践与实施
- 25. 印度货币的PHP货币格式?
- 26. 什么是雅虎openid发现端点
- 27. 货币汇率的缓存体系结构
- 28. 熊猫雅虎财经实时数据
- 29. 雅虎财务API实时报价
- 30. 雅虎UI与YAHOO.widget.Dialog的弹出式实现
我怎么可以使用此功能的PHP? – 2010-06-21 06:57:56