分类目录归档:Develop

【转】为什么很多网站的静态资源会使用独立的域名?

u=4074891242,748395977&fm=21&gp=0

用一个独立的域名有以下几个优点:

1、避免域名污染。 当浏览器向服务器请求一个静态资源时,会先发送同域名下的 cookie,服务器对于这些 cookie 不会做任何处理。因此它们只是在毫无意义的消耗带宽。所以你应该确保对于静态内容的请求是无coockie的请求。
2、动静分离更有利于CDN
3、HTTP对同一个域名的同时下载线程数是有限的,只是为了优化下载速度,防止一个域名下太多下载线程,每个浏览器的限制不同
4、方便复用,放在另一个服务器上,可以方便全局内其他产品的使用,比如说taobao.com的js文件可以给tmall.com使用
5、基于第四点,还有利于客户端的缓存(请求同一个文件,无需重复下载)

解决运行php composer出现SSL报错的问题

c:\>php -f %phprc%\composer install
Loading composer repositories with package information

  [Composer\Downloader\TransportException]
  The "https://packagist.org/packages.json" file could not be downloaded: SSL
   operation failed with code 1. OpenSSL Error messages:
  error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify
  failed
  Failed to enable crypto
  failed to open stream: operation failed

install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-p
lugins] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--ver
bose] [-o|--optimize-autoloader]

没有安装CA证书导致的,CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

然后修改php.ini文件

openssl.cafile= D:/xampp/php/verify/cacert.pem

问题解决。

Windows10的80端口被System占用

安装了Windows10系统后,如果装Apache是启动不了的,遇到这个Apache启动不了的时候,首先是查看80端口是不是被占用。

运行netstat -aon | findstr :80 ,发现pid是4的进程占用着80端口,这还是一个系统进程,kill不掉。所以只能另想办法:

1、打开注册表:regedit
2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
3、在右边找到Start这一项,将其改为0
4、重启系统,System进程不会占用80端口

重启之后,再启动Apache就可以了。

PHP 连接 SQLServer2005/2008/2012/2014(For Win)

PHP连接SQLServer2005/2008或以后版本数据库与以往的连接SQLServer2000是不一样的,需要自己添加PHP对SQLServer连接的驱动扩展。

(php.ini中的extension=php_mssql.dll扩展只适用连接于SQLServer2000)

1、微软官网下载一个SQLServer Driver for PHP的扩展包。下载地址
2、安装解压缩,解压出来一堆DLL文件,全部放到php\ext目录下
3、在php.ini的Dynamic Extensions中添加如下两条扩展:

    extension=php_sqlsrv_56_ts.dll
    extension=php_pdo_sqlsrv_56_ts.dll

4、重启apache
5、测试代码

<?php
  $servern="SFKFK27EL8FJ\SQLTRY";
  $coninfo=array("Database"=>"db address","UID"=>"sa","PWD"=>"123456");
  $conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!");
  $val=sqlsrv_query($conn,"select * from usertable");
  while($row=sqlsrv_fetch_array($val)){
    echo $row[1]."<br />";
  }
  sqlsrv_close($conn);
?>

编译OpenWRT

openwrt-logo

推荐使用Ubuntu下的环境进行编译,因为是最为方便的。

1、先需要安装准备环境

sudo apt-get install -y gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev gawk asciidoc libz-dev git libssl-dev

2、把最新版的openwrt系统源码通过svn下载

svn checkout svn://svn.openwrt.org/openwrt/trunk

3、准备编译

cd trunk
./scripts/feeds update -a
./scripts/feeds install -a

通过menuconfig,进行个性化的设置

make menuconfig

4、正式编译(过程很漫长,因为还需要下载很多包)

make V=99

左右值无限分类实现算法

一、引言

产品分类,多级的树状结构的论坛,邮件列表等许多地方我们都会遇到这样的问题:如何存储多级结构的数据?在PHP的应用中,提供后台数据存储的通常是关系型数据库,它能够保存大量的数据,提供高效的数据检索和更新服务。然而关系型数据的基本形式是纵横交错的表,是一个平面的结构,如果要将多级树状结构存储在关系型数据库里就需要进行合理的翻译工作。接下来我会将自己的所见所闻和一些实用的经验和大家探讨一下:
层级结构的数据保存在平面的数据库中基本上有两种常用设计方法:

  • 毗邻目录模式(adjacency list model)
  • 预排序遍历树算法(modified preorder tree traversal algorithm)

继续阅读