最近,我成功地使用JSON插件获取了wiki页面的内容:
$username = '****';
$password = '****';
$sc = new Serverclient_helper();
$login = "http://********/api.php?action=login&lgname=$username&lgpassword=$password";
$content = $sc->getContent($login,array(),false);
$host = "http://******/api.php?action=parse&format=json&page=Main";
$content = $sc->getContent($host);
$content = json_decode($content);
今天,我也尝试过做同样的事情,但使用了另一个需要登录的页面,比如wiki页面。它并不成功。我认为这是因为这个页面并没有wiki页面的结构。这是wiki页面的内容。我读了很多书,我知道我的页面正在使用基于表单的身份验证。但我仍然想知道如何访问页面的全部内容。
我也使用了curl_setopt,但它并没有帮助我获得内容。只显示了登录页面,但我没有登录。
这是我的代码:
$username='*****';
$password='*****';
$location='http://*****/startphp';
$mycurl = curl_init ();
curl_setopt($mycurl,CURLOPT_URL,$location);
curl_setopt($mycurl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($mycurl,CURLOPT_USERPWD,"$username:$password");
curl_setopt($mycurl, CURLOPT_TIMEOUT, 10);
$result = curl_exec ($mycurl);
var_dump($result);
提前感谢!
CURLOPT_USERPWD
仅用于基本HTTP身份验证。
您将需要使用与服务相匹配的POST
命令。
$data = array('username' => 'User', 'password' => 'Pass');
curl_setopt($ch, CURLOPT_POST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
你还需要考虑存储该网站为你提供的SESSION
带有CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
选项