Hot For Coding
如何找出PHP配置文件php.ini的路径?

近来,有不博友问php.ini存在哪个目录下?或者修改php.ini以后为何没有生效?基于以上两个问题,我觉得有必要教一下刚接触PHP的博友们如何找到PHP调用php.ini的路径目录。

一般安装PHP环境无非有两种平台,Linux环境下与Win平台下。而WIN平台居多,因为现在套装安装包非常方便,如appserv、wamp一件安装包等等。而Linux下也有LNMP一键安装包,非常方便。由于这些安装做了简化,所以自然的许多博友就不太清楚环境安装好了以后php.ini放在哪个目录下,或者在某个目录下找到了php.ini文件但不知是否是PHP程序调用的那个。

...

READ ALL

MySQL存储引擎MyISAM特性

MySQL的默认存储引擎MyISAM一直都是MySQL非事务存储引擎的最佳选择。它在性能和可用特征之间,提供一种良好的均衡性,如全文索引、压缩、空间函数。MyISAM仅支持表锁,不支持行级锁。

加锁与并发

MyISAM对整张表加锁,而不是行。读取程序在需要读取数据时,在所有表上都可以获得共享锁(读锁),而写入程序可以获得排它锁(写锁)。用户在执行查询select语句时,可以同时在一张表内插入新数据,这也称读写并发,这是一个非常有用的特性。

数据加密

这个还是有点用的,特别是敏感数据

B-tree索引

由于B-Tree的特性,在B-Tree中按key检索数据的算法非常直观, 首先从根节点进行二分查找,如果找到则返回对应节点的data,否则对相应区间的指针指向的节点递归进行查找,直到找到节点或找到null指针,前者查找成功,后者查找失败

...

READ ALL

8条命案持枪嫌犯周克华域名被抢注!

名人的姓名全拼域名被抢注已是煮米高手的必备一招,但前两天重庆银行持枪抢劫犯周克华的全拼域名也被人抢注了。

full

从whois查询结果看到域名在8月10日,也就是重庆银行发生抢劫案当天,警方公布通缉犯周克华姓名后即被抢注。

full

从注册信息可以看到是温州市(wen zhou shi),诶!看来周克华确切成了名人,风范一点也不比当年的马加爵差。可惜,当年马加爵犯案的时候,姓名全拼域名没有被重视。

不过我还是有点想不通,抢注名人的姓名全拼域名可能有被高额收购的可能,但不知道煮一个通缉犯的姓名全拼域名想做什么站?难不成专题报道犯罪嫌疑人的相关信息,可惜我估计马克华是没有本钱赎回自己的全拼域名了。

...

READ ALL

CSS display属性

在CSS中可以通过display属性来快速隐藏一个Element,display就是告诉浏览器如何来显示Element,如果你给none值的话就是不显示

div {
  display: none;
}

最长见的另外一种用法就是让行级标签变成块级标签,值是block

span {
  display: span;
}

以上代码就是让span标签从行级变块级,当然也可以反过来块级变行级inline-block

h1 {
  display: inline-block
}

display的可用属性其实还有很多,如flexgridtableinherit等等,如果你不想设置任何模式,可以给默认值initial

...

READ ALL

MySQL事务autocommit自动提交

MySQL默认操作模式就是autocommit自动提交模式。这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行。我们可以通过设置autocommit的值改变是否是自动提交autocommit模式。

通过以下命令可以查看当前autocommit模式

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.04 sec)

...

READ ALL

CentOS如何发送邮件

CentOS是一个非常不错的免费开源Linux系统,许多站点首选的平台。然而CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序。

安装sendmail

执行:

yum -y install sendmail

程序会自动搜索出sendmail安装程序自动安装。

安装好sendmail以后执行以下命令启动sendmail

[root@vps478753 ~]# service sendmail start
Starting sendmail:                                         [  OK  ]
Starting sm-client:                                        [  OK  ]

...

READ ALL

CSS指针形状属性cursor

CSS有一个属性cursor,它可以改变指针形状

最长的无非就是给节点加上小手的形状了

# div {
  width: 300px;
  height: 300px;
  cursor: pointer;
  background: red;
}

指针有很多种,看看来自W3C这个例子就知道了

.alias {cursor: alias;}
.all-scroll {cursor: all-scroll;}
.auto {cursor: auto;}
.cell {cursor: cell;}
.context-menu {cursor: context-menu;}
.col-resize {cursor: col-resize;}
.copy {cursor: copy;}
.crosshair {cursor: crosshair;}
.default {cursor: default;}
.e-resize {cursor: e-resize;}
.ew-resize {cursor: ew-resize;}
.grab {cursor: grab;}
.grabbing {cursor: grabbing;}
.help {cursor: help;}
.move {cursor: move;}
.n-resize {cursor: n-resize;}
.ne-resize {cursor: ne-resize;}
.nesw-resize {cursor: nesw-resize;}
.ns-resize {cursor: ns-resize;}
.nw-resize {cursor: nw-resize;}
.nwse-resize {cursor: nwse-resize;}
.no-drop {cursor: no-drop;}
.none {cursor: none;}
.not-allowed {cursor: not-allowed;}
.pointer {cursor: pointer;}
.progress {cursor: progress;}
.row-resize {cursor: row-resize;}
.s-resize {cursor: s-resize;}
.se-resize {cursor: se-resize;}
.sw-resize {cursor: sw-resize;}
.text {cursor: text;}
.url {cursor: url(myBall.cur),auto;}
.w-resize {cursor: w-resize;}
.wait {cursor: wait;}
.zoom-in {cursor: zoom-in;}
.zoom-out {cursor: zoom-out;}

...

READ ALL

PHP多态性实例

什么是多态性

多态性是继数据库抽象和继承后,面向对象语言的第三个特征。多态即多种形态,具有表现多种形态的能力特征。在面向对象中表示根据对象的类型以不同方式处理。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。

如我们创建一个doing()方法,如果是学生则打印上课,如是公司职员则打印上班。

普通做法

使用if判断

/**
 * PHP多态性
 * Nicholas Lee www.qttc.net
 */
 
// 定义学生类
class student{
  public function cla(){
    echo "学生工正在上课!<br />";
  }
}
 
// 定义职员类
class office{                              
  public function Wor(){
    echo "职员正在上班!<br />";
  }
}
 
// 判断对象类型方法
function doing($obj){ 
  if($obj instanceof student){ 
    $obj->cla();
  }elseif($obj instanceof office){
    $obj->wor();
  }else{
    echo "没有这个对象!";
  }
}
 
doing(new student()); // 学生正在上课
doing(new office());  // 职员正在上班

...

READ ALL

JavaScript计算两点之间的距离

计算两点之间的距离假如不是平行或者垂直的两点话就需要用到三角形原理来计算了

full

公式也特别简单,假如你知道了两个点的xy坐标,那么就可以利用以下公式算出来两点之间的距离

var a = x1 - x2;
var b = y1 - y2;

var c = Math.sqrt(a * a + b * b);

// c is the distance

根据三角形公式,两个直角边平方的总和在根除一下就是斜边的距离,而斜边的距离就是两点之间的距离

...

READ ALL

180M小内存VPS体会

目前几乎所有VPS提供商都限定最小内存为512M,如我之前使用的Linode,它们最小内存就是512M。但Linux是一个优越的服务器系统,占用内存小。因此有不少VPS提供商还在销售128M的VPS,甚至64M的也不奇怪。当然,这种小内存的VPS服务器自然是Linux了。小内存的VPS价格便宜实惠,又不浪费。

我也购买了一个180M的小内存VPS试试一下效果怎样。经过挑选,最终选定DiaHosting这家。

配置信息,支持支付宝付款,但汇率按1:7算。有优惠码可以打折,优惠码网上搜就有。我的优惠码九折,打折后9刀,实际付款63RMB。

full

...

READ ALL