PHP的curl常用的5种写法

 1 // 1,抓取无访问控制文件
 2
 3      $ch= curl_init();
 4      curl_setopt($ch, CURLOPT_URL,"http://localhost/mytest/phpinfo.php");
 5      curl_setopt($ch, CURLOPT_HEADER, false);
 6      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//如果把这行注释掉的话,就会直接输出
 7      $result=curl_exec($ch);
 8      curl_close($ch);
 9
10 // 2,使用代理进行抓取
11
12      $ch= curl_init();
13      curl_setopt($ch, CURLOPT_URL,"http://blog.51yip.com");
14      curl_setopt($ch, CURLOPT_HEADER, false);
15      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
16      curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
17      curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080);
18      //url_setopt($ch, CURLOPT_PROXYUSERPWD, ‘user:password‘);如果要密码的话,加上这个
19      $result=curl_exec($ch);
20      curl_close($ch);
21
22 // 3,post数据后,抓取数据
23
24      $ch= curl_init();
25      /*在这里需要注意的是,要提交的数据不能是二维数组或者更高
26      *例如array(‘name‘=>serialize(array(‘tank‘,‘zhang‘)),‘sex‘=>1,‘birth‘=>‘20101010‘)
27      *例如array(‘name‘=>array(‘tank‘,‘zhang‘),‘sex‘=>1,‘birth‘=>‘20101010‘)这样会报错的*/
28      $data=array(‘name‘=>‘test‘,‘sex‘=>1,‘birth‘=>‘20101010‘);
29      curl_setopt($ch, CURLOPT_URL,‘http://localhost/mytest/curl/upload.php‘);
30      curl_setopt($ch, CURLOPT_POST, 1);
31      curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
32      curl_exec($ch);
33
34 // 4.抓取一些有页面访问控制的页面
35
36      $ch= curl_init();
37      curl_setopt($ch, CURLOPT_URL,"http://club-china");
38      /*CURLOPT_USERPWD主要用来破解页面访问控制的
39      *例如平时我们所以htpasswd产生页面控制等。*/
40      //curl_setopt($ch, CURLOPT_USERPWD, ‘231144:2091XTAjmd=‘);
41      curl_setopt($ch, CURLOPT_HTTPGET, 1);
42      curl_setopt($ch, CURLOPT_REFERER,"http://club-china");
43      curl_setopt($ch, CURLOPT_HEADER, 0);
44      $result=curl_exec($ch);
45      curl_close($ch);
46
47 // 5.模拟登录到sina
48
49     functionchecklogin($user,$password)
50      {
51      if( emptyempty($user) || emptyempty($password) )
52      {
53      return0;
54      }
55      $ch= curl_init( );
56      curl_setopt($ch, CURLOPT_REFERER,"http://mail.sina.com.cn/index.html");
57      curl_setopt($ch, CURLOPT_HEADER, true );
58      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
59      curl_setopt($ch, CURLOPT_USERAGENT, USERAGENT );
60      curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR );
61      curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT );
62      curl_setopt($ch, CURLOPT_URL,"http://mail.sina.com.cn/cgi-bin/login.cgi");
63      curl_setopt($ch, CURLOPT_POST, true );
64      curl_setopt($ch, CURLOPT_POSTFIELDS,"&logintype=uid&u=".urlencode($user)."&psw=".$password);
65      $contents= curl_exec($ch);
66      curl_close($ch);
67      if( !preg_match("/Location: (.*)\\/cgi\\/index\\.php\\?check_time=(.*)\n/",$contents,$matches) )
68      {
69      return0;
70      }else{
71      return1;
72      }
73      }
74
75      define("USERAGENT",$_SERVER[‘HTTP_USER_AGENT‘] );
76      define("COOKIEJAR", tempnam("/tmp","cookie") );
77      define("TIMEOUT", 500 );
78
79      echochecklogin("zhangying215","xtaj227");
时间: 2024-11-05 20:44:12

PHP的curl常用的5种写法的相关文章

全面理解Javascript闭包和闭包的几种写法及用途

一.什么是闭包和闭包的几种写法和用法                                                       1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态. 2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区. 简单的说,Javascript允许使用内部函数---即函数定义和函数表

转 全面理解Javascript闭包和闭包的几种写法及用途

转自:http://www.cnblogs.com/yunfeifei/p/4019504.html 好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法.用法和用途. 一.什么是闭包和闭包的几种写法和用法                                                       1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑

无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM 的比较 3.常见adb指令 platform-tools/adb.exe adb.exe : android debug bridge android调试桥 adb devices:列出所以连接的设备 adb kill-server :杀死adb调试桥 adb start-server :启动adb

数字集成电路设计-12-状态机的四种写法

引言 在实际的数字电路设计中,状态机是最常用的逻辑,而且往往是全部逻辑的核心部分,所以状态机的质量,会在比较大的程度上影响整个电路的质量. 本小节我们通过一个简单的例子(三进制脉动计数器)来说明一下状态机的4中写法. 1,模块功能 由于我们的目的在于说明状态机的写作方式,所以其逻辑越简单有利于理解.就是一个简单的脉动计数器,每个三个使能信号输出一个标示信号. 2,一段式 状态机的写法,一般有四种,即一段式,两段式,三段式,四段式.对于一段式的写法,整个状态机的状态转移.转移条件.对应状态的输出都

Android代码学习--点击事件的几种写法

由来:常规的写法参见<写一个apk>,每次点击按钮,按钮先查找文本框等元素,然后再操作,其实查找操作是很费时的操作,因此将该定义放到Activity的onCreate中:Oncreate只会执行一次,这样Activity一旦执行,就先创建好控件们了. 第二种方法:通过匿名内部类的方法:就是button.setOnClickListener(new OnClickListener(){ //实现OnClickListener接口 @Override public void onClick(Vie

单例模式的八种写法比较

单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生.一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式.但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧. 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在. 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象

页面之间值传递常用的几种方式

1.QuerySting在页面间传递值 这种方法的写法:在要传递值的页面,Response.Redirect(url),值包含在在url中.接收值得页面,Request.QueryString["变量名"]. 这是使用起来很简单的一种方式,但是它不是很安全,因为值会在浏览器里的地址栏里显示.并且它也不能传递对象,对长度也有限制,如果要传递的值很多,且对安全要求也高的话,这种方式就不适合了. 2.Session变量 我们通常在一个页面中,将值放到session变量中,在另外几个页面使用它

单例模式的五种写法

首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例. 简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中, 任何一个时刻,单例类的实例都只存在一个(当然也可以不存在). package singleton; /** * @author lei * 单例模式的五种写法: *

状态机的两种写法

状态机的两种写法 发布时间: 2015-09-13 13:22  阅读: 1972 次  推荐: 3   [收藏] 有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM有限消息机).它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点.同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现.但这并不意味着其只能进行有限次的处理,相反,有限状态机是闭环系统,有限无穷,可以用有限的状态,处理无穷