-
[PHP]日志处理error_log()函数和配置使用
所属栏目:[大数据] 日期:2021-05-21 热度:95
1.error_log($message,$message_type,$destination,$extra_headers)函数, 2.message_type 是0,发送信息到PHP.ini配置的error_log的位置 cli环境下是这里:/etc/PHP/7.0/cli/PHP.ini ? fpm环境下是:/etc/PHP/7.0/fpm/pool.d/www.conf PHP_admin_value[error_lo[详细]
-
[PHP]垃圾回收机制
所属栏目:[大数据] 日期:2021-05-21 热度:139
PHP的垃圾回收机制: 1. PHP可以自动进行内存管理,清除不需要的对象,主要使用了引用计数 2. 在zval结构体中定义了ref_count和is_ref,ref_count是引用计数,标识此zval被多少个变量引用,为0时会被销毁 is_ref标识是否使用的 取地址符强制引用 3. 为了解决循环引[详细]
-
[PHP]实体类基类和序列化__sleep问题
所属栏目:[大数据] 日期:2021-05-21 热度:167
1.构造函数传参 2.__get和__set实现,当调用不存在的属性的时候,可以取值和赋值到data属性数组 3.__sleep实现,当序列化对象的时候,只序列化data属性数组和类内初始化定义的字段 4.__isset实现,可以判断属性是否存在,通过判断data属性数组 5.toArray方法实现,[详细]
-
[日常] 正则表达式 小括号() 中括号[] 大括号{}
所属栏目:[大数据] 日期:2021-05-21 热度:174
1. ()匹配并捕获 2. []匹配字符组里的每一个字符 3.{}匹配出现的次数 ?PHP$str="taoshihan";preg_match_all("/(tao)/",$str,$m);//匹配并捕获var_dump($m);/*[0]是匹配到的[1]是捕获到的array(2) { [0]= array(1) { [0]= string(3) "tao" } [1]= array(1) {[详细]
-
[日常] imap协议读取邮件
所属栏目:[大数据] 日期:2021-05-21 热度:140
telnet imap.sina.net 143A01 LOGIN shihan@appdev.sinanet.com 密码A02 list "" *//列出邮件夹* LIST () "/" "INBox"* LIST (Drafts) "/" "g0l6P1k5-"* LIST (Sent) "/" "XfJT0ZAB-"* LIST (Trash) "/" "XfJSIJZk-"* LIST (Junk) "/" "V4NXPpCuTvY-"* L[详细]
-
[PHP] defunct僵尸进程
所属栏目:[大数据] 日期:2021-05-21 热度:145
1.如果子进程先于父进程退出, 同时父进程又没有调用wait/waitpid,则该子进程将成为僵尸进程 2.如果fork完就不管了可以使用 忽略子进程信号,防止僵尸进程 pcntl_signal(SIGCLD,SIG_IGN); 3.如果在主进程中,可以等待子进程的退出,这样也能防止出现僵尸进程 p[详细]
-
[PHP] yield沟通函数循环内外
所属栏目:[大数据] 日期:2021-05-21 热度:167
1.yield是函数内外,循环内外沟通用的,当你的函数需要返回一个大数组,循环的时候需要遍历这个大数组时,并且需要多次遍历这个函数的返回值,这个是有用的 2.当我也是只需要在一次循环中就可以处理完所有的事情时,这个就没啥用 ?PHP$start=memory_get_usage();fu[详细]
-
[PHP]命令执行函数的区别
所属栏目:[大数据] 日期:2021-05-21 热度:91
? ? PHP $cmd ="ps aux|grep PHP-fpm" ; $res = exec ( $cmd , $o ); var_dump ( $o ); // 数组形式返回,每行一个元素 $res ); 字符串形式返回,只返回最后一行 echo "==============================================================nr" system ( $cmd );[详细]
-
[PHP] 魔术方法__get __set __sleep __wakeup的实际使用
所属栏目:[大数据] 日期:2021-05-21 热度:165
1.__get __set是在给不可访问属性赋值和读取时,调用 2.__sleep 是在序列化对象的时候调用 3.__wakeup是在反序列化对象的时候调用 4.可以在序列化对象的时候,只序列化指定的属性,减少序列化后的大小,要把这个对象字符串存储在比如memcache的时候,比较有用 ?5.[详细]
-
[PHP] 适配器模式的日常使用
所属栏目:[大数据] 日期:2021-05-21 热度:185
适配器模式就是将一个类的接口方法转换成我希望用的另一个方法,下面是个常见的用处 class Session{public $mc;public function __construct(){$this-mc=new Memcache();$this-mc-connect("115.159.28.112");}//把一个方法转换成另一个方法public function se[详细]
-
[PHP] foreach循环的引用赋值可能导致的问题
所属栏目:[大数据] 日期:2021-05-21 热度:64
foreach($arr as $value) 1.引用赋值符号,是每次循环的时候,把当前元素变成地址,$value变量就是对应元素的地址,循环结束$value是一个指向最后一个元素的地址 2.当我下次循环,使用了这种方式foreach($arr as $value),会出现问题;foreach会把每个元素赋值给后[详细]
-
[PHP] assert()断言检测函数
所属栏目:[大数据] 日期:2021-05-21 热度:76
assert_options函数 设置断言的参数 assert 函数,检测一个断言 ?PHP// 激活断言,并设置它为 quietassert_options(ASSERT_ACTIVE,1);assert_options(ASSERT_WARNING,0);assert_options(ASSERT_QUIET_EVAL,1);// 设置回调函数assert_options(ASSERT_CALLBACK,[详细]
-
[PHP] 控制反转依赖注入的日常使用
所属栏目:[大数据] 日期:2021-05-21 热度:155
控制反转:控制权交给了自己的类 依赖注入:依赖另一个类,我没有手动去new它 ?PHP/*我自己要用的类*/class User {private $name;private $age;public function __construct($name,$age){$this-name=$name;$this-age=$age;} public static function createResou[详细]
-
[PHP] 简单多进程并发
所属栏目:[大数据] 日期:2021-05-21 热度:79
?企邮搬家进程管理逻辑,经过简化后的功能实现 ? ?PHP//守护进程umask(0); //把文件掩码清0 if (pcntl_fork() != 0){ //是父进程,父进程退出 exit();} posix_setsid();//设置新会话组长,脱离终端 if (pcntl_fork() != 0){ //是第一子进程,结束第一子进程 e[详细]
-
[日常] 腾讯云发送邮件失败问题
所属栏目:[大数据] 日期:2021-05-21 热度:85
? 1. 在腾讯云上的程序发送邮件失败,是因为腾讯云封禁了25端口 2.使用telnet测试连接第三方smtp服务的25端口,均失败 3.进入腾讯云控制台,申请解封25端口 4.解封完成后,可以连接对方的25端口 5. 此时发送邮件是正常的[详细]
-
[PHP] curl访问https与CA证书问题
所属栏目:[大数据] 日期:2021-05-21 热度:177
CA证书,用来在调用HTTPS资源的时候,验证对方网站是否是CA颁布的证书,而不是自己随便生成的 curl命令 1.需要下载CA证书 文件地址是 http://curl.haxx.se/ca/cacert.pem 2.把下载的文件放到这个位置 /etc/pki/tls/certs/ca-bundle.crt 3.curl就可以访问https的[详细]
-
[PHP] 频率限制类
所属栏目:[大数据] 日期:2021-05-21 热度:190
比如要实现 单个ip限制60秒1次 单个关键字,比如手机号,限制60秒1次,3600秒10次 ? ?PHPclass Sina_Mail_WebAntispam { const PREFIX_WHITELIST = 'w:'; const PREFIX_KILL = 'k:'; const PREFIX_VERIFYCODE = 'c:'; const PREFIX_VERIFIED = 'v:'; const STAT[详细]
-
[Go] go常量中的无类型常量
所属栏目:[大数据] 日期:2021-05-21 热度:124
Go语言的常量有个不同寻常之处。虽然一个常量可以有任意一个确定的基础类型,例如int或float64,或者是类似time.Duration这样命名的基础类型,但是许多常量并没有一个明确的基础类型。 math.Pi就是无类型的浮点数常量 const ( E = 2.71828182845904523536028[详细]
-
[Go] go下实现md5加密
所属栏目:[大数据] 日期:2021-05-21 热度:85
下面这个工具包下的函数 package utilsimport ( " crypto/md5 " encoding/hex " ) // md5加密 func Md5(src string ) string { m : = md5.New() m.Write([] byte (src)) res : = hex.EncodeToString(m.Sum(nil)) return res} ? pass:=utils.Md5("test") ?[详细]
-
[Go] Go中延迟语句defer的注意事项
所属栏目:[大数据] 日期:2021-05-21 热度:81
defer语句在不对的位置出现 , 会出现错误 file,err := os.Open( " /null " )defer file.Close() if err != nil { fmt.Println( open error! ,err) return } res,err := http.Get( http://www.google.com " ) // 不翻墙的情况下。是无法访问滴 defer res.Bod[详细]
-
[GO] go-fly客服系统0.2.2打包编译版下载
所属栏目:[大数据] 日期:2021-05-21 热度:130
有朋友可能没有golang的环境,没法直接源码运行客服系统,现在进行编译后的包上传到这里 ? https://github.com/taoshihan1991/go-fly/releases/tag/v0.2.2 ? ? ? ? ? ?[详细]
-
[Go] GO语言实战-slice的初始化影响转换成json后的数据结构
所属栏目:[大数据] 日期:2021-05-21 热度:71
1. 切片slice的声明和初始化,如果只是单纯的声明 var list []string?,那么list现在是nil?,转换成json会变成null ? 2. 声明后使用了append函数增加了数据?,那么就是正常的列表了? var list [] string list =append(list, " 你好 " ) ? 3. 可以使用下面的形式[详细]
-
[Go] Go中的channel特性
所属栏目:[大数据] 日期:2021-05-21 热度:82
会panic的几种情况 1.向已经关闭的channel发送数据 2.关闭已经关闭的channel 3.关闭未初始化的nil channel ? 会阻塞的情况: 1. 从未初始化nil channel中读数据 2. 向未初始化nil channel中发数据 3.在没有读取的groutine时,向无缓冲channel发数据 4.在没有[详细]
-
[Go] 获取当前时间戳和时间戳单位转换
所属栏目:[大数据] 日期:2021-05-21 热度:199
1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒 fmt.Printf("时间戳(秒):%v;n",time.Now().Unix()) fmt.Printf("时间戳(纳秒):%v;n",time.Now().UnixNano()) fmt.Printf("时间戳(毫秒):%v;n",time.Now().UnixNano() / 1e6) fmt.Printf("时间戳(纳[详细]
-
[Go] golang中接口值(interface)与nil比较或指针类型之间比较的
所属栏目:[大数据] 日期:2021-05-21 热度:179
注意问题,当对interface变量进行判断是否为nil时, 只有当动态类型和动态值都是nil,这个变量才是nil 下面这种情况不是nil func f( out io.Writer) { // ...do something... if out != nil { out .Write([] byte ( " done!n " )) }} var buf * bytes.Bufferf([详细]