`
文章列表
将PHP编译为interactive shell模式需要在configure的时候使用 --with-readline --with-libedit 当然本机环境中需要安装readline-common\libedit2\libedit-dev 才能configure通过 然后make install即可
今天看PHP的源代码,看到了bin2hex方法的实现,该函数功能是获取某字符的assii码的十六进制表示。 本质就是将一个十进制的数转换成十六进制。而改十进制数必须是8位的,即可以通过一个两位的十六进制数表示。 其核心算法只有两行: 1: data>>4 2: data&15   最终结果就是:data>>4.data&15           //其中的.号代表字符拼接   举例说明:求49的十六进制数: 1: 49>>4=====>3 2: 49&15=====>1   最终结果就是31.求得4 ...
今天回顾学习了PHP中变量实现的方法,在浏览其源码是发现在PHP中所有的数据类型通过一个union存储。 php语言是弱类型语言,其实现中通过记录变量的类型和值来实现其管理。   PHP中使用最多的非Array莫属了,那Array是如何实现的? 在PHP内部Array通过一个hashtable来实现,其中使用链接法解决hash冲突的问题,这样最坏情况下,查找Array元素的复杂度为O(N),最好则为1.   而其计算字符串hash值的方法如下,将源码摘出来以供查备: ps:对于以下函数,仍有两点不明: 1.  hash = 5381设置的理由? 2.  这种step=8的循环 ...
输入为一个日期字符串,例如:2011-3-23 输出为举例当前的天数,例如:1   代码为:   public static function convertDateToLong($dateStr){ $checkPattern = "/^\d{4}(((-\d{1,2}){2})|((\.\d{1,2}){2})|((\/\d{1,2}){2}))$/"; $date = substr(trim($dateStr),0,strpos(trim($dateStr)," ")>0 ? strpos ...
查看表空间的名称及大小: SQL> SELECT T.TABLESPACE_NAME, ROUND(SUM(BYTES/(1024 * 1024)), 0) TS_SIZE FROM DBA_TABLESPACES T, DBA_DATA_FILES D WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME GROUP BY T.TABLESPACE_NAME; 查看表空间物理文件的名称及大小: SQL> SELECT TABLESPACE_NAME,FILE_ID,FILE_NAME,ROUND(BYTES / (1024 * 1024), 0) ...
在编程中经常与遇到将一个字符串根据某个字符切分的问题。 一般我们会用explode将字符串切分成一个数组,然后进行进一步的操作。 但假如有一个需求是要截取一个字符串中某两个相邻的分割字符中间的字串,那么用explode就显得有点浪费了。 毕竟很多其他的被截取出来的字串用不到阿。浪费了空间也浪费了计算。   今天发现了一个方法,就是用preg_match。(如有雷同,实属缘分)   具体方法是这样的: function getsubstr($str,$dec,$index){//获取str中第index个分隔符dec到第index+1个分隔符之间的字串 $inde ...
在编程时,有时候会需要生成固定长度的空格或者特殊字符,以用于数据对齐等。 今天讨论用php生成固定长度的某字符的字符串的一些方法。   方法一:二倍迭代拼接   function getchars($c,$length){ $binchars = decbin($length); ...
本文用php实现了一个朴素贝叶斯分类器,针对属性值为离散型变量的记录进行贝叶斯分类。   通过对sample.csv文件中数据的学习,得到分类模型,然后对predict.csv中的数据的类指标进行预测。 针对每个被预测数据,计算属于每个类的概率,然后概率最大的类就是该数据被预测的类归属。   附件中包含了程序文件:bys.php,样本文件:sample.csv,待预测数据文件:predict.csv。    
所谓类抄写,就是将所构造的对象在生产出来之前,先到父类的构造工厂里面进行一次“洗礼“,以使得子类具有父类的性质。然后,对所要构造的对象进行个性化的定制。在个性化的过程中,可以对父类强加给自己的行为和属 ...
针对该问题,有两种解法,无非就是时间和空间的权衡,在实际应用中根据具体情况而定,具体代码就不写了,分析如下,感兴趣的欢迎PK。 第一种解法,牺牲时间换取空间,具体做法是: 1,首先对字符串进行排序,这一步的时间复杂度是固定的。可以有多种排序算法选择。 2,扫描排序后字符串,并且统计遇到的每个字符的数量。方法为:如果下一个字符和当前字符不一致,则当前统计到的数据就是该字符在字符串中出现的次数,此时拿该数据与之前出现过的最大的数据进行比较。 3,扫面结束之后即可以得到出现次数最多的字符,以及出现的次数。 在此过程中空间复杂度为:3,排序时候的空间复杂度为1,扫描阶段需要记录当前字符,当前字符出现的 ...
Global site tag (gtag.js) - Google Analytics