作者: countmeon

  • PHP写的小型数据库

    插入数据

    include ‘pdbm.php’;

    $timestart = explode(‘ ‘, microtime());
    $timestart = $timestart[0] + $timestart[1];

    $pdbm = new Pdbm(‘test’);
    $pdbm->open(PDBM_CREAT | PDBM_REWD);

    for ($i = 0; $i < 100000; $i++) {
        $pdbm->insert(“key{$i}”, “value{$i}”);
    }

    $timetime = explode(‘ ‘, microtime());
    $timetime = $timetime[0] + $timetime[1];

    echo $timetime – $timestart;
    //*/

    获取数据

    include ‘pdbm.php’;

    $timestart = explode(‘ ‘, microtime());
    $timestart = $timestart[0] + $timestart[1];

    $pdbm = new Pdbm(‘test’);
    $pdbm->open(PDBM_REWD);

    $val = $pdbm->fetch(‘key9999’);
    if ($val == NULL) {
        echo ‘Not found</br>’;
    } else {
        echo $val.”<br/>”;
    }

    //$pdbm->delete(‘key100’); //delete data

    $val = $pdbm->fetch(‘key100’);
    if ($val == NULL) {
        echo ‘Not found</br>’;
    } else {
        echo $val.”<br/>”;
    }

    $timetime = explode(‘ ‘, microtime());
    $timetime = $timetime[0] + $timetime[1];

    echo $timetime – $timestart;
    //*/

    (更多…)

  • MySQL5.5 正式发行

    甲骨文公司宣布 MySQL5.5 正式发行!

    现在,包括默认的 InnoDB 存储引擎,MySQL5.5 提供显着的性能和可扩展性的改进,以在运行最新的在多CPU和多核心硬件和操作系统时,提供最佳化性能和可扩展性。

    这个在线网络研讨会将介绍MySQL 5.5 性能精进所带来的的更好的基准测试数据。随着收购Sun,甲骨文不断投资改善MySQL以使MySQL成为更好的MySQL。请加入我们,了解我们从MySQL数据库本身到整个MySQL的产品系列的开发,管理和监视工具上有什么具体成就。

  • Intel发布310系列迷你固态硬盘

    Intel的新款固态硬盘悄然发布了!不过并非大家期待已久的X25-M后继者、34nm新工艺型号,而是改用了mini-SATA(mSATA)接口的新版本,并且叫作310系列。mSATA接口是标准SATA的迷你版本,通过mini PCI-E界面传输信号,传输速度支持1.5Gbps、3Gbps两种模式。凭借这种迷你接口,Intel 310系列固态硬盘的身段非常苗条,三围尺寸仅有51×30×5.8毫米,大致相当于一枚硬币,体积只有9.5毫米厚2.5寸标准规格的大约11%,相比于1.8寸微型规格也仅有五分之一左右,同时重量也不到10克,拿在手里几乎没有感觉。

    规格方面,Intel 310系列固态硬盘提供40GB、80GB两种容量版本,其中前者与2.5寸普及型X25-V 40GB几乎一模一样,都是持续读取170MB/s、持续写入35MB/s、4KB随机读取25000 IOPS、4KB随机写入2500 IOPS、空闲功耗75mW、读写功耗150mW。

    80GB版本则大致相当于X25-M 80GB,4KB随机读写性能都是35000 IOPS、6600 IOPS,空闲和读写功耗同上,但持续读写速度变为200MB/s、80MB/s,不同于后者的250MB/s、70MB/s。

    不过Intel 310系列并不会出现在零售市场上,而是直接出货给笔记本厂商进行预装,首当其冲的就是联想ThinkPad系列。有趣的是,这种新的迷你固态硬盘可与2.5寸机械硬盘搭配,为笔记本用也带来SSD+HDD的双硬盘混合方案。

    价格方面,40GB、80GB 310固态硬盘的千块批发价分别为99美元、179美元,略贵于对应容量的2.5寸型号。

  • 修改WP Cleaner短标签语句

    之前写过一篇这个插件的文章WP Cleaner 删除wordpress不再需要的修订版,但是自从某次升级以后变无法使用这款插件了,我一直以为是插件的问题,并且作者也发出了一个修正版本,但是情况依然没有改变,我还是无法使用。

    这两天找了找其他的清理插件,效果没有这个理想还是想用这款插件,于是耐下心来看了看插件的代码,结果发现并不是大问题,因为我的空间不在支持短标签了,而插件是使用的短标签“<? ”我只需要改成“<?php ”即可了,粗略看了下代码使用了三次替换来处理这块。

    第一,把代码里的“<?=”替换为“<?php echo ”
    第二,把“<?”替换为“<?php”
    第三,把“<?phpphp”替换为“<?php”

    完成这三次替换保存代码即可在关闭短标签的状态下使用了。

    插件官方地址:http://www.jiangmiao.org/blog/138.html

    本站提供修改版下载地址:http://www.box.net/shared/sarkgk9ma2

    PS:其实这个只是代码写作习惯问题,建议插件作者也处理下这块,毕竟运行环境有时候不用用户能够操作的,而且一个良好的习惯也是有必要的。

  • Akismet获取API KEY的方法

    详细步骤:

    1,登录http://www.wordpress.com

    2,在WordPress.com右上角找到 Sign Up Now。

    3,填写基本信息,需要注意的,我都注明了:

    4,到邮箱里点击链接验证,并更新个人信息。

    Update Your Profile!是 更新个人信息 的意思。

    这里有一个细节,可以体现WordPress.com的用户体验做的非常完美:如果一直没有收到验证的邮件,可以重新选择邮箱。

    5,点击邮箱里的验证链接,出现 Your account is now active! 表示帐户已经验证成功。

    6,登陆WordPress.com,登陆之后,http://www.wordpress.com首页左上角的用户状态已经变更:

    7,点击 My Account下面的Global Dashboard进入后台,再点击 Profile,再点击 Were you looking for your API Key and other Personal Settings?。

    8,在点开的页面里可以看到:Your WordPress.com API key is: xxxxxxxxx,这就是属于自己的Akismet的Api Key了。
    但要注意后面的一句话:Don’t share your API key, it’s like a password.中文意思是:这和密码一样重要,请勿分享给其他人使用。

    9,到这里,就完成Akismet的Api Key的获取过程,以后各位可以自己获取了。

    10,有任何问题,欢迎留言。

  • 安装memcache for windows

    dx1.5开始支持memcache,服务器安装加载后,速度会好很多,而且安装并不是太麻烦,下面以Windows 2003为例,介绍安装和在dx1.5中启用方法:
    1:下载memcached组件,这里提供一个.附件提供
    之后解压到任意目录下,比如我就解压到服务器的d:\memcache目录下。
    2、点击开始–运行—cmd,回车

    输入命令

    d:\memcache\memcached.exe -d install(这个命令是安装到服务项里,卸载可用uninstall)没有提示错误就表明安装成功,接着输入命令

    d:\memcache\memcached.exe -d start   (这个是启动命令)如果没有错误提示,表明启动成功。

    3、按照你的php版本下载php_memcache.dll 文件,我这里提供一个支持php5.2.X的,注意因为我使用的是php5.2.2,如果你不能用请自行在网上搜索下载:
    将文件放到php的ext目录下。

    4、打开php.ini文件
    在扩展里添加一行:

    extension=php_memcache.dll保存文件。

    5、服务器里运行命令 :

    iisreset /restartphp_memcache.dll.zip

    memcached-1.2.1-win32.zip

  • 随机密码生成器

    有的时候需要随机数,但是一直没有做出一个随机数程序,php有函数可以直接输出随机数,不过也没有取写,我最近在网上找到一个网站是生成随机密码的。保存这里留作以后使用。http://www.sexauth.com/

  • 关闭wordpress的自动草稿

    网上目前能找到两种方法:

    1、找到wp-admin/includes/post.php里边的get_default_post_to_edit这个函数,

    $post = get_post( wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) ) );

    把这一句修改成如下:

    $post_auto_draft = $wpdb->get_row( “SELECT * FROM $wpdb->posts WHERE post_type = ‘$post_type’ AND post_status = ‘auto-draft’ LIMIT 1” );
    if ( $post_auto_draft ) {
    $post = $post_auto_draft;
    } else {
    $post = get_post( wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) ) );
    }
    意思就是: 如果有自动保存的auto-draft就使用以前的auto-draft的ID来写文章,如果没有就插入一条auto-draft, 最后,数据库中总有一条auto-draft… 虽然数据库会多一条数据,但ID还是可以保持连续.

    2、找到wp-admin\includes\post.php文件,在if ( $create_in_db ) {前面加上这句代码就可以了:

    $create_in_db = false;

  • 让网站及时更新快照的四点方法

      1.对于一个网站来说,外部链接是非常重要的一个手法之一,所以我们各位站长要养成一个良好的习惯,要多多坚持每天都能发布3-5个有效的外部链接,久而久之下来你的网站外部链接也是比较庞大的数字了。

       2.很多新手朋友都忽略了一个严重的问题,那么就是在建站初期空间选择的问题,有很多空间IP是被搜索引擎惩罚过的,而且还有空间里面的一些网站也会带有一些惩罚的站点,所以在对于空间选择的同时也要查一下你所购买的空间中间有一些什么样的网站,然后在做下调查,是否里面有一些搜索引擎不喜欢的站点在里面,这样才能保证万无一失,很多朋友买了空间就开始做站,SEO也做的很好,内容也很好,但是就是搜索引擎排名上不来,其实绝大部分都是空间在作怪,所以各位站长在选择空间之前应该仔细调查一番,以免被连带惩罚就得不偿失了。

       3.拒绝黑链的诱惑与迷惑,现在有很多人都在贩卖一些所谓的PR高的链接,而且价格都是比较便宜的,所以在很多新手阶段的站长不懂这方面的知识,很多跟风去购买这些链接,以为会有很好的效果,但是到头来一点效果没有,而且还冒着被搜索引擎惩罚的危险,因为搜索引擎查处黑链是非常严重的,如果被查到有黑链的话,那么你的网站可以说是已经被搜索引擎判了死刑,所以劝诫各位站长不要以身冒险。

       4.“外链为皇,内容为王”我相信这句话对于站长朋友们在熟悉不过了,既然我们把外链给做好了,我们就也要跟着把网站的内容给做好,所谓双管其下就是这个意思了,内容的话我们一定要自己的原创文章,因为搜索引擎都是非常喜欢有内涵和有原创文章的网站,有很多站长喜欢粘贴复制,或者是采集一些内容,像这样的站点搜索引擎当时会收录不少页面,但是随着时间的推移,收录会慢慢减少,然后到最后面的K站,所以我还是建议大家做好原创内容,这样用户体验也是非常高的。

  • 小内存VPS优化建议

    - 稳定的 VPS 服务器

    所有的上层内容都依托于稳定的硬件支持,所以如果你购买的 VPS 主机线路巨慢、三天两头挂掉、或者有时 VPS 母机 IO 负载超高,那么,就算再怎么优化也没有任何用处,你整天干的事情就是发 Ticket 找客服解决问题。所以,选购一台稳定快速的 VPS 主机这是最基础的要求。

    - 轻量级 Web Server

    Apache 已经变得越来越臃肿了,内存开销非常大,所以个人建议用轻量级的 Nginx 服务器,而对于 WordPress 来说 nginx 已经完全够用了。下面代码里是适用于 WordPress 3 的 nginx rewirte 规则,包括 Permalinks rewrite 及 WP-super-cache rewrite 规则。

    #WP Permalinks rewrite
    rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
    if (!-e $request_filename) {
    rewrite ^.+?(/wp-.*) $1 last;
    rewrite ^.+?(/.*\.php)$ $1 last;
    rewrite ^ /index.php last;
    }
    #WP-super-cache rewrite
    set $wp_super_cache_file ”;
    set $wp_super_cache_uri $request_uri;
    if ( $request_method = POST )
    {
    set $wp_super_cache_uri ”;
    }
    if ( $query_string )
    {
    set $wp_super_cache_uri ”;
    }
    if ( $http_cookie ~* “comment_author_|wordpress|wp-postpass_” )
    {
    set $wp_super_cache_uri ”;
    }
    if ( $wp_super_cache_uri ~ ^(.+)$ )
    {
    set $wp_super_cache_file /wp-content/cache/supercache/$http_host/$1index.html;
    }
    if ( -f $document_root$wp_super_cache_file )
    {
    rewrite ^(.*)$ $wp_super_cache_file break;
    }
    if (-f $request_filename)
    {
    expires 30d;
    break;
    }
    if (!-e $request_filename)
    {
    rewrite ^(.+)$ /index.php?q=$1 last;
    }
    而 PHP 方面则建议用 PHP-FPM , PHP-FPM 已经包含在 PHP 5.3.3 中,对于小内存 VPS 用户建议用静态进程方式,也就是固定几个进程,同时建议少开几个进程,比如 4-6 个左右。

    Ubuntu 上可以用以下命令直接安装 nginx , php-fpm , mysql 环境

    sudo apt-get install nginx php5 php5-dev php5-fpm php5-mysql mysql-server make
    - 充分利用多核

    Nginx 在 Linux 上有一个 worker_cpu_affinity 参数,可以为每个工作进程绑定到不同的 CPU ,所以如果你的 VPS 具有多核的话,那么可以充分利用各 CPU 。比如如果有 4 个 CPU,那么可以进行如下配置:

    worker_processes 4;
    worker_cpu_affinity 0001 0010 0100 1000;
    最后你可以查看一下 CPU 状态,测试方法是输入 top 命令并按 1 。

    - MySQL 优化

    关掉InnoDB:如果 VPS 只是用来跑 Worpdress 的话,用 MyISAM 存储引擎就足够了。你只需在my.cnf加入一行 skip-innodb 就可以把 InnoDB 存储引擎给关掉了。这样也可以省下一定数量的内存。

    - 缓存,再缓存

    1、启用 PHP 缓存加速模块 eAccelerator : 大家都知道, PHP 是动态脚本语言,每次访问都会重新编译执行,而 eAccelerator 则可以缓存编译过的部分 PHP 文件,从而起到提高 PHP 脚本性能及降低系统负载的效果。但需要注意的是,在 nginx + PHP-FPM 环境下, eAccelerator 无法进行内存共享,也就是说 PHP-FPM 的每个进程除了本身所需要的内存开销外,还会加上 eaccelerator.shm_size 参数中设定的值,所以我们在设置时尽量减小 eaccelerator.shm_size 的值,比如设置为 8 MB ,这样最多可以缓存 50 多个 php 文件,虽然少了点,但对于 WordPress 来说基本足够了,这也算是一种节约资源及增加性能的折中方案。另外,启用 eaccelerator 后对于访问速度确实有显著提高。

    2、WordPress 页面缓存:建议用 Wp-super-cache 插件,这个插件的 nginx rewrite 规则之前已经有提到过。Wp-super-cache 可以起到网页静态化缓存的效果,可以进一步除低系统负载。

    3、数据库查询缓存 : 为了进一步减少数据库查询次数,就需要用此类插件,这类插件很多,我在用的是 DB Cache Reloaded 。

    - WordPress 模版及插件

    减少不必要插件以及用简洁的模版,不要放置大量的图片,因为一旦图片一多就会产生更多的 http 连接请求数,导致页载载入速度变慢,同时也消耗更多的带宽,毕竟带宽也是 VPS 的重要资源之一。

    水平有限,如有错误,敬请指正。如果你有更好的优化方案,也请在留言中分享,谢谢!

    # 最后介绍一些在线测试及优化工具:

    Just-Ping : 可以同时获取世界各地几十个位置 ping 你主机的值,从而可以判断 VPS 主机的线路质量。

    Pingdom : 全页面载入测试工具,可测试访问某网页共发起了多少请求及每个请求的耗时,从而可以判断哪些网页元素比较影响载入速度,对进一步优化提供帮助。

    测速宝:整体页面载入及访问速度测试工具,可以让国内各地的网友帮你测试。

  • 22个HTML5的初级技巧

    1. 新的Doctype声明

    XHTML的声明太长了,我相信很少会有前端开发人员能手写出这个Doctype声明。

    <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
    “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
     

     
    HTML5的Doctype声明很短,看到这个声明相信你马上就能记住,不用浪费脑细胞去记那长的有点变态的XHTML的Doctype声明了。

    <!DOCTYPE html>
     
    HTML5的简短的DOCTYPE声明是让Firefox、Chrome等现代浏览器和IE6/7/8等浏览器都进入(准)标准模式,你可能会奇怪IE6/7居然也可以支持HTML5 Doctype,事实上,IE是只要doctype符合 这种格式,都会进入标准模式。

    2. <figure>标签

    看看下面一段简单的代码:

    <img alt=”About image” src=”path/to/image”>
    <h6>image of Mars.</h6>

     
    遗憾的是,这里的h6标签和img标签好像没有什么关系,语义不够明确。HTML5意识到了这一点,于是就采用了<figure>标签。当<figure>结合<figcaption>标签的使用,可以让h6标签和img标签组合起来,代码就更具语义化了。

    <figure>
    <img alt=”about image” src=”path/to/image”>
    <figcaption>
    <h6>This is an image of something interesting. </h6>
    </figcaption>
    </figure>
     
    3. 重新定义<small>

    不久前,我使用了<small>标签来创建与logo相关的副标题。但是在HTML5中重新定义了<small>标签,使之更能表现语义化,在<small>的字号都会变小,想想如果这个标签用于网站的底部的版权信息还是个不错的做法。

    4. 去掉了Javascript和CSS标签的type属性

    通常你会在<link>和<script>加上type属性:

    <link rel=”stylesheet” type=text/css href=”path/to/stylesheet.css”>
     <script type=”text/javascript” src=”path/to/script.js”></script>
     
    在HTML5中,不再需要type属性了,因为这显得有点多余,去掉之后可以让代码更为简洁。

    <link href=”path/to/stylesheet.css”>
     <script src=”path/to/script.js”></script>
     
    5. 是否使用双引号

    这有点让人纠结,HTML5并不是XTHML,你可以省去标签中的双引号。相信大多数同志也包括我都习惯了加上双引号,因为这让代码看起来会更标准。不过,这可以根据你的个人喜好来确定是到底要不要双引号。

    <h6 id=”someid”> start the reactor. </h6>
      (更多…)

  • SEO常见问题解答

    1、帮我看看我的站点 XXX.XXX.com SEO 得怎么样?

    简单的 SEO 评估,我们主要从这几个方面:

       1. 网站导航和链接是否采用 Html 方式实现。
       2. 是否实现 URL 静态化。
       3. 关键词优化是否到位,包括标题的书写、关键词的设置、关键词密度控制等。
       4. 网站结构是否合理,是否有简单的 SEO技巧。

    2、搜索引擎一般多长时间更新一次,SEO 多长时间有效果?

    搜索引擎基本每天都更新网页数据库,隔两三天都会对每个关键词进行一次排名。一般情况下,对于具体的某个关键词,其搜索结果不会突然发现巨大的变动。我们很少看到某关键词的搜索结果前10位突然都换成其他的了,除非搜索引擎进行算法修改。但对于具体某一个网站,如果受惩罚或降权,可能一夜之间排名发生巨大变化。SEO 的效果,我们一般是说3-6个月,但也根据具体情况而变。

    3、域名对 SEO 影响大吗?

    我们认为学校(.edu)和政府部门(.gov)的网站以及其所对应的域名会有比较高的权重。其他的域名后缀(.com/.cn/.org/.net/.cc 等)在站点刚上线一段时间内或许有点差别,但对于成熟的站点,这方面的影响不存在。域名中包含关键词,对排名有帮助,如:www.seowhy.com 中的 SEO。

    4、百度(Google)为什么不收录我的站点?

    一般情况,内容不违规的站点是都会被收录的。不收录往往是站点本身的问题,比如全站采集、SEO作弊等。如果你的站点不被收录,可以通过日志查找原因。从这里http://www.seowhy.com/1_28_zh.html 了解日志中 htpp 状态码的意义。

     5、你觉得 SEO 最重要的是什么?

    搜索引擎的发展应该更偏向于对内容相关性、专业性的考核和判断。所以,我的观点是,SEO 就是做关键词分析、关键词定位、网站内容编辑和部署。

    6、有什么最快提高排名的办法吗?

    采用作弊的方式可以一个时间内快速提高排名。但我建议不要作弊,因为:

       1. 作弊导致被封掉的可能性非常大,这样成本很大。
       2. 作弊导致整个 SEO 行业恶性发展,用户将因为搜索体验变差而对 SEO 行业产生反感。

    7、为什么突然收录变少了?

    如果是突然这样子,一般情况下,过几天会恢复。但如果你的站点是全采集的,那可能是搜索引擎删除重复性内容。

    8、加入百度和 Google网站联盟,有帮助吗?

    有一些帮助,特别是小站、新站。但我并不认为加入 Google 联盟,对网站在百度的收录和排名有负面影响。

    9、我有多个域名,怎么做最符合 SEO?

    把其他域名都转发到主域名。很多人把不同的域名都解析到同一个网站,这样导致的结果是其他的域名没有对主域名起到任何作用,反而可能导致负面影响,如:让搜索引擎分不清到底哪一个是主域名。

    10、你觉得 SEO 前景如何?

    SEO 是未来网络营销最重要的部分,我非常看好这个行业的前景。目前情况下,大型网站如B2B行业网站、B2C电子商务网站的 SEO 需求比较旺盛。相对于企业网站,大型网站对 SEO 的投资回报率更高。推荐阅读:大型行业网站为什么一定要SEO?

    11、学习 SEO 应该掌握哪些技术?新手怎么开始?

    简单的代码可以看懂基本就可以做 SEO。一般我们建议新手采用开源的网站程序,自己做几个小站,学会基本的 SEO 操作方式如:关键词定位、关键词分析、标签书写等等。三个月下来观察自己站点在搜索引擎的表现,总结经验发现问题,基本可以对 SEO 把握五分。

  • HTML调用rss

    <html>
    <head>
          <title>javascript读取RSS数据</title>
    <META content=”text/html; charset=utf-8″ http-equiv=Content-Type />

    </head>
    <body leftmargin=”0″ topmargin=”0″>
    <font><h3 align=”center”>javascript读取RSS数据</h3></font>
    <br>
    <table width=”90%” align=”center” border=”0″ cellpadding=0 cellspacing=0>
    <tr>
       <td bgcolor=White><b>新闻中心</b><font size=”-1″>(摘自新浪网)</font><hr></td>
    </tr>
    <tr>
       <td bgcolor=White>
        <div id=”container” >News Loading…</div>
       </td>
    </tr>
    </table>
    <script language=”JavaScript1.2″>
    //Container for ticker. Modify its STYLE attribute to customize style:
    var tickercontainer=”
    var xmlsource=”http://rss.sina.com.cn/news/marquee/ddt.xml”;
    var root;
    var title;
    var link;
    var items;
    var item;
    var images;
    var image;
    var description;
    if (window.ActiveXObject)
    {
    //document.write(“Microsoft.XMLDOM”);
    var xmlDoc = new ActiveXObject(“Microsoft.XMLDOM”);
    }
    else if (document.implementation && document.implementation.createDocument)
    {
    //document.write(“document.implementation.createDocument”);
    var xmlDoc= document.implementation.createDocument(“”,”doc”,null);
    }
    if (typeof xmlDoc!=”undefined”)
    {
    //document.write(tickercontainer)
    xmlDoc.load(xmlsource)
    }
    function fetchxml()
    {
    if (xmlDoc.readyState==4)
       output()
    else
       setTimeout(“fetchxml()”,10)
    }
    function output()
    {
    var temp=””;
    root = xmlDoc.getElementsByTagName(“channel”)[0];
    title =root.getElementsByTagName(“title”)[0];
    //temp = title.firstChild.nodeValue +”<br>”;
    items=root.getElementsByTagName(“item”);
    for(i=0;i<=items.length-1;i++)
    {
       item=items[i];
       title=item.getElementsByTagName(“title”)[0];
       link=item.getElementsByTagName(“link”)[0];
       description=item.getElementsByTagName(“description”)[0];
       temp = temp + “<font size=-1><a href=” + link.firstChild.nodeValue+ ” target=’_bank’>” +

    title.firstChild.nodeValue +”</a></font><br><br>”;
       //temp = temp +”<font size=-1>” + description.firstChild.nodeValue + “</font><br><br>”;
       document.getElementById(“container”).innerHTML = temp;
    }
    }
    if (window.ActiveXObject)
    fetchxml()
    else if (typeof xmlDoc!=”undefined”)
    xmlDoc.onload=output
    </script>
    </body>
    </html>

  • 百度给站长的网站安全建议

    1.修改开源程序关键文件的默认文件名,作弊者通常通过程序自动扫描某些特定的文件是否存在来判断是否使用了某套程序

    2.修改默认管理员用户名,提高管理后台的密码强度,使用字母、数字以及特殊符号多种组合的密码

    2.关注所使用程序的官方网站,及时下载补丁,修补安全漏洞

    3.关闭或者限制不必要的上传功能

    4.检查网站程序是否有sql注入漏洞

    5.定期检查服务器日志,检查是否有可疑的针对非前台页面的访问

    6.经常检查网站文件是否有不正常的修改或者增加

    7.定期备份网站,如果网站被黑,能迅速的用备份恢复到安全状态,避免更大的损失

  • PHP探针

    网上有很多探针,不过各种版本都很老了,而且目前很少人在更新这个东西,最近测试服务器环境网上下了一些探针,各有优缺点。于是找了个时间把各个版本的探针功能揉在了一起,去掉了广告,清爽了许多。

    这个探针是自己用来的,不过还是习惯性的分享出来,对于原版的探针不好意思去掉了链接和广告,服务器性能去掉了过时很久的信息,如果有机会,以后会添加上一些最新服务器的测试信息的。

    PHP探针下载地址:php探针

  • SEO预启动检查清单

    Critical关键检查

    1) 定位 – 该网页针对特定的关键字词组?

    2) 内容 – 该网页是否包含独特, 能被抓取的内容,这些内容瞄准适用的页面?

    3) 标题标签(title) – 该网页是否包含一个独特的标题标签(70个字符以内), 是否在标签最前面包含目标词组?

    4) URL – URL结构语义清晰,精短,针对合适的词组?

    5) Meta描述 – 该网页是否包含一个独特的Meta 描述(155个字符以内)?

    6) Rel Canonical – 该网页是否利用Rel Canonical(应该有用而且Rel Canonical应该只指向一个权威版本)

    7) Alt text- 是否页面上的所有图像含有ALT描述? (其中至少有一个应针对关键字)

    8) 内部链接- 内部链接是否指向含有关键字,关键短语的页面。

    Worth Double Checking (值得仔细检查的地方)

    1)Meta robots – 该网页是否包含或需要meta robots?

    2)robots.txt – 该网页是否被robots.txt拦截?

    3)Meta Keywords – 该网页是否包含Meta关键字? (应该没有)

    4)H1- 关键字是否使用了H1格式?

    5)Cloaking(伪装) – 页面是否有cloaking(伪装)? (应该没有)

    6)大写字体 – 页面URL是否使用大写? (应该重定向到全部小写)

    7)拖尾斜线(Trailing Slash ‘/’) – 是否页面URL有使用反斜线符号(\)而没有拖尾斜线(/)? (应该重定向到无反斜线符号(\)版本)

    8)所有图像是否都使用最佳文件格式和对网络优化? (文件应尽可能小)

    9)无编辑(关系)价值的链接是否包括nofollow? (应该有)

    这个清单还可以加些内容。大家不妨想想还可以加些什么(只与页面相关)。

  • 计算机容量单位

    计算机容量分为Bit.Byte.KB.MB.GB.TB.PB.EB.ZB.YB。

    既然有YB这个名词出现了,应该是说有人至少具有或共有1YB的容量吧。

    世界上有没有人使用1YB的硬盘,还是那只是空虚的名词。

    备注:计算机容量分配一览表
    Bit < Byte < KB (Kilo-byte) < MB (Mega-byte) < GB (Giga-byte) < TB (Tera-byte) < PB (Peta-byte) < EB (Exa-byte) < ZB (Zeta-byte) < YB (Yota-byte)

    1Byte = 8 Bit
    1 KB = 1,024 Bytes
    1 MB = 1,024 KB = 1,048,576 Bytes
    1 GB = 1,024 MB = 1,048,576 KB = 1,073,741,824 Bytes
    1 TB = 1,024 GB = 1,048,576 MB = 1,073,741,824 KB = 1,099,511,627,776 Bytes
    1 PB = 1,024 TB = 1,048,576 GB = … = 1,125,899,906,842,624 Bytes
    1 EB = 1,024 PB = 1,048,576 TB = … = 1,152,921,504,606,846,976 Bytes
    1 ZB = 1,024 EB = … = 1,180,591,620,717,411,303,424 Bytes
    1 YB = 1,024 ZB = … = 1,208,925,819,614,629,174,706,176 Bytes

  • linux下MySQL配置文件讲解

    配置MySQL服务器是一个丰富而复杂的工作。在本文中,我只能肤浅的说一下各种选项。可以使用的MySQL配置文件共有5个。

    ·/etc/my.cnf是默认的MySQL配置文件。应该对这个文件配置修改。它是为学习目的而设计的。

    ·my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。

    ·my-medium.cnf是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。

    ·my-large.cnf是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。

    ·my-huge.cnf是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。

    这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。

    我将逐个的说明这些配置文件。如果用户决定使用my-*.cnf文件之一,将首先需要把这个文件复制到/etc/my.cnf文件上。

    由于这些原因,用户应该仔细观察数据库系统的性能。如果发现问题,可能需要增加更多的RAM,或者把数据库迁移到一个含有附加资源(比如多个CPU)的系统上。

    提示:数据库变得非常大。把一个SQL数据库目录配置在一个专用分区上可能更有道理。虽然一个不断增长的数据库可能会占满整个分区,但它至少不会吞掉RHEL运行所必需的磁盘空间。

    /etc/my.cnf文件

    默认是/etc/my.cnf文件。它包含6条命令,并且这6条命令被组织在3个配置段中。这些配置段与Samba配置文件中的配置段相似,并且含有功能组名称和相关的命令。本文将逐行的说明这个文件的默认版本。如果用户进行了任何修改,将需要确保MySQL启动脚本(即/etc/rc.d /init.d/mysqld)中的命令一致。

    [mysqld]

    在这个配置段之内,将会看到与MySQL守护进程相关的命令。

    datadir=/var/lib/mysql

    MySQL服务器把数据库存储在由datadir变量所定义的目录中。

    Socket=/var/lib/mysql/mysql.sock

    MySQL套接字把数据库程序局部的或通过网络连接到MySQL客户。

    提示:MySQL被配置成使用InnoDB存储器引擎。如果用户在自己的系统上还没有一个InnoDB数据库,将需要给[mysqld]配置段添加skip-innodb语句。

    [mysql.server]

    在这个配置段之内,将会看到MySQL服务器守护进程有关的命令。这个配置段的较早期版本被命名为[mysql_server]。如果使用 MySQL4.X或MySQL4.X以上版本,将必须把这个配置段标题改成[mysql_server]。当启动MySQL服务时,它使用这个配置段中的选项。

    user=mysql

    与MySQL服务相关联的标准用户名是mysql。它应该是/etc/passwd文件的一部分;如果在这个文件中没有发现它,用户可能还没有安装Red Hat Enterprise Linux mysql-server RPM程序包。

    basedir=/var/lib

    这表示MySQL数据库的顶级目录。它充当MySQL系统上的一个根目录;这个数据库中的其它目录都是相对于这个目录。

    [safe_mysqld]

    这个配置段包含MySQL启动脚本所引用的命令。如果使用MySQL4.X或4.X以上版本,必须把这个配置段改成[mysqld_safe]。

    err-log=/var/log/mysqld.log

    这是MySQL所关联的错误被发送到的这个文件。如果使用MySQL4.X或4.X以上版本,必须使用log-error指令替换这条命令。

    pid-file=/var/run/mysqld/mysqld.pid

    最后,pid-file指令定义MySQL服务器在运作期间的进程标识符(PID)。如果MySQL服务器当前没有运行,这个文件应该不存在。

    提示:用户可以配置与用户特定相关的MySQL配置文件;为此,只需给指定用户主目录中的.my.cnf隐含文件添加所选的配置命令即可。

    my-samll-cnf

    在本文中,将说明my-small-cnf配置文本中的所有命令。当回顾其它MySQL样本配置文件时,将参考本文所解释的各条命令和指令的含义。先从下面这个配置段开始分析该文件中的有效命令和指令:

    [client]

    这个配置把指令传递给与MySQL服务器相关的客户。

    port=3306

    MySQL所相关的标准TCP/IP端口是3306。如果需要修改这个端口号(可以增强安全),必须确保用于MySQL客户与服务器的所有相应配置文件中均修改这个号。

    socket=/var/lib/mysql/mysql.sock

    正像默认的/etc/my.cnf文件中所定义的那样,这是控制MySQL客户与服务器间通信的标准套接字文件。

    [mysqld]

    当启动MySQL服务器时,它由[mysqld]配置段中所定义的命令来控制。

    port=3306

    socket=/var/lib/mysql/mysql.sock

    当然,与同一个MySQL数据库相关的客户与服务器需要使用相同的TCP/IP端口和套接字。

    skip-locking

    多个客户可能会访问同一个数据库,因此这防止外部客户锁定MySQL服务器。这个skip-locking命令是MySQL4.X或4.X以上版本中的skip-external-locking命令。

    一般来说,如果正在使用MySQL4.X或4.X上以版本,这个set-variable指令没有必要带有这个列表中的这些命令。

    set-variable=key_buffer=16k

    这个缓冲区确实很小;如果一个数据库在一个文本文件中包含不止几百行数据,它将会超载这个缓冲区的容量。这个数据库可能不会超载一个文本文件地址簿的容量。如果这不只是一个供个人使用的数据库,这个限额很快就会被达到。假使那样的话,可能需要考虑与其它配置文件之一相关的那些限额。

    set-variable=max_allowed_packet=1M

    当然,与一个数据库相关的信息会增加到超出实际数据。在默认的情况下,如果该信息在一个服务器上超过1MB以上,MySQL将会产生一条错误信息。

    set-variable=thread_stack=64k

    这条指令限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用。

    set-variable=table_cache=4

    用户可以限定一个数据库中打开表的数量;越小的限额(默认值是64)适合越小规模的数据库。

    set-variable=sort_buffer=64k

    在处理一个数据库时,用户可能需要内存中附加的缓冲区空间。

    set-variable=net_buffer_length=2k

    正如net_buffer_length指令所定义的,MySQL服务器还给传入的请求保留了空间。

    server-id=1

    一般来说,如果有一个MySQL主服务器,应该把它的server-id设置成1;应该把MySQL从属服务器的server-id设置成2;

    [mysqldump]

    用户可以在不同类型的SQL数据库之间传输数据,这由[mysqldump]配置段中的命令来控制。

    quick

    quick选项支持较大数据库的转储。

    set-variable=max_allowed_packet=16M

    当然,用来传输数据库表到其它数据库的max_allowed_packet大于客户与服务器之间的简单通信所使用的信息包。

    [mysql]

    no-auto-rehash

    这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。

    [isamchk]

    [myisamchk]

    像SQL这样的关系数据库用所谓的Indexed Sequential Access Method(索引顺序存取方法,简称ISAM)来处理。这两个配置段中的命令是相同的;这些命令与检查并修复数据库表的同名命令有关。

    set-variable=key_buffer=8M

    set-variable=sort_buffer=8M

    在前面谈及MySQL服务器时,用户己经见过这些变量。它们在这里都比较大,以便支持数据库的较快速检查与修复。

    [mysqlhotcopy]

    interactive-timeout

    正如[mysqlhotcopy]配置段所指定的,在一个数据库复制操作期间,连接会挂起。在默认情况下,interactive-timeout变量把一个数据传输的最大时间量设置为28800秒(8个小时)。

    my-medium.cnf文件

    与中等数据库相关的MySQL配置文件含有和my-small-cnf配置文件中一样的有效配置段。在[mysqld]配置段中,下面这些命令支持较大规模的服务器数据库:

    set-variable=key_buffer=16M

    set-variable=table_cache=64

    set-variable=sort_buffer=512K

    set-variable=net_buffer_length=8K

    log-bin

    一般来说,这个配置段中的命令支持服务器上的较大高速缓存与缓冲区长度。应该看到两条新命令。

    set-variable=myisam_sort_buffer_size=8M

    log-bin

    myisam_sort_buffer_size命令允许MySQL索引数据库,第二条命令支持二进制日志记录方法。

    [isamchk]

    [myisamchk]

    当然,这两个配置段中的缓冲区比用于数据库传输的缓冲区大,这个文件包含下面这些命令;它们发送消息到服务器和接收来自服务器的消息。

    set-variable=read_buffer=2M

    set-variable=write_buffer=2M

    my-large.cnf文件

    与较大型数据库相关的MySQL配置文件含有和my-samll-cnf配置文件中一样的有效配置段。在本文中,将比较my-large-cnf与my-medium-cnf样本文件中的各条命令。在[mysqld]配置段中,下面这些命令支持较大型的服务器数据库:

    set-variable=key_buffer=256M

    set-variable=table_cache=256

    set-variable=sort_buffer=1M

    set-variable=myisam_sort_buffer_size=64M

    set-variable=net_buffer_length=8K

    这个配置段中有3条附加的命令。record_buffer命令保存对一个数据库中不同表的扫描结果。thread_cache命令对多请求有用;空闲线程被高速缓存起来,进而允许新的搜索操作采用己有的线程。只要这防止搜索操作启动新的服务器进程,这就能减轻系统上的负荷。

    set-variable=record_buffer=1M

    set-variable=thread_cache=8

    set-variable=thread_concurrency=8

    thread_concurrency变量限定同时运行的线程数量。my-large.cnf样本文件建议用户应该把这个数量限定于本计算机上CPU数量的两倍;这个特定设置相当于4个CPU。

    my-huge.cnf文件

    my-huge.cnf文件含有和my-large.cnf配置文件中一样的命令。当然,分配给大多数指令的值比较大并适合较大型的数据库。

  • 京东商城团购

    京东商城团购频道(tuan.360buy.com)今日上线测试,目前实行1日3团模式,所售产品全部为北京地区商铺提供的服务类产品,包括Spa、餐饮及桌游三个品类。

    京东商城团购频道

    京东商城CEO刘强东此前透露,该网站团购业务将于20日上线。据了解,京东团购业务由刘强东亲自督工,“所有细节敲定都需要他(刘强东)签字”。

    据内部人士透露,京东团购业务货品主要包括第三方服务及实体产品两部分。该人士介绍20号上线的为第一阶段产品,以第三方服务为主,包括spa休闲、餐饮娱乐等生活优惠产品;而实体产品或将于2011年1月才会推出,由京东方面自行供货。

    实体产品呵呵 ,期待一下 到时候看看能有什么优惠,不过现在对京东不报太大的希望了。