唯一授权官网为什么memcache的incr不会出现并发的问题?

( 唯一授权官网 )

为什么呢?都说他是原子性的,我理解的是原子性就是要么全提交要么不提交,但感觉这和并发没有关系啊,比如,第一个人用incr的时候这个时候是1但还没加完呢,这个时候第二个人来了,他还是1,这个时候第一个加成2,第二个可能还是2,我不知道理解对么,除非他是第一个用的时候把读锁住了,等待第二个读完才能继续,在线等大神帮我解除疑惑~

防止并发的问题,memcached 提供了CAS (chech and save) 方式,在get 时候获取对应值的同时还获取当前key 对应的token(或者叫版本号),在更新操作时候需要带上token,会比较当前的token,是否和get时的一直,如果不一致就更新失败。如果由于其他人对当前key操作,token值就会发生变化。
php的参考代码如下:

$cas = 0.0;

do {
    $cnt = $m->get('cnt_key', null, $cas);

    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $m->add('cnt_key', 1);
    } else { 
        $m->cas($cas, 'cnt_key', $cnt + 1);
    }   
} while ($m->getResultCode() != Memcached::RES_SUCCESS);

注意上面代码中的 get 方法中有一个$cas 参数,这个就是当前cnt_key对应的token,一旦 cnt_key 被操作后,其值也发生变化。在cas方法中需要传递$cas值,如果token发生变化,那么cas 将会执行失败,也即 $m->getResultCode() != Memcached::RES_SUCCESS。所以将会再次执行循环体。

这个是在memcached 客户端做的。对于incr,保证原子性,是在memcached服务端完成的,原理应该类似上述的cas操作,由于没有查看memcached的源代码,不敢妄下结论。

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

胜博发娱乐游戏导航php下document must be directory的问题

( 胜博发娱乐游戏导航 )

mac下用xampp配置环境,更改了目录之后重启apache出现AH00526: Syntax error on line 229 of /Applications/XAMPP/xamppfiles/etc/httpd.conf:
DocumentRoot must be a directory,网上搜了是selinux的问题chcon -t httpd_sys_content_t ,但是mac好像没有chcon这个命令啊

Syntax error on line 229 of /Applications/XAMPP/xamppfiles/etc/httpd.conf:
你看错误描述就知道了,DocumentRoot配置的不对,行数也有了 你去看看这里的配置
要不你把这里的配置贴出来看看。。。

配置虚拟主机的时候 DocumentRoot没有指到文件夹上面吧

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

唯一授权官网Yii 的behavior 用了什么设计模式?

( 唯一授权官网 )

Yii有一种特性叫做behavior。请问这个behavior用的什么设计模式?

我觉得应该是AOP思想,观察者模式,在需要被拦截的地方放一个拦截跳转。我理比如一个 正常流程算法(1+。。。100这个小程序),这个behavior大体思路就是想在这个算法循环到50的时候 跳出这个循环把这个和提取出来保存,这个时候你只需要添加一个if判断到50的时候,跳出去就行了。我的理解》。。。。。

代理模式代理模式代理模式

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

SBF888胜博发娱乐请教个关于mysql的问题,没任何程序读取,启动就吃50%CPU了

( SBF888胜博发娱乐 )

今天看日志发现.不知道为什么,从上个星期开始.mysql就吃我服务器50%CPU了.但是我把所有使用mysql的程序都关了.mysql吃CPU依然高企.且

慢查询里面并无发现任何异常的语句.

从你这个图里面看不到管理mysql cpu占50%的问题,能否有其他日志?

吃CPU?优先用htop或者top可以实时查看mysql 占用的mem和CPU

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

唯一授权官网PHP通过服务器运行的网页字体变大

( 唯一授权官网 )

本来今天做个提交表单的页面,一提交就提示内部服务器错误,然后我点了Control Server by Manual里面的Apache Start虽然没问题了,但是产生的页面就变得比本地路径访问页面字体要大一些,这是怎么回事?求大神解答!

可能你们看不明显,我2个标签页来回切换看到通过localhost服务器生产的页面比本地访问的字体要大是怎么回事啊?

可能是浏览器对于本地文件和服务器文件的渲染方式有些不同

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

唯一授权官网php echo里面的变量问题

( 唯一授权官网 )

echo '<input type="checkbox" value="'.$row['id'].'" name="todelete[]" />';

这句代码中value里的$row用为什么要用’..’包裹起来。

[.] 在php中可以将字符串拼接起来!
例如 $a = "zhangsan";echo $a.' nihao';
将会输出 zhangsan nihao

童鞋 你难道不知道 php用 点 拼接字符串吗?
$row 是个变量

类似javascript里的
‘<input type=”checkbox” value=”‘ + yourVar + ‘” name=”todelete[]” />’;

“.” 运算符在PHP里用于连接两个字符串, 跟Javascript里的“+”运算符连接两个字符串是一个意思

单引号是包裹前后字符串的

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

胜博发娱乐游戏导航1.4357550505488E+16 这种Epoch时间戳格式PHP如何转换为10位时间戳

( 胜博发娱乐游戏导航 )

七牛云获取到的文件puttime时间。

如何转换为时间戳,
不要说截取前10位了、我想知道有没有系统函数可以直接转换
按照七牛客服的说法

1.4357550505488E+16 去掉 7 位数 为秒。

date -r 1435755050 
Wed Jul 1 20:50:50 CST 2015

unix时间戳是一个公开算法,不属于七牛的业务,您可以自行在百度或谷歌中查阅相关资料。

一个17位数字截取前10位还需要系统函数么 。。。除以10000000取整不就行了?

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

SBF888胜博发娱乐我用最简单的表单上传却报{“error”:”download token not specified”}

( SBF888胜博发娱乐 )

<form id='form' method="post"  action="http://7xjphu.com1.z0.glb.clouddn.com/" style="width:86%; margin:20px auto 40px; padding:50px 100px;" enctype="multipart/form-data">

  <input type="file" name='file' id="exampleInputFil" style="float:left; width:70%; height:32px;" accept="image/*" capture>                       

  <input name="token" type="hidden" value='<?php echo $token;?>' >

 <button id='submit' type="submit" class="btn btn-default" style="height:32px; line-height:14px; background:#209de5; border:0px; color:#fff;" >上传</button>       
</form>  

这是代码,请帮我看看是什么问题,我只生成了一个上传凭证,这个应该已经足够了啊???

token的话有期限的。

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

SBF888胜博发娱乐在修改编辑中,angularjs中有关复选框取不到默认值的问题

( SBF888胜博发娱乐 )

在做一个修改的功能,点击修改按钮,跳转到修改页面,显示出原来之前的旧值,其中有复选框之类的,当我在原有的基础上,又勾选了另一个选项,提交的时候,接收数据,只能接收到新勾选的数据,而接收不到原来的默认值。但是,当我对默认值进行操作了(去掉勾选,再次选中),这样提交数据就可以接收到默认值了,请问是什么原因?

把ng-checked去掉再看下是否编辑时默认选中?

另外看下 thickness.id 类型, 是否是string 后端返回时没有做转换?

checkbox 方面的问题搞的少一些,希望能有帮助。

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

胜博发娱乐游戏导航curl_multi_exec 解惑

( 胜博发娱乐游戏导航 )

do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

php 手册上看到这个函数,网上查资料说这样写为了避免CPU过高。但是不明白为什么这样写。第一次执行curl_muti_exec 已经把所有的句柄给执行,为什么还要再执行一次

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

胜博发娱乐游戏导航apache 响应时间特别长,不受超时限制

( 胜博发娱乐游戏导航 )

今天发现站点出现了问题,httpd CPU 占用居高不下。

查看 apache\logs\access.log 发现请求响应时间很多都达到了几个小时,HTTP 状态码都是 500。

查看配置 apache\conf\extra\httpd-default.conf

Timeout 60

apache\conf\httpd.conf 中:

Include "conf/extra/httpd-default.conf"

我很奇怪为什么响应时间会超过 60 秒,超时设置为什么会没有效果呢?

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

SBF888胜博发娱乐linux 下那装包怎么指定版本?

( SBF888胜博发娱乐 )

比如ubuntu下面:

sudo apt-get install php5

怎么指定安装php5.5.3版本?

其实我想问的是SUSE下怎么指定安装版本

sudo zypper install libxm2

指定版本!!看可以吗?

查了下suse的官方文档,可以指定版本的

https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_zypp…

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

SBF888胜博发娱乐有哪些压缩类库,使得前端javascript可以针对服务端返回的压缩后的数据进行解压?

( SBF888胜博发娱乐 )

情景是这样的,页面有个ajax请求,服务端返回的json数据是较大,一般都是10mb左右。为了节省服务器流量以及节约带宽,需要后端的php将json数据压缩后传输到前端,前端javascript对其进行解压后处理。
目前尝试过的情况如下:
1、使用base64,但是压缩比率较小,只有百分之二十多。
2、用php支持的gzdeflate和gzcompress函数,在javascript端没找到相应的解压库,git上面的一些inflate.js根本使用不了,总是循环过多导致浏览器崩溃。
3、找到javascript支持的一个lzma压缩解压库,很不错,但是没有找到php支持的相关函数。
所以在这里跪求各位大神,是否存在一种压缩方法,使得前后端均可使用该方法压缩与解压,谢谢!

10M也太恐怖了,列表类型建议分页或者滚动加载

服务器端将Response做gzip压缩,我估计10MB的文件大概只会有4MB。

JSON本来的目的就是取代XML,简化网络交互,所以它本身就已经很精简了,如果你们的数据比较大,建议去做数据结构的调整,譬如采用数组来替换key, value的格式。

虽然有替代方案,但是JSON的序列化和反序列化是Native的,如果你使用第三方,就需要配套解码包,想象一下,一个10MB的数据结构,在客户端解码需要耗时多久?

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

SBF888胜博发娱乐laravel返回的json如何全转换为字符串

( SBF888胜博发娱乐 )

比如数据库中age为int类型,查出的$arr=[‘age’=>20,’id’=>100];通过Response::json($arr)返回的json为{"id":100,"age":20},除了在model中设置$casts=['age'=>'string']类型转换还有什么办法转换为{"id":"100","age":"20"}?因为要设置的字段太多

json_dump

phpclass Model extends Eloquent
{
    public function toArray()
    {
        return array_map(function($a) {
            return strval($a);
        }, parent::toArray());
    }
}

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

胜博发娱乐游戏导航如何让slim出现没定义变量没索引时仅仅报错而不退出程序

( 胜博发娱乐游戏导航 )

历史遗留有一个php的大型程序,里面极度不规范,很多变量只在if语句的一段中定义,但是后面却进行使用;还有很多有可能没有指定索引值的情况下直接使用该索引的值进行判断而不先判断索引是否存在。

当然最好的是修复这些不规范,但是工作量实在太大。

注意: 坑爹的是,目前程序运行良好,只是再出现上述问题的情况下日志有报错。

但是现在需要外挂一个slim框架,将源程序添加restful接口,那么问题来了,任何一个上述错误发生时,slim都会退出程序。

有没有什么 设置或者参数 能够让访问slim的接口去执行源程序的类/函数时越到上述可能的错误也跟源程序一样仅仅 写错误日志而不强制退出运行

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

唯一授权官网什么是restful架构?

( 唯一授权官网 )

用最简单的语言说清楚什么是restful架构。不要复制网上的,我看了好多长篇大论感觉还是一头雾水啊

简单地说,RESTful架构就是简化HTTP方法,要获取数据用GET方法,要上传数据用POST或者PUT,要删除数据就用DELETE。

和数据库的CRUD类似,即以数据为中心的架构。

可以看看我2011年写的一篇文章:http://www.infoq.com/cn/articles/dt-rest-service

另外,给你来张图来简单描述在REST中最重要的围绕资源的三角关系。

后台只提供数据接口,类似api,简化甚至去除业务逻辑

你就理解为 吧后端的服务和前端的显示分离开来(不同于mvc之类的),做到前端要什么数据,就去后端取,而不是后端一下子都丢给前端这种架构方式。虽然这样说有问题,但是我觉得好理解些

如果想在php行业走的更远,那么理解restful的架构相当重要的。这理论比较抽象,但是可以简化了对服务的请求,让我们后台代码更加逻辑化

是面向服务的体系架构SOA实现之一,通过调用url来获取服务

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

胜博发娱乐游戏导航页面跳转保存信息

( 胜博发娱乐游戏导航 )

比如一个设计分三步的注册流程(step之间页面跳转)
每一步需要保存最终插入表的数据都挺多的(类别选项多)
1,怎样设计?每一步插一些数据还是先存缓存或者session最后直接插入表
2,需要考虑比较大的并发情况

有两种方式看是否能满足你的需求:

  • 页面样式控制
    给用户呈现感觉是分步骤的实际是一个表单,分段控制显示
  • 数据库分表
    用户的基础数据和扩展数据分开设计

1.写session 咯
2.或者是前端改造成 单页咯 ,用js存数据 最后个提交按钮提交数据,这样就不用担心数据过期

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

SBF888胜博发娱乐基于微信 openid 投票系统如何防止刷票

( SBF888胜博发娱乐 )

做了一个基于微信 openid 的投票,目前只是通过获取openid 然后判断 UA,来进行投票操作。
有没有更好的办法可以防止刷票?

openid不已经是唯一的么?
再记一下ip

1.对于已经投票过的openID,存进数据库。
2.openID这一字段应加上索引。
3.OK,每收到一次投票处理,先在表里查看openID是否有记录,有着不作插入处理。提示用户已投过票。

楼上已经回答的很好了,数据库存下openid,然后每次检索有没有,openid增加索性的目的是,增加查询的速度

用微信网页授权可以确保在微信浏览器中打开.没有权限的可以用芝麻之门这种借用他人的授权.openid具有唯一性

很不错的,一个用户不可能同时拥有100个微信号吧,微信也不允许的。

用户每次给你发消息会有个openid,把openid存起来,这样就能在投票时判断下openid是不是自己听众。

订阅号的话限制用户只能通过你的公众号获取投票url!比如让用户回复投票获取url,然后记录用户的openid,用户投票后再记录一下openid,这样既保证了openid的唯一性,又能有限防止有人伪造openid刷票,同时还能涨粉;认证服务号的话可以用微信网页授权

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

SBF888胜博发娱乐PHP 如何匹配文本中是否含有乱码字符

( SBF888胜博发娱乐 )

网站经常有乱码用户名的提交,如何才可以通过PHP来判断文本中是否含有乱码?

php#UTF-8 
$str = '办证';
preg_match_all('/(...)/',$str,$matches);
print_r($matches);
die;
Array
(
    [0] => Array
        (
            [0] => 办
            [1] => 
            [2] => 证
        )

    [1] => Array
        (
            [0] => 办
            [1] => 
            [2] => 证
        )

)

这是你的前台和后台的编码不一致造成的,前台输入的时候就应该进行判断是否让用户输入非法字符。

以下补充内容:

php<?php
/*
仅适用于php文档为ANSI编码
*/

/* 关闭页面错误提示,iconv("","UTF-8","办证证")这段代码一旦转入不是UTF-8编码就会错误 */
error_reporting(0);

$str = "办证"; //接收来的字符串

//尝试转换编码,
$str = iconv('', 'UTF-8', $str);

//匹配是否为UTF-8编码
function is_utf8($utf8str)
{
if (preg_match('/^([' . chr(228) . '-' . chr(233) . ']{1}[' . chr(128) . '-' . chr(191) . ']{1}[' . chr(128) . '-' . chr(191) . ']{1}){1}/', $utf8str) == true || preg_match('/([' . chr(228) . '-' . chr(233) . ']{1}[' . chr(128) . '-' . chr(191) . ']{1}[' . chr(128) . '-' . chr(191) . ']{1}){1}$/', $utf8str) == true || preg_match('/([' . chr(228) . '-' . chr(233) . ']{1}[' . chr(128) . '-' . chr(191) . ']{1}[' . chr(128) . '-' . chr(191) . ']{1}){2,}/', $utf8str) == true) {
return true;
} else {
return false;
}
}

if (is_utf8($str) == 1) {
//由于文件是ANSI编码,此处需用UTF8转换,页面才能正常输出
echo iconv('GB2312', 'UTF-8', '匹配正确');
} else {
//同上
echo iconv('GB2312', 'UTF-8', '匹配错误');
}
?>

3个字的编码为\u529e\ue708\u8bc1,是utf-8,不知道有什么办法

一是前台输入的时候进行非法字符的判断和处理,这样可以避免输入性乱码;二是前台和后台的编码应该一致才会避免发生乱码的现象。

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…