cURL PHP:连接到进销存系统

时间:2010-04-02 09:38:48

标签: php curl include

我正在尝试使用cURL连接到这样的页面:https://clients.mindbodyonline.com/asp/home.asp?studioid=851,并带有以下代码;

<?php

$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'https://clients.mindbodyonline.com/asp/home.asp?studioid=851');
//curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle,CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($curl_handle,CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
curl_setopt($curl_handle,CURLOPT_COOKIEFILE, '/tmp/cookies.txt');

//curl_setopt($curl_handle,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_handle,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, 1);

//curl_setopt($curl_handle,CURLOPT_HEADER, 1);
//curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER, 1);
//curl_setopt ($curl_handle,CURLOPT_POST, 1);

$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

if (empty($buffer))
{
    print "Sorry, The booking system appears to be unavailable at this time.<p>";
}
else
{
    print $buffer;
}
?>

我摆弄了设置,我得到的唯一三个答案是

  1. 未加载任何内容,并且调用错误消息
  2. 重定向到/ asp / home ... local
  3. 返回'1'并且全部是
  4. 谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

<强> 1。什么都没有加载:你的代码工作正常,但他们忽略了你。它们可能会有一些反锤击功能。您可以随时将代码更改为休眠一段时间,然后重试几次。

<强> 2。重定向到/ asp / home ...本地:您的代码正在运行,但是从您的浏览器执行的页面返回javascript,并将您重定向到不存在的页面。要查看此代码而不运行它,请执行以下操作:

print htmlspecialchars($buffer);

第3。返回'1'并且全部:如果您不使用

,就会发生这种情况
curl_setopt($client, CURLOPT_RETURNTRANSFER, true);

取消注释。

不幸的是,即便如此,您也无法按原样阅读此特定网站,因为它是由javascript绘制的,而cURL无法运行。

答案 1 :(得分:0)

您使用的Cookie可能无效(即会话已过期)。 如果您加载没有cookie的页面,您将获得一个POST表单。也许您应该首先发送POST数据,获取cookie,然后在剩下的会话中使用这些cookie。

此外,您需要将CURLOPT_RETURNTRANSFER设置为1才能使用$buffer。如果没有,cURL将输出它获得的页面,这可能解释为#2。