如何使用PHP在外部页面中找到特定单词?此页面受登录区域保护。有可能做点什么吗?
<?php
$v = file_get_contents("http://it.website.com");
echo substr_count($v, 'web'); // number of occurences
//or single match
echo substr_count($v, ' abcd ');
?>
我的问题是自动传递登录信息..
登录表单:
<form name="login" action="/login.php" method="post" onsubmit="return check(this);">
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label>Email o Nome utente</label>
<input type="text" value="" name="user_email" class="form-control input-lg">
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label>Password</label>
<input type="password" value="" name="user_pass" class="form-control input-lg">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="submit" value="Accedi" name="login" class="btn btn-primary pull-right push-bottom" data-loading-text="Loading...">
<input type="hidden" name="mode" value="checklogin" id="login">
</div>
</div>
答案 0 :(得分:1)
你可以试试这个代码片段(需要PHP 5+,旧版本请问)。
当按下 Accedi 按钮时,它会发送一个POST请求:< / p>
$url = 'http://it.website.com/login.php';
$para = array(
'user_email' => 'myname@example.com',
'user_pass' => 'MySuperSecretPassword',
'mode' => 'checklogin', // the hidden field in the form
);
$opts = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($para),
)
);
$ctxt = stream_context_create($opts);
$page = file_get_contents($url, false, $ctxt);
if ($page !== false) {
// $page contains the page returned by the web server
echo substr_count($page, ' abcd ');
echo substr_count($page, 'web');
}
注意: user_email , user_pass ,隐藏的模式字段和网址 /login.php 取自&lt; form&gt; ...&lt; / form&gt;码。也许最好看一下检查(this); 功能。