11
2014
01

win7 64位 php环境开启curl服务

 window7中PHP环境没开启CURL扩展时,使用CURL_INIT函数会提示 Call to undefined function curl_init()

解决方法:

要启用curl一般打开php.ini,找到“extension=php_curl.dll”,然后去掉前面的“;”注释,重启apache即可。

  如果还出现Call to undefined function curl_init()问题,先检查php.ini的extension_dir值是哪个目录,在那个目录下检查有无php...

29
2013
06

SQL表连接图解

 估计很多人在学习SQL表连接的时候都会被各种类型的表连接搞得稀里糊涂的,现在好了,有了下面的图,就可以很直观的区分各种表连接了。

image

18
2013
04

各种语言网站应用程式架构

ASP.NET
 ASP.NET MVC  BFC  DotNetNuke  MonoRail
 Umbraco      
 
ColdFusion
 ColdSpring  Fusebox  Mach-II  Model-Glue
 onTap  on Wheels    
 
Common Lisp
 ABCL-web  blow  BKNR  SymbolicWeb
 UnCommon Web      
 
 
12
2013
04

Github 上最受欢迎的开源 CSS 框架

   设计和开发一个网站有时会很累人,因为所有的小事情都需要被考虑到,包括所有的调整和随时可能发生的小的修改等等。

  因此设计师和开发人员不断的推出各种工具来改进工作流程。而 CSS 框架就是这么一个工具。本文列出了在 Github 上最受欢迎的一些 CSS 框架供你参考。

  Bootstrap

09
2013
04

Eclipse Python插件 PyDev

 

方法一:  

将plugins目录下所有文件挪到Eclipse的相应目录下,将feature目录下所有文件挪到Eclipse的相应目录下,最后启动Eclipse,在Help-》Software Upates-》Manage Configuration,然后弹出的界面即可看到pydev的插件。

在安装 PyDev 之前,要保证您已经安装了 Java 1.4 或更高版本、Eclipse 以及 Python。接下来,开始安装 PyDev 插件。

  1. 启动 Eclipse,利用 Eclipse Update Manager 安装 PyDev。在 Eclipse 菜单栏中找到 Help栏,选择 Help > Software Updates > Find and Install。
  1. 选择 Search for new features for install,然后单击 Next。在显示的窗口中,选择 new remote site。此时,会弹出一个对话框,要求输入新的更新站点的名称和链接。这里,名称项输入 PyDev,当然,您也可以输入其他的名称;链接里输入http://pydev.org/updates。然后,单击 Ok。

 

16
2013
03

CentOS安装scp命令

 在测试中需要在两台虚拟机之间传递文件,首先想到的是scp命令,结果提示:

-bash: scp: command not found

想当然用yum install scp命令安装,结果提示:

No package scp available.

后来发现scp这东西应该属于openssh-clients这个包,运行:

yum install openssh-clients

再运行scp就可以了

13
2013
03

[转]用C/C++扩展你的PHP

PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。

扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展。现在,两个版本过去了,API仍然和PHP3时的非常相似。扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本引擎本身,仅仅需要开发者熟悉API。

有两个理由需要自己编写PHP扩展。第一个理由是:PHP需要支持一项她还未支持的技术。这通常包括包裹一些现成的C函数库,以便提供PHP接口。例如,如果一个叫FooBase的数据库已推出市场,你需要建立一个PHP扩展帮助你从PHP里调用FooBase的C函数库。这个工作可能仅由一个人完成,然后被整个PHP社区共享(如果你愿意的话)。第二个不是很普遍的理由是:你需要从性能或功能的原因考虑来编写一些商业逻辑。

27
2013
02

彻底搞定C指针

 

 《彻底搞定C指针》第一篇 变量的内存实质


要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开始讲起吧!
先来理解理解内存空间吧!请看下图:

内存地址→ 6 7 8 9 10 11 12 13
----------------------------------------------------------------- 
··· | | | | | | | |··
-----------------------------------------------------------------

如图所示,内存只不过是一个存放数据的空间,就好像我的看电影时的电影院中的座位一样。每个座位都要编号,我们的内存要存放各种各样的数 据,当然我们要知道我们的这些数据存放在什么位置吧!所以内存也要象座位一样进行编号了,这就是我们所说的内存编址。座位可以是按一个座位一个号码的从一 号开始编号,内存则是按一个字节一个字节进行编址,如上图所示。每个字节都有个编号,我们称之为内存地址。好了,我说了这么多,现在你能理解内存空间这个 概念吗?

 

21
2012
12

将centos6的curl ssl版本(NSS)替换成openssl,解决Unable to load client key -8178的错误问题

在centos 6.2的系统里面的curl支持的https是nss版本的,而不是openssl的,所以在php使用curl访问https的时候会报Unable to load client key -8178的错误,在google group里面找到了灵感,也是curl和https的,里面说倒是curl的问题:
https://groups.google.com/forum/?fromgroups=#!topic/pongba/sgMYM9dGI7k


根据链接里面说的,去官网下载了一个最新版本(curl-7.28.1.tar.gz)的curl,来进行源码编译...

21
2012
12

解决PHP使用CURL请求时返回http/1.1 100 continue的方法

在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

  1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
  2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server
  

这是libcurl的行为.

具体的RFC相关描述: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,

要解决的办法也挺容易:

 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
               // Disable Expect: header (lighttpd does not support it)