我正在尝试使用curl将用户名和密码参数发送到网址,我想要检索它们。我将参数发送到页面,如下所示:
<?php
$curl = curl_init('http://localhost/sample.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'key:123456');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Sample Code');
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
if($resultStatus['http_code'] == 200) {
echo $response;
} else {
echo 'Call Failed '.print_r($resultStatus);
}
?>
现在在sample.php页面中,如何检索这些参数? (此处,用户名为密钥,密码为123456)。
我认为它们必须在$ _SERVER数组中可用,但它们不可用。
答案 0 :(得分:2)
某些参数(如CURLOPT_USERAGENT
)在HTTP标头中发送,可以使用$_SERVER['HTTP_USER_AGENT']
等特殊全局变量检索(参见http://www.php.net/manual/de/reserved.variables.server.php)。
其他人,例如CURLOPT_SSL_VERIFYPEER
,只是CURL的本地,不会发送到服务器。
答案 1 :(得分:1)
默认情况下,cURL会发出HTTP GET请求。在这种情况下,您必须将参数附加到您正在呼叫的URL:
$curl = curl_init('http://localhost/sample.php?foo=bar&baz=zoid');
在sample.php
中,$_GET['bar']
和$_GET['baz']
分别可用。如果是POST请求,您想要发出,则需要通过curl_setopt
设置参数:
$curl = curl_init('http://localhost/sample.php');
curl_setopt($curl, CURLOPT_POSTFIELDS, 'foo=bar&baz=zoid');
答案 2 :(得分:1)
要将参数发送到网页,您可以使用两种方法中的一种GET或POST
GET是将参数附加到您要获取的资源名称的位置
例如$url = "http://localhost/sample.php?name=" . urlencode( $value )
另一种选择是通过POST。将帖子作为信息页面发送到服务器,使用curl创建帖子
curl_setopt($ch, CURLOPT_POSTFIELDS, 'name=' . urlencode( $value ) . '&name2=' . urlencode( $value2 ));
另一方面,如果您正在谈论标题,那么您可以通过$_SERVER['headername']
数组访问它们。
DC
答案 3 :(得分:1)
您可以在全局$_SERVER
数组
$_SERVER : array
(
....
'PHP_AUTH_USER' => 'the_username'
'PHP_AUTH_PW' => 'the_password'
)