本书特别新手的一点,是将重要操作的核心思路都为大家提供了。在数据库、图片、文件上传我们都把真正的步骤。以及步骤如何组何成为我们的代码和实现过程都做过讲解。 我们将curl的步骤分为以下7步: 1. 初使化curl资源 2. 参数设置请求的协议地址 3. 参数设置是否返回请求结果 4. 设置发送数据(无发送数据可不设置) 5. 其他的参数信息设置(按实际工作需要决定) 6. 执行或执行得到返回结果 7. 关闭curl资源 我们为了更好的让大家学习和入门,将第2步至第5步本应该归为一步的插成了4个步骤。 第二步至第五步本质上,应该统成为curl参数设置。 所有curl设置参数设置都是通过curl_setopt都完成 ####**curl_setopt这一步最为重要,一切玄妙均在此。** curl_setopt这一步完成了包括连接、参数和一切请求的细节设置。要一次性全部看完并理解可能比较困难,所以我们只试一下那些更常用也更有用的选项。 我们为了更好的入门。并且在php中我们用的最多的是http请求。因此,我们将一些不需要大家使用到的全部不作讲解。 如果感兴趣的朋友可以参考curl_setopt中复杂的参数设置。 地址如下:http://php.net/manual/zh/function.curl-setopt.php ###一、初使化curl资源 这只有一句话,就是使用的是curl_init函数。这个参数法面要传入任何参数。返回curl的操作资源。 因为,我们在后面是通过curl_setopt向curl的操作资源变量压入数据的。 例: ~~~ $ch = curl_init(); ~~~ ###二、参数设置请求的协议地址 curl_setopt函数的详细使用如下: | 类型 | 说明| | -- | -- | | 函数 | curl_setopt | | 参数1 | curl资源变量 | | 参数2 | curl参数选项 | | 参数3 | curl参数值| **CURLOPT_URL** 这个参数选项规定了请求的url地址。 ~~~ curl_setopt($ch, CURLOPT_URL, "http://www.phpxy.com"); ~~~ ###三、参数设置是否返回请求结果 我们希望curl请求后返回对应的结果。我们要得到对应的结果,也需要设置一个参数,这个参数名为:CURLOPT_RETURNTRANSFER。 若需要返回值即为1。不需请求后返回的结果可设置为0。 ~~~ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); ~~~ ###四、设置发送数据 如果是get请求,我们不需要设置发送的参数。在post等请求的时候,我们需要设置发送方法为post方法。并设置发送的数据。 **CURLOPT_POST **值设为1是使用POST方法,0为不使用POST方法 **CURLOPT_POSTFIELDS**设置传递的数据 ~~~ //声明使用POST方式来进行发送 curl_setopt($ch, CURLOPT_POST, 1); //发送什么数据呢 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); ~~~ ###五、其他的参数信息设置 如果是https,有的时候我们需要忽略https的安全证书。 CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST 两个参数改为false即忽略了证书。 ~~~ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); ~~~ CURLOPT_HEADER这个参数又决定是是否处理http的头信息,我们不想接收处理的话可将这个值设置为0。 ~~~ curl_setopt($ch, CURLOPT_HEADER, 0); ~~~ 此外,我们还可以设置请求的超时时间,参数为:CURLOPT_TIMEOUT。 ~~~ curl_setopt($ch, CURLOPT_TIMEOUT, 10); ~~~ 其他参数非常多,我们在之前讲过,如果你想了解更多的内容可以访问: 地址如下:http://php.net/manual/zh/function.curl-setopt.php ###六、执行或执行得到返回结果 我们第三步中,将CURLOPT_RETURNTRANSFER 参数中将值设为1。如果执行的结果有数据。使用curl_exec执行后,会将结果返回给$output变量。 ~~~ $output = curl_exec($ch); ~~~ ###七、关闭curl资源 关闭curl资源。因为资源类型,我们反复强调过,有打开就有关闭。 如果不需要使用,使用curl_close关闭后立刻释放内存。 ~~~ curl_close($ch); ~~~