• 2015-03-10

    使用 SSDB 来实现操作频率限制

    Views: 65729 | 5 Comments

    在 Web 开发中, 经常需要实现操作频率限制的功能, 以避免单个用户过度地消耗某项资源, 或者消除安全隐患. 例如, 限制某 IP 刷新页面的频率, 限制一个用户投票只能投一次, 等等.

    要实现操作频率限制, 就要用到存储. 使用 SSDB 来存储, 可以支持海量用户的操作频率限制, 而且代码非常简洁高效.
    Continue reading »

    Posted by ideawu at 2015-03-10 17:49:02
  • 2014-11-04

    iphp框架常用函数

    Views: 15309 | No Comments

    _throw($msg, $code)

    抛出异常.

    _redirect($url)

    HTTP 301 跳转到指定的 URL, 该函数除了不能放在 try 代码块中外, 可以放在任何地方.

    _url($url, mixed $param=array())

    所有使用 iphp 框架的应用, 都应该使用 `_url()` 或者 `_action()` 函数来生成链接(URL), 而不是手动拼接字符串.

    Continue reading »

    Posted by ideawu at 2014-11-04 08:32:54 Tags:
  • 2014-08-19

    开源的 PHP 轻量级框架 iphp

    Views: 28589 | 16 Comments

    对于 PHP Web 开发来说, 框架很重要, 但其实框架又不重要. 说重要, 是因为确实需要一个框架来建立一套规范, 对文件组织, 类和方法的编写, 数据库操作等进行引导. 说不重要, 是因为对于 PHP 开发, 没有哪一个框架最必须的, 不是框架不给力, 而是 PHP 的世界从来就没有呼唤这样的框架的出现.

    在 PHP 框架既重要又不重要的事实面前, 所有的 PHP 框架必须是轻量级的, 如果一个 PHP 框架非常重, 那么它肯定没有前途, 不是流行不起来, 就是流行很短暂便沉寂.

    Continue reading »

    Posted by ideawu at 2014-08-19 07:52:07 Tags:
  • 2014-07-29

    如何让 PHP json_encode 函数不转义中文?

    Views: 16458 | No Comments

    如果你调用 PHP 自带的 json_encode() 函数, 碰到中文时, 中文会被转义掉. 例如:

    echo json_encode(array('你好'));
    // 输出: ["\u4f60\u597d"]
    

    这非常恼人, 像是一堆乱码, JSON 标准从来没有说要把非 ASCII 字符转义, 标准说的是"Any UNICODE character".

    如何禁用掉这种转义呢? 答案是, PHP 自带的 json_encode() 不能禁用这个特性(在 5.4.0 版本之前, 之后的版本你可以加 JSON_UNESCAPED_UNICODE 选项), 你只能换一个新的 JSON 库. 为了简单, 我简单写了几十行代码, 实现一个 json_encode().

    Continue reading »

    Posted by ideawu at 2014-07-29 12:09:58
  • 2013-11-11

    初学者的 Linux 安装 Nginx PHP fpm 配置教程

    Views: 40937 | No Comments

    网上的很多 Linux 操作系统下安装 Nginx + PHP 的教程都很老, 而且各种依赖, 对于初学者来说比较容易混淆, 所以, 我重新写了此篇博客, 用于介绍最简单的 Linux 下安装 Nginx + PHP 的方法.

    此文会经常更新, 保持与时俱进. 如果你不是在 ideawu.net 网站看到本文, 请访问 ideawu.net, 阅读最新的版本.

    -------------------2016-12-22 更新----------------------
    现在, 我建议你使用 CentOS 6.x, 然后用 yum 来安装各个软件.
    --------------------------------------------------------
    

    Continue reading »

    Posted by ideawu at 2013-11-11 23:25:46 Tags: ,
  • 2012-12-28

    在PHP代码中使用LevelDB

    Views: 35103 | 3 Comments

    众所周知, LevelDB 只是一个 C/C++ 的编程语言库, 所以, PHP是无法直接使用 LevelDB 的. 如果 PHP 项目想要使用 LevelDB, 一种方法是用 C 语言开发, 把 LevelDB 封装成 PHP 的一个模块, 另一种方法是将 LevelDB 封装成一个网络服务器.

    开发 PHP 的 LevelDB 模块的方式适用性不是很高, 因为这种模式限定了必须是单机存储而且必须和 PHP 处在同一台机器. 在代码和数据分离的原则下, 将 LevelDB 封装成一个网络服务是更佳的选择.

    SSDB 就是一个 LevelDB 的服务器(LevelDB Server), 以 LevelDB 作为存储引擎, 支持 PHP/Java/Python/C/C++ 等客户端. 下面是一个 PHP 连接 SSDB, 也即 PHP 使用 LevelDB 的例子:

    <?php
    require_once('SSDB.php');
    $ssdb = new SimpleSSDB('127.0.0.1', 8888);
    $resp = $ssdb->set('key', '123');
    $resp = $ssdb->get('key');
    echo $resp; // output: 123
    

    完整 API 见 SSDB 项目 Wiki.

    SSDB 已经在 IT 牛人博客聚合网站得到应用, 非常稳定. 而且, SSDB 支持在线备份功能, 可以通过网络备份数据, 不再担心数据丢失. SSDB 还支持主从同步复制(Replication), 可用于负载均衡.

    SSDB - LevelDB Server 下载地址: https://code.google.com/p/zdb/downloads/list

    Posted by ideawu at 2012-12-28 12:00:48 Tags: ,
|<<<123456789>>>| 2/10 Pages, 55 Results.