2016-05-12 151 views
2

curl有一个CURLOPT_LOGIN_OPTIONS参数(终端应用程序中的--login-options)。如何在php脚本中使用php5-curl?默认情况下,它没有CURLOPT_LOGIN_OPTIONS并使用类似curl_setopt($ ch,12345,“auth = PLAIN”)的代码;不会导致卷曲行为改变。 我不会在我的代码中使用exec。谢谢。如何在php-curl中使用CURLOPT_LOGIN_OPTIONS?

+0

http://stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http-basic-authentication-with-php-curl – Farkie

+0

感谢评论,@Farkie,但我需要执行这个命令curl --url“imaps://server.com”--user“username:password”--login-options“auth = PLAIN” – waterlilies

回答

1

在PHP中,如果你想登录一些服务器上,你可以使用简单的设置:

curl_setopt($cURL, CURLOPT_USERPWD, "USERNAME:PASSWORD");

这里是我的一个例子,我如何使用:

$cURL = curl_init(); 
curl_setopt($cURL, CURLOPT_URL, "imaps://server.com"); 
curl_setopt($cURL, CURLOPT_POST, 1); 
curl_setopt($cURL, CURLOPT_POSTFIELDS, 
     "postvar1=value1&postvar2=value2&postvar3=value3"); 
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($cURL, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($cURL, CURLOPT_CONNECTTIMEOUT, 3); 
curl_setopt($cURL, CURLOPT_TIMEOUT, 2); 
curl_setopt($cURL, CURLOPT_USERPWD, "USERNAME:PASSWORD"); 
curl_setopt($cURL, CURLOPT_HTTPHEADER, array("auth=PLAIN")); 
$output=curl_exec($cURL); 
curl_close($cURL); 

CURLOPT_USERPWD让你登录您的服务器或应用程序,如果你这样设置。

如果需要代理,还有另一种方式:

curl_setopt($cURL, CURLOPT_PROXYUSERPWD, "USERNAME:PASSWORD");

但你也需要的附加选项:

curl_setopt($cURL, CURLOPT_PROXY, '127.0.0.1'); // IP 
curl_setopt($cURL, CURLOPT_PROXYPORT, '23'); // PORT 
curl_setopt($cURL, CURLOPT_PROXYUSERPWD, "USERNAME:PASSWORD"); // Login 

我希望这可以帮助。

+0

curl_setopt($ cURL,CURLOPT_USERPWD,“USERNAME:PASSWORD”) ;就像curl_setopt($ ch,CURLOPT_USERNAME,username); curl_setopt($ ch,CURLOPT_PASSWORD,password);我需要实现这个命令curl --url“imaps://server.com”--user“username:password”--login-options“auth = PLAIN” – waterlilies

+0

我更新了我的答案。您需要发送带'auth = PLAIN'的'CURLOPT_HTTPHEADER'来完成这项工作。我执行你的请求。如果您不需要发送POST信息,只需删除该部分 –