搜索:技术文摘相关文章

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

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

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

时间:2013-03-13 | 分类:技术文摘 | 标签: PHP  C  C++ 

 

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


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

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

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

 

时间:2013-02-27 | 分类:技术文摘 | 标签: C  C++  指针 

在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,来进行源码编译...

时间:2012-12-21 | 分类:技术文摘 | 标签: PHP  linux  Centos  openssl 

在使用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)

 

时间:2012-12-21 | 分类:技术文摘 | 标签: PHP  curl  http 100 
定义:
首先,我们定义一下定向抓取,定向抓取是一种特定的抓取需求,目标站点是已知的,站点的页面是已知的。本文的介绍里面,主要是侧重于如何快速构建一个实时的抓取系统,并不包含通用意义上的比如链接分析,站点发现等等特性。

在本文提到的实例系统里面,主要用到 linux+mysql+redis+django+scrapy+webkit,其中scrapy+webkit作为抓取端,redis作为链接库存 储,mysql作为网页信息存储,django作为爬虫管理界面,快速实现分布式抓取系统的原型。

名词解析:

1.  抓取环:抓取环指的是spider在存储中获取url,从互联网上下载网页,然后将网页存储到数据库里面,最后在从存储里面获取下一个URL的一个流程。
2.  Linkbase:链接库的存储模块,包含一般的链接信息;是抓取系统的核心,使用redis存储。
3.  XPATH:一门在 XML 文档中查找信息的语言,XPath 可用来在 XML 文档中对元素和属性进行遍历, 是 W3C XSLT 标准的主要元素。使用XPATH以及相关工具lib进行链接抽取和信息抽取。
4.  XPathOnClick:一个chrome的插件,支持点击页面元素,获取XPATH路径,用于编辑配置模板。
5.  Redis:一个开源的KV的内存数据库,具备很好的数据结构的特征和很高的存取性能。用于存储linkbase信息
6.  Django:爬虫管理工具,用于模板配置,系统监控反馈。Django在这里主要是用来管理一个数据库,使用Admin功能。
7.   Pagebase:页面库,主要是存储网页抓取的结果,以及页面抽取的结果,和dump交互,使用mysql实现。
8.    Scrapy:一个开源的机遇twisted框架的python的单机爬虫,该爬虫实际上包含大多数网页抓取的工具包,用于爬虫下载端以及抽取端。
9.     列表页:指的商品页面之外的所有页面
10.    详情页:比如商品B2C的抓取中,特指商品页面,比如

时间:2012-11-06 | 分类:技术文摘 | 标签: redis  django  scrapy  webkit 

wget http://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz
tar zxvf tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47/
./configure --prefix=/usr/local/tokyocabinet-1.4.47/
#注:在32位Linux操作系统上编译Tokyo cabinet,请使用./configure --enable-off64代替./configure,可以使数据库文件突破2GB的限制。
#./configure --enable-off64 --prefix=/usr/local/tokyocabinet-1.4.47/
make
make install
cd ../

...

时间:2012-09-29 | 分类:技术文摘 | 标签: Tokyo 

Firefox是非IE内核浏览器的领头羊,而且近几年使用人群迅速增长,大有追赶IE的趋势。问及Firefox受欢迎的原因,多半都是因为它可以添加多种网页开发插件的优点。

下面我介绍几款常用的网页开发的常用插件:

时间:2012-09-12 | 分类:技术文摘 | 标签: firefox 

document.execCommand()方法处理Html数据时常用语法格式如下:
document.execCommand(sCommand[,交互方式, 动态参数])

其 中:sCommand为指令参数(如下例中的”2D-Position”),交互方式参数如果是true的话将显示对话框,如果为false的话,则不显 示对话框(下例中的”false”即表示不显示对话框),动态参数一般为一可用值或属性值(如下例中的”true”)。

...

时间:2012-08-29 | 分类:技术文摘 | 标签: JS  execCommand 

如果遇到MySQL查询乱码的情况,应该如何解决呢?下面就将为您介绍一个处理MySQL查询乱码的方法,希望对您能够有所帮助。

使用mysql> select * from table into outfile 'c:\table.txt' where 条件 
(或selet * into outfile from table where 条件 )

导出来的数据会出现MySQL查询乱码情况。同时使用
mysql>load data local infile 'c:\\table.txt' into table `table`

插入的数据也会出现乱码情况。

究其原因,这是mysql服务器系统变量中的character_set_database中默认的字符集问题。

解决方法:

时间:2012-08-16 | 分类:技术文摘 | 标签: mysql  select outfile  load data 

 单页面网站作为简单快捷,易于维护的页面设计方案,越来越受到工作室,作品集,或者个人博客类网站用户的青睐,我们可以使用不同的特效来使得页面更加的丰富和炫动,今天我们将介绍几款可以作为单页面开发的jQuery插件,帮助大家快速简便的实现一个单页面的网站设计,希望大家喜欢!
       jQuery one page nav
      使用这个插件,可以帮助你快速的搭建一个滚动的页面导航,如果你需要比较简单直接的方式开发一个单页面的网站,这个插件是一个不错的选择。

 

jQuery ScrollPath

jQuery ScrollPath是一个非常棒的插件,允许你画出自己自定义的滚动路径。HTML元素可以被放置到路径上,而且类似的鼠标滚轮,键盘上下移动键,或者 空格都可以帮助你移动到你需要到达的元素位置。并且一个可选的自定义滚动条可以帮助你方便的点击和拖拽滚动。而且插件允许你使用CSS变形旋转整个页面。

 

时间:2012-08-07 | 分类:技术文摘 | 标签: jquery