Hot For Coding
HTML5新特性

WebSocket

HTML5开始支持WebSocket,在这之前只能通过长连接或者flash控件去做通讯,WebSocket使用的业务场景最多应该是聊天室了。

格式

var Socket = new WebSocket(url, [protocal] );

// Nicholas Lee www.qttc.net

if ("WebSocket" in window)
{
  alert("WebSocket is supported by your Browser!");
  
  // Let us open a web socket
  var ws = new WebSocket("ws://localhost:9998/echo");

  ws.onopen = function()
  {
    // Web Socket is connected, send data using send()
    ws.send("Message to send");
    alert("Message is sent...");
  };

  ws.onmessage = function (evt) 
  { 
    var received_msg = evt.data;
    alert("Message is received...");
  };

  ws.onclose = function()
  { 
    // websocket is closed.
    alert("Connection is closed..."); 
  };

  window.onbeforeunload = function(event) {
    socket.close();
  };
}

else
{
  // The browser doesn't support WebSocket
  alert("WebSocket NOT supported by your Browser!");
}

...

READ ALL

MySQL常用日期函数

DAYOFWEEK(date)

返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)

mysql> select DAYOFWEEK('2012-03-20');
-> 3

WEEKDAY(date)

返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。

mysql> select WEEKDAY("2012-03-20 22:23:00");
-> 1

mysql> select WEEKDAY('2012-03-20');
-> 1

DAYOFMONTH(date)

返回date是一月中的第几日(在1到31范围内)

...

READ ALL

PHP中explode()与implode()函数的使用

explode()

explode()是字符串分割函数

格式

array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )

返回一个全是字符串的数组

// Nicholas Lee www.qttc.net

$str = "Hello world. here is qttc.";
print_r (explode(" ",$str));

implode()

implode()是连接字符串函数

格式

string implode ( string $glue , array $pieces )

...

READ ALL

PHP使用flush实现长连接

每次我们访问PHP脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行,那么我们就要通过php长连接的方式,来达到运行目的。

每个PHP脚本都限制了执行时间,所以我们需要通过set_time_limit来设置一个脚本的执行时间为无限长。然后使用flush()ob_flush()来清除服务器缓冲区,随时输出脚本的返回值。

Code

// Nicholas Lee www.qttc.net

header("Content-Type: text/plain");
set_time_limit(0);
 
$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
  echo $infoString;
  flush();
  ob_flush();
  sleep(5);
}

...

READ ALL

PHP替换字符串函数strtr()

strtr(string,from,to)

逐个字符开始替换,以from跟to中长度较较短的一个为准,例如:

// Nicholas Lee www.qttc.net

echo strtr("aidenliu", "ai", "b");
// Output: bidenliu
// Nicholas Lee www.qttc.net

echo strtr("aidenliu", "a", "bc");
// Output: bidenliu

此函数是大小写敏感的,具如果发生多次替换,每一次替换的蓝本都是最原始的那个字符串,而不是在前一次替换的基础上替换,如

...

READ ALL

jQuery中使用Ajax

jQuery封好了许多直接可以使用的Ajax请求函数

GET请求

$.get()这个方法可以发起一个GET请求

// Nicholas Lee www.qttc.net

$.get('/api_by_get', ($res) => {
  console.log($res);
})

在回调中获取响应结果

POST请求

$.post()这个方法可以发起一个POST请求

// Nicholas Lee www.qttc.net

$.post'/api_by_post', "Hello world", ($res) => {
  console.log($res);
})

...

READ ALL

PHP数据库对象PDO简单使用

什么是PDO

PDO是PHP 5新加入的一个特性,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、SQLite,同样的,我们必须借助 ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效?PDO就是弥补这些缺陷的,做一个统一的DB层抽象处理

安装PDO

打开php.ini找到extension_dir配置它,比如

...

READ ALL

PHP函数date与time使用

time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,这样方便做一些时间计算

要找出前一天的时间就是

// Nicholas Lee www.qttc.net

echo time() - 60 * 60 * 24;

要找出前一年的时间就是

// Nicholas Lee www.qttc.net

echo time() * 60 * 60 * 24 * 365;

那么如何把这个数字换成日期格式呢,就要用到date函数了

// Nicholas Lee www.qttc.net

$t = time();
echo date("Y-m-d H:i:s", $t);

...

READ ALL

PHP header函数

作用

PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了,可参照

http://www.w3.org/Protocols/rfc2616/rfc2616

传统的标头一定包含下面三种标头之一,并只能出现一次。

Location: xxxx:yyyy/zzzz
Content-Type: xxxx/yyyy
Status: nnn xxxxxx

用法

header(string,replace,http_response_code)

...

READ ALL

PHP循环函数foreach与while性能比较

foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。

  • 在循环里进行的是数组reading操作,foreach比while快
  • 在循环里进行的是数组writing操作,while比foreach快
/**
 * while跟foreach函数性能比较
 * Nicholas Lee www.qttc.net
 */
 
// foreach 函数
foreach ($array as $key => $value) {
  echo $array[$key] = $value . '...';
}
 
// while 函数
while (list($key) = each($array)) {
  $array[$key] = $array[$key] . '...';
}

...

READ ALL