php的curl实现get和post

| November 12, 2008 13:57 | root | Via 本站原创
类似于dreamhost这类主机服务商,是显示fopen的使用的。使用php的curl可以实现支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道就最常用的来说,是基于http的get和post方法。

代码实现:

1、http的get实现

$ch = curl_init("/") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
$output = curl_exec($ch) ;
$fh = fopen("out.html", 'w') ;
fwrite($fh, $output) ;
fclose($fh) ;

2、http的post实现

//extract data from the post
extract($_POST) ;  
//set POST variables
$url = '/get-post.php' ;
$fields = array(
                        'lname'=>urlencode($last_name) ,
                        'fname'=>urlencode($first_name) ,
                        'title'=>urlencode($title) ,
                        'company'=>urlencode($institution) ,
                        'age'=>urlencode($age) ,
                        'email'=>urlencode($email) ,
                        'phone'=>urlencode($phone)
                );  
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&' ; }
rtrim($fields_string ,'&') ;
//open connection
$ch = curl_init() ;
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL,$url) ;
curl_setopt($ch, CURLOPT_POST,count($fields)) ;
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string) ;
//execute post
$result = curl_exec($ch) ;
//close connection
curl_close($ch) ;

[加精]MySQL Replication(复制)基本原理

| November 12, 2008 13:53 | root | Via 本站原创
1、复制进程
Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。

要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。
复制的基本过程如下:
1)、Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
2)、Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave 的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;
3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪 个位置开始往后的日志内容,请发给我”;
4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

[MySQL优化案例]系列 -- DISABLE/ENABLE KEYS的作用

| November 12, 2008 10:35 | root | Via 本站原创
有一个表 tbl1 的结构如下:
CREATE TABLE `tbl1` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` char(20) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

该表里已经存在了200万条记录.

现在, 需要把 tbl1 中的所有记录全部导到另一个完全相同的表 tbl2 中去.
1. 如果采用以下传统的方式, 则执行时间为: 98.01s


mysql>INSERT INTO tbl2 SELECT * FROM tbl1;

Query OK, 2000000 row affected (1 min 38.01 sec)
Records: 2000000  Duplicates: 0  Warnings: 0

2. 如果是用以下SQL语句, 则执行时间为: 80.85s (36.30 + 44.55)


mysql>ALTER TABLE tbl2 DISABLE KEYS;
Query OK, 0 rows affected (0.00 sec)



mysql>INSERT INTO tbl2 SELECT * FROM tbl1;
Query OK, 2000000 row affected (36.30 sec)
Records: 2000000  Duplicates: 0  Warnings: 0



mysql>ALTER TABLE tbl2 ENABLE KEYS;
Query OK, 0 rows affected (44.55 sec)
从上面的测试结果来看, 在大批量导入时先禁用索引, 在完全导入后, 再开启索引, 一次性完成重建索引的效率会相对高很多, 经过反复几次测试, 感觉后者基本能比前者快 1.2 倍左右. 这也就是 LOAD DATAL INFILE 相对较快的原因之一.

嵌入式系统学习的条件,方法及步骤

| November 11, 2008 16:14 | root | Via 本站原创
有些人以为搞嵌入式就是随便找本书看看,在电脑上编几个程序就完事。非也,其实嵌入式的门槛是比较高的。具体如下:  

  1、您得有一定数量的Money。

    (1)、开发板贵

    (2)、培训费更贵

    (3)、开发平台是贵得不能再贵。(除非您只是想玩玩而已)

  2、需要学习的东西多。(1)、window环境编程;(2)、Linux环境编程;(3)、单片机

  3、最后也是最重要的一点,你得有坚韧不拔之志和一颗平常之心。

   (1)、自信 坚强 积极 勤快 (注:好的自信是自觉的!)

   (2)、成功其实就是成为最好的您自己       

  嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,东雪终将化去,春风定会吹来。具体步骤如下:

  1、《C语言》第二版 谭浩强 ; 《C程序设计语言》第二版 徐宝文译 机戒工业出版社

  你能区分开指针数组和数组指针吗?你知道函数指针吗?

  你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?

  2、《数据结构》C语言版  黄国愉、叶乃青编  清华大学出版社

  你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?

  3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著

  此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。

  4、学习单片机,最好能找个前辈带一带。

   你能用51单片机做出一样实际的东西吗?即使它再简单!

   要注意加深对中断的理解。

  5、学习ARM单片机。

   (1)、细读《ARM微控制器基础与实战》周立功编写 (注:即使你不用书中的开发板)

   (2)、细读相关芯片的原版英文文档。如:arm920TE.pdf  S3C2410_1.2.pdf

  6、学习uCOS!!操作系统。

   (1)、细读《嵌入式实时操作系统uC/OS-!!》第二版 召贝贝译

    你能把uCOS!!移植到自己的平台上吗?

   (2)、能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序

  7、熟悉Linux环境,学习Linux环境编程,学习交叉编程

   (1)、细读《linux命令大全.pdf》

   (2)、细读《GNU Make 使用手册(中译版).pdf》

   (3)、学习创建交叉编程环境.

  8、学习Linux操作系统。     

   (1)、《UNIX环境高级编程》

   (2)、细读“joyfire 笔记”,可在“www.qianrushi.com”网站的好书下载栏目获取

      (3)、细读《linux内核完全注释》

   (4)、细读《understanding the linux kernel 2》

   (5)、利用源代码阅读利器工具"Source Insight"进行真正的linux内核原码刨析

   (6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序

  9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》

 10、复习C++,学习用QT进行图形界面编程

   (1)、细读《QT编程宝典》

   (2)、学会通过查看QT电子文档进行QT GUI实地编程

   (3)、学习交叉编程.(其实就是把命令qmake变为tmake)

 11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)

  至此,你已学完嵌入式的整流程!但谨记:一个有思想的人才真是一个力量无边的人;有容乃大,能予方强!

[原创]09年研究生考试英语单词分字母下载a-z

| November 11, 2008 15:46 | root | Via 本站原创
      由于本人手机是s60的系统,喜欢没事的时候记几个英文单词,但是在记忆09年研究生入学单词发现读取一个9M的word文档时候出现死机等症状,于是本人将将其化为26个英文字母来排序,分开为26个word文件,方便大家放到手机上阅读记忆,希望大家能够学习劝学篇中:
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。是故无冥冥之志者,无昭昭之明。无惛惛之事者,无赫赫之功。行衢道者不至,事两君者不容。目不能两视而明,耳 不能两听而聪。螣蛇无足而飞,梧鼠五技而穷。诗曰:“尸鸠在桑,其子七兮。淑人君子,其仪一兮。其仪一兮,心如结兮。”故君子 结于一也。
的精神,日积月累,慢慢学习,不断进取,当然也包括本人在内了,不用谢我,我只是为了自己,方便了大家罢了!

下载地址:http://www.xiangdong.org/e...
分页: 5/259 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]