我昨晚刚刚开始玩memcache(d),所以我有很多东西需要了解它
我想知道这段代码是否是一种很好的方式来做它正在做的事情或者我是否应该使用其他memcache函数
我想显示一些缓存版本的东西,如果缓存不存在那么我从mysql生成内容并将其设置为缓存然后在页面上显示mysql结果,然后下一页加载它将检查缓存并看到它是那里,所以它会显示出来.
这段代码似乎可以解决这个问题但是我应该使用其他几种不同的memcache函数来实现这一目的吗?
<?PHP
$memcache= new Memcache();
$memcache->connect('127.0.0.1', 11211);
$rows2= $memcache->get('therows1');
if($rows2 == ''){
$myfriends = findfriend2(); // this function gets our array from mysql
$memcache->set('therows1', $myfriends, 0, 30);
echo '<pre>';
print_r($myfriends); // print the mysql version
echo '</pre>';
}else{
echo '<pre>';
print_r($rows2); //print the cached version
echo '</pre>';
}
?>
Run Code Online (Sandbox Code Playgroud)
这是@crescentfresh发布的链接中提供的锁定功能
<?PHP
// {{{ locked_mecache_update($memcache,$key,$updateFunction,$expiryTime,$waitUTime,$maxTries)
/**
* A function to do ensure only one thing can update a memcache at a time.
*
* Note that there are …Run Code Online (Sandbox Code Playgroud) 请看下面的代码 -
var abc_text = "Hello";
var def_text = "world";
function testMe(elem) {
var xyz = elem+"_text";
alert(xyz);
}
testMe("abc");
testMe("def");
Run Code Online (Sandbox Code Playgroud)
我试图将前缀传递给一个函数,并尝试通过连接打印一些预定义的值.但上面的例子只打印"abc_text"和"def_text"..而不是"Hello"和"world".我怎样才能让它运转起来?
谢谢.
编辑
我正在使用Jquery.
var err = '';
err += 'err a';
myString = 'Blah';
new Ajax.Request('/check_me.php',
{
method:'get',
parameters: {
'string': myString
},
evalScripts: true,
onComplete: function(t){
var response = t.responseText;
if (response == false) {
//do nothing
} else {
err += 'err b.\n';
//alert(err);
}
}
});
err+= 'err c';
alert(err);
Run Code Online (Sandbox Code Playgroud)
在上面,它应警告"err a"+"err b"+"err c".但我只是得到"错误"+"错误".如果我尝试使用oncomplete警告(错误),那么我可以看到文本被附加到它之前的任何值.在这种情况下,"错误"+"错误b".如果我关闭此警告框,则最后一个警告框只显示a和c.
所以它是从全局变量中读取值而不是写入它.
如何使其工作,即将其设置为"b"?
谢谢
我正在研究一种有点文档管理系统.最终用户是业务类用户.
我目前只检查并允许上传文件,如果它们是以下之一:
"png|jpe?g|gif|xls|doc|docx|csv|ppt|txt|pdf|rtf"
Run Code Online (Sandbox Code Playgroud)
我的问题是 -
如果我在列表中添加"xml"?他们会引起任何安全问题吗?
我可以添加哪些其他文档类型/扩展名?
要么
我应该检查NOT IN "exe|bat|php|js"并允许所有其他类型吗?
谢谢你的建议.