源码分析

[PHP源码阅读]strpos、strstr和stripos、stristr函数

strposmixed strpos ( string $haystack, mixed $needle [, int $offset = 0 ] )如果offset指定了,查找会从offset的位置开始。offset不能为负数。返回needle第一次出现在haystack的位置。如果在haystack中找不到needle,则返回FALSE。needle,如果needle不

[PHP源码阅读]arra_push和arra_unshift函数

在PHP中,在数组中添加元素也是一种很常用的操作,分别有在数组尾部和头部添加元素,看看PHP内部是如何实现数组插入的操作。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过commit记录查看已添加的注解。array_pushint array_push ( array &$array , mixed $value

[PHP源码阅读]arra_slice和arra_splice函数

array_slice和array_splice函数是用在取出数组的一段切片,array_splice还有用新的切片替换原删除切片位置的功能。类似javascript中的Array.prototype.splice和Array.prototype.slice方法。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过c

[PHP源码阅读]arra_pop和arra_shift函数

上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素。array_pop和array_shift只从数组的头或尾删除一个元素。经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能。因此解读时将这两个函数一并讲了。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5

[PHP源码阅读]arra_pop和arra_shift函数

上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素。array_pop和array_shift只从数组的头或尾删除一个元素。经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能。因此解读时将这两个函数一并讲了。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5

filebeat 源码分析

由于业务需要,我们要对 beats 进行二次开发。所以最近我在看它的实现。这篇文章就是对此的一段总结。beats是知名的ELK日志分析套件的一部分。它的前身是logstash-forwarder,用于收集日志并转发给后端(logstash、elasticsearch、redis、kafka等等)。filebeat是beats项目中的一种beats,负责收集日志文件的新增内容

D3 源代码解析(二)

这是继上一篇D3源码解构文章后的对D3的研究笔记,笔者的能力有限,如有哪里理解错误,欢迎指正。对集合的操作关于d3.attr一个可以处理很多情况的函数,当只传入一个参数时,如果是string,则返回该属性值,如果是对象,则遍历设置对象的键值对属性值,如果参数大于等于2,则是普通的设置样式:var node = d3.select('body')node.attr('clas