如何将此cURL命令转换为PHP(libcurl)?

时间:2010-06-07 06:59:25

标签: php command-line curl translation

this question的延续中,我需要完成的PHP语句是什么:

curl -is -F 'J:A-login=BTDT::Action::Login' -F 'J:A:F-address-login=EMAILADDRESS' -F 'J:A:F-password-login=PASSWORD' http://hiveminder.com/splash | grep -o 'JIFTY_SID_HIVEMINDER=[0-9a-f]\+'

标志和字段仍然是神秘的,我现在没有时间浏览文档来弄清楚这是如何翻译的。不过,我至少理解| grep ...部分。

1 个答案:

答案 0 :(得分:1)

你不需要卷曲:

$data = array(
    "J:A-login"             => 'BTDT::Action::Login',
    "J:A:F-address-login"   => 'EMAILADDRESS',
    "J:A:F-password-login"  => 'PASSWORD',
);
$context = stream_context_create(
    array( 
        'http' => array( 
            'method'  => 'POST', 
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'content' => http_build_query($data), 
            'timeout' => 10, 
        ), 
    )
);

$ret = file_get_contents('http://hiveminder.com/splash', false, $context);
if (preg_match('/JIFTY_SID_HIVEMINDER=[0-9a-f]+/m', $ret, $matches)) {
    //see $matches[0]
}

请注意,这可能需要修改;检查http://hiveminder.com/splash处的表单,似乎需要比你的卷曲线使用更复杂的东西。