phpize是什么?

今天在配置一台nginx的web服务器时,参考张宴(blog.s135.com)大师的《Nginx 0.8.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版)》
安装php(fastcgi模式)的时候,常常有这样一句命令:/usr/local/webserver/php/bin/phpize

一、phpize是干嘛的?

phpize是什么东西呢?php官方的说明:
http://php.net/manual/en/install.pecl.phpize.php

phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize,通过以下几步工作。

二、如何使用phpize?

当php编译完成后,php的bin目录下会有phpize这个脚本文件。在编译你要添加的扩展模块之前,执行以下phpize就可以了;

比如现在想在php中加入memcache扩展模块:我们要做的只是如下几步
————————————————————————
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure –with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
————————————————————————
注意./configure 后面可以指定的是php-config文件的路径

这样编译就完成了,还需要做的是在php.ini文件中加入extension值
extension = “memcache.so”

Tags: , , ,

Leave a Comment

查漏补缺:FastCGI

也许FastCGI早就不陌生,但是FastCGI到底是什么?我倒真没太理解,只知道用FastCGI就对了,快!

FastCGI的官网:http://www.fastcgi.com/

FastCGI is simple because it is actually CGI with only a few extensions. 很谦虚的说他只是CGI的一点点扩展而已;
一、FastCGI是什么?

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要 行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存 中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等等。

FastCGI的工作原理是:
1、Web Server 启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module);
2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。
3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。
4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 在正常的CGI模式中,php-cgi.exe在此便退出了。
在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。

Tags: ,

Leave a Comment

谈web2.0下的网络营销–Geekcook篇

Geekcook.com一个非常有创意的Tee网店。与其说网店,它更像是一个表达对互联网热爱的的方式。最早是从Twitter上看到了,看到推友 从@geekcooktweet买了件Tee。当时是感@geekcooktweet这个网名和自己的网名好像,点进去一看,就感觉到了他的独特性。立即买了件twitter tee 。当时Geekcook.com是用一个wordpress程序搭的小站,里面简单的展示了他有点商品。商品都非常个性化,很IT !!!

show一下我买的twitter Tee :

让我思考更多的是他的这种模式。单独的blog程序,摆脱了淘宝网的框框架架,第一眼给人以独特的感觉。而独立网店有更强的可制定性。更重要的是,他能结合更多的web 2.0工具进行网络营销。  Rss、Twitter、Tag。推广的时候以独立域名,独立页面的形式,这种对于追求个性、喜欢互联网的人来说是非常有吸引力的,特别是Geekcook.com销售的商品又是以 互联网 为主题的Tee 。

适合的商品(Tee)+适合的目标人群(IT人)+适合的营销手段(sns、twitter、blog) = 成功的营销(网络营销)

twitter为代表的围脖改变了信息传播的方式,使信息的传播更迅速,这给网络营销带来了新的思考。如何利用这些web

Tags: ,

Leave a Comment

不是iconv函数的bug

上一篇把题目写成《iconv函数的小bug》怪吓人的~~~华晨同学的回复使我感到自己的不求甚解.正所谓知错能改,善莫大焉。于是我重新查了一遍:php官方的说明:http://cn.php.net/manual/en/function.iconv.php
函数原型:string iconv ( string $in_charset , string $out_charset , string $str )
特别是第二个参数说明:
The output charset.

If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can’t be represented in the target charset, it can be approximated through one or several similarly looking characters. If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character and an E_NOTICE is generated.

意思是如果你在第二个参数后面加上//TRANSLIT ,这样的话,当遇到目标输出的编码不认识的字符的时候,能被一个或几个近似的字符代替;而如果在第二个参数后面加上//IGNORE的时候,当目标输出的编码不认识的时候则什么也不操作;什么都不加的时候则会报错~~~

手册里面有个非常生动的例子:

3b48dc7786fcd55d9833acfb1c2182f9000

输出结果是:

Original :

Tags: ,

Comments (1)

iconv函数的一个小bug

昨天在做ajax调用的时候,发现调用出来的文章内容有的缺少一些内容,搞了半天,原来是iconv函数在作怪~~~
网上说这是php的iconv函数的一个小bug:
原来 iconv( “UTF-8″, “gb2312″ , $string) 应该在第二个参数后面加个参数:
iconv( “UTF-8″, “gb2312//IGNORE” , $string)

ignore的意思是忽略转换时的错误,发现iconv在转换字符”—”到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

在此记录一下~~~

Tags: , ,

Comments (2)

[原]php分析抓取视频网站视频链接与截图

最近在开发视频收藏功能时候,需要根据视频网站如优酷、酷6、土豆网的一个视频链接,能自动获取该视频的真实链接和相对应视频的截图。类似与校内的分享视频的功能~~~~

下面以优酷为例:
假设我们给任意一个优酷视频网址:http://v.youku.com/v_show/id_XMTA0NTM2MzI4.html
要注意一点:优酷网上的视频地址较早些的是:http://v.youku.com/v_show/id_XNTM3MDg2ODA=.html
注意上面的一点点区别,最后有个“=”。
通过分析优酷视频网站的页面内容特点,利用php结合正则表达式,过滤获取我们想要的信息。具体参见下面功能函数。

3b48dc7786fcd55d9833acfb1c2182f9001

Tags: , , ,

Leave a Comment

解决jquery和其他ajax冲突

在做一个项目(对UC Home二次开发)的时候,发现加入jquery不起作用,究其原因,原来是它们的全局对象定义冲突了,特别是变量”$”,发现是jquery里的$符号和UC Home里自身的Ajax发生冲突了,使jquery失效,这种情况也会发生在jquery和其他ajax框架发生冲突。如jQuery与Prototype并存冲突等。

解决方法是重载$,使用jQuery.noConflict()就可以通过重载$函数,从而区分开跟其他js库的重叠部分

只要在js文件的开头加一句

var $j = jQuery.noConflict();

然后后面要使用jquery的时候改用$j来调用,就可以了

记得要在载入完各js库后才能用jQuery.noConflict()进行重载哦。

例:

var $j = jQuery.noConflict();

$j(document).ready(function(){

$j(”div”).hide();

});

Tags: , , ,

Leave a Comment

Segmentation fault in sprintf

最近在写C程序的时候常常遇到“Segmentation fault ”错误,号称“c 指针出现最多的错误”。而这次的错误可以肯定出现在使用sprintf函数时出现了问题。

编译成功通过,但运行时报“Segmentation fault ”错误。

查了一下sprintf函数原型说明:

sprintf() 格式化输出函数(图形)

功能: 函数sprintf()用来作格式化的输出。
用法:此函数调用方式为int sprintf(char *string,char *format,arg_list);
说明:函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。通常在绘图方式下输出数字时可调用sprintf()函数将所要输出的格式送到第一个参数,然后显示输出。

函数名: sprintf
功  能: 送格式化输出到字符串中
用  法: int sprintf(char *string, char *farmat [,argument,...]);

sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕
sprintf的第一个参数应该是目的字符串,如果不指定这个参数,执行过程中出现     ”该程序产生非法操作,即将被关闭….”的提示。
因为C语言在进行字符串操作时不检查字符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。即使碰巧,程序没有出错,也不要这么用,因为早晚会出错。所以一定要在调用sprintf之前分配足够大的空间给buf。

原来我定义query这个变量的时候用了char *query;而没有使用数组分配大小;

Tags: , ,

Leave a Comment

学习编程的一点忠告,尽可能的坚持!

  1. 不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
  2. 不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
  3. 浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
  4. 浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
  5. 浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!
  6. 浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
  7. 浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
  8. 把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
  9. 学习编程最好的方法之一就是阅读源代码;
  10. 在任何时刻都不要认为自己手中的书已经足够了;
  11. 看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
  12. 别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
  13. 不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
  14. 和别人一起讨论有意义的知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
  15. 学习编程的秘诀是:编程,编程,再编程;
  16. 请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
  17. 把在书中看到的有意义的例子扩充;
  18. 请重视异常处理技术,并将其切实的运用到自己的程序中;
  19. 经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
  20. 既然决定了学XX,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;
  21. 当你写程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写;
  22. 决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
  23. 每学到一个难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
  24. 记录下在和别人交流时发现的自己忽视或不理解的知识点;
  25. 保存好你写过的所有的程序——那是你最好的积累之一;
  26. 请热爱你所学习的语言!

Tags: ,

Comments (1)

互联网+圆桌+龙虾

PHPWind 精英站长沙龙合肥站暨09安徽站长年会 结束后,有幸和嘉宾们一块共进晚餐,这样就有机会和大会嘉宾们更深入的交流了。这里感谢一下 合肥女性论坛的老猫,合肥生活网的徐总。

用餐时,和phpwind的运营总监 陈燎罕聊了一会儿,他和讲述了他们phpwind团队创业过程,发现和discuz出奇的相似。(康盛的故事大家都非常了解了吧,其实北有discuz、南有phpwind。)大二开始写论坛,比戴志康晚了半年,现在我们看到国内的论坛百分之九十以上的市场都被discuz和phpwind占了。从他们的创业经历当中,感触最深的还是一点“坚持”,陈总也说,如果当初放弃了,肯定不会有现在的成绩。

晚上,有幸和这次大会的一些嘉宾一起去龙虾一条街吃夜宵。互联网资深人士:海枫(就是大会上大喊大叫的那家伙) 最先发言,他对来的人做了一个非常有意思的比喻:有互联网里的偷盗的“火车头采集器”、提供帮凶的IDC服务商(中电华通的东东)、教别人怎么干“坏事”的php100的,有最会忽悠的SEO专家,还有警察绿盟科技的孙总,当然,海枫他自己是提供证据的(

Tags: , ,

Leave a Comment