最新 | 最热门 | 最高评价

+0  Dependency Injection 和 Service Locator

Tag: Technical | PHP
老王 发于 2015年11月11日 17:16 | 点击: 745 | 展开摘要
如果说学院派的 Java 程序员骨子里都浸淫着学究范儿的话,那么游击队出身的 PHP 程序员则从头到脚洋溢着乡土气息。通常他们不太在意理论,一切以实现为先,虽然这样的做法在项目早期能获得不错的收益,但是随着项目的推进,复杂度的提升,缺乏理论基础的弊端终将显现。好在 PHP 社区没有裹足不前,比如说十几年前 Java 社区中流行的 IoC 概念,最近一两年终于被 PHP 社区所接纳。

说起 IoC,其实是 Inversion of Control 的缩写,翻译成中文叫控制反转

查看全文: http://www.udpwork.com/item/15971.html

+0  聊聊代码的割裂感

Tag: Technical | PHP
老王 发于 2015年11月05日 20:01 | 点击: 730 | 展开摘要
早些年,我特别喜欢下围棋,每天都会下几盘。那时候日本围棋不仅高手林立,而且风格迥异,比如:小林光一的地铁流,武宫正树的宇宙流等等,不过我最喜欢的棋手当属大竹英雄,他下棋时追求美感,如果棋形不漂亮,那么他宁可认输也绝不玷污棋盘。后来,我成为了一名程序员,每天都要写不少代码,可惜写了不少丑陋的代码,本文筛选了几个例子,希望大家看过之后都能写出更具美感的代码来。

在聊之前,我们不妨想想割裂到底是什么意思。其实所谓割裂,说白了就是指把原本应该在一起的东西分开了,比如两地分居的夫妻,

查看全文: http://www.udpwork.com/item/15972.html

+0  Unicode and UTF-8

Tag: Technical | PHP
老王 发于 2015年10月13日 21:12 | 点击: 728 | 展开摘要
绝大多数程序员都听说过 Unicode 和 UTF-8,但是清楚它们之间关系的人就不多了,关于这个问题,与其苍白的陈述它们的概念,不如举例子说明来得自然。

我前些天碰到一个需求:随机生成几个汉字。原本我便对编码之类的问题发怵,所以完全搞不清楚状况,无奈之下我便上网搜索了一个 PHP 版本的实现:

<?php

$zh = '';

for($i = 0; $i < 3; $i++) {
$zh .= '&#'. rand(19968, 4086

查看全文: http://www.udpwork.com/item/15974.html

+0  phpssdbadmin – SSDB 数据库图形界面管理工具升级

Tag: SSDB | iphp | phpssdbadmin
ideawu 发于 2015年08月06日 13:03 | 点击: 1835 | 展开摘要
SSDB 数据库图形界面管理工具 phpssdbadmin 发布了新版本 0.0.2, 请大家务必升级. 这个版本增加了管理后台登录时的图片验证码, 提高安全性.

phpssdbadmin 是 SSDB 数据库的 Web 管理工具, 思路来源于 phpmyadmin. phpssdbadmin 使用了简洁的 iphp 框架.

项目地址: https://github.com/ssdb/phpssdbadmin

Related posts:
SSDB 数据库的图形化界面管

查看全文: http://www.udpwork.com/item/14466.html

+0  PHP 解码 C 字符串

Tag: C/C++语言编程 | PHP
ideawu 发于 2015年05月07日 12:51 | 点击: 1672 | 展开摘要
有时候, 需要将 C 语言字符串字面量编码的字符串转换成其在内存中实际的值, 如果用 Python, 是有内置的函数, 但 PHP 没有, 只能写一个.

C 语言字符串字面量编码, 就是类似:

\r\n\x90

它们在内存中肯定不是这样.

完整代码如下, 需要 PHP 5.4+.

function unescape_c_str($str){
$ret = '';
$len = strlen($str);
for($i=0; $i

查看全文: http://www.udpwork.com/item/14189.html

+0  监控Netstat数据

Tag: Technical | Linux | PHP
老王 发于 2015年04月09日 14:33 | 点击: 2044 | 展开摘要
我的日常工作有很大一部分比重是处理各种网络问题。很多时候,面对突发故障,完全搞不清楚缘由,此时,一个完善的监控系统能起到事半功倍的效果。

一个好消息是「netstat -s」里的各种计数器包含了很多有用的信息;一个坏消息是计数器记录的通常都是一些硕大无比的绝对值,不够直观。以前,我写过一篇的文章来介绍如何监控相关数据,但写得并不完善;最近,浏览文章时偶然发现一个工具,可以很方便的实时查询计数器相对值的变化情况,可惜不能方便的对接到监控系统里。既然现有的轮子都不太合适我的需求

查看全文: http://www.udpwork.com/item/14076.html

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

Tag: PHP | SSDB
ideawu 发于 2015年03月10日 17:49 | 点击: 1609 | 展开摘要
在 Web 开发中, 经常需要实现操作频率限制的功能, 以避免单个用户过度地消耗某项资源, 或者消除安全隐患. 例如, 限制某 IP 刷新页面的频率, 限制一个用户投票只能投一次, 等等.

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

// 操作次数限制函数: 限制 uid 在 period 秒内能操作 action 最多 max_count 次.
// 如果超过限制, 返回 false.
sta

查看全文: http://www.udpwork.com/item/13960.html

+0  Convert Excel file with hyperlinks to CSV

Tag: PHP | Technology
Haidong Ji 发于 2015年02月26日 01:38 | 点击: 1955 | 展开摘要
It seems the venerable file format CSV (Character/Comma-separated values) never goes out of style. According to CSV wikipedia page, IBM Fortran started supporting this format in 1967, before many of us were born. CSV has been with us, throu

查看全文: http://www.udpwork.com/item/13890.html

+0  PHP优化杂烩

Tag: Technical | PHP
老王 发于 2014年12月25日 19:06 | 点击: 1856 | 展开摘要
讲 PHP 优化的文章往往都是教大家如何编写高效的代码,本文打算从另一个角度来讨论问题,教大家如何配置高效的环境,如此同样能够达到优化的目的。

pool

一个让人沮丧的消息是绝大多数 PHP 程序员都忽视了池的价值。这里所说的池可不是指数据库连接池之类的东西,而是指进程池,PHP 允许同时启动多个池,每个池使用不同的配置,各个池之间尊重彼此的主权领土完整,互不干涉内政。

pool

有什么好处呢?默认情况下,PHP 只启用了一个池,所有请求均在这个池中执行。一旦某些请求

查看全文: http://www.udpwork.com/item/13673.html

+0  Poor Man PHP Profiler

Tag: Technical | AWK | PHP | Shell
老王 发于 2014年11月14日 18:50 | 点击: 1934 | 展开摘要
说起 Profiler,老派的 PHP 程序员会选 XDebug,新派的 PHP 程序员会选 Xhprof,不过我们公司的服务器上都没装,于是我写了这个「Poor Man PHP Profiler」。

既然不用 XDebug 和 Xhprof,我们就要自己找 Profiler 的数据源才行。好在 PHP 本身支持慢日志,而且里面包含了调用栈信息,还包含了文件路径和具体的行号:

Slow

理论上不用写什么工具,把这个日志从前到后看一遍就能发现系统哪里慢,但我们人穷志不短,

查看全文: http://www.udpwork.com/item/13518.html

+0  iphp框架常用函数

Tag: PHP | iphp
ideawu 发于 2014年11月04日 08:32 | 点击: 1865 | 展开摘要
_throw($msg, $code)

抛出异常.

_redirect($url)

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

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

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

若 `$url` 是相对路径且以 `/view|list` 结尾,

查看全文: http://www.udpwork.com/item/13478.html

+0  开源的 PHP 轻量级框架 iphp

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

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

查看全文: http://www.udpwork.com/item/13131.html
|<<<1234567>>>| 一共18页, 216条记录