如何用PHP在外部网站上找到一个单词

时间:2016-01-11 20:48:22

标签: php find word

如何使用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>

1 个答案:

答案 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); 功能。