标签 php 下的文章

项目有存储图像、需要。单靠云主机的弱鸡带宽肯定是撑不住的,所以考虑用对象储存服务。主打弹性成本带宽也管饱,还有一些额外的好处,下文説。下文流水账记录快速部署到可用的状态。其实官方文档已经有足够的信息只是版本有点杂,我需要多出相互比对测试了一番。所以下面这个也可以说是速通教程。

- 阅读剩余部分 -

前端看没有报错,但file_get_contents()返回了 null, 看服务端日志才发现这个提示。

以前也遇到过,备忘一下。当然改用 curl 也是不错的选择。

//$json_token = file_get_contents($url_accesstoken); //ssl报错
//修改方案,构造一个context参数,不验证ssl
$context = stream_context_create([
    'ssl' => [
        'verify_peer'      => false,
        'verify_peer_name' => false
        ]
]);
$json_token = file_get_contents($url_accesstoken,false,$context); //忽略报错,正确返回内容

参考来源:https://qiita.com/mindwood/items/fd23ddcb94fb4eefa99c

客户要做代发微信红包的活动,无一例外地招来黑产的攻击盗刷作弊。
和黑产斗智斗勇内耗严重。

活动数据始终容易被伪造,所以思路最后还是落在增加他们的违法成本上,让其食之无味知难而退。

主要方式是针对可疑的IP建立黑名单机制,因为更换IP或者找寻特定地理位置的代理的IP成本极高,即使它们在目标地区,更换动态IP也能减缓其速度。

需求前提铺垫到此为止,以下是实现过程。

考虑到这种查库存在误差和过时失效等精确度的问题。IP归属地和 手机号码归属地进行结合判定,提高判断结果的可信程度。


- 阅读剩余部分 -

先说结论:只要文件是同个文件,hash是一致的。

Linux

md5sum filepath

#md5sum 01000.chunk 
ae2056ca156511f3a8223e2a4599b7bf  01000.chunk

PHP

md5_file(filename);

<?php
$file = "01000.chunk";
$md5 = md5_file($file);
var_dump($md5);
//string(32) "ae2056ca156511f3a8223e2a4599b7bf"
?>

Python

这个稍微复杂点,要自己实现,而且执行起来效率貌似也有点低。不清楚为何,按理说所有方法都要读取完整文件效率应该相差不大才对,可能是我方法不对。


import hashlib

fname = "01000.chunk"

def md5_file(filename):
    m = hashlib.md5()   #创建md5对象
    with open(filename,'rb') as fobj:
        while True:
            data = fobj.read(4096)
            if not data:
                break
            m.update(data)  #更新md5对象
    return m.hexdigest()    

hash = md5_file(fname)
print(hash, fname) 

奇怪的错误,虽然表格内容有点大,2万多行50多列。但单线程理应不会吃掉128M内存

试过代码中非常保守地注销不必要的对象管控内存,依然不行。

解决方法:做了一个激进的预设

ini_set('memory_limit', '1024M');

终于运行通过了。
导出的xlsx文件只有2M,百思不得其解,不该吃掉128M内存啊?