我搜遍了所有人,但没有看到任何与此问题有关的内容。我有一个curl脚本,从网站获取一个随机生成的10个字符的字符串。我已获得网站所有者的许可,可以获取此数据并将其显示在我的博客上。我的问题是,当用户访问我的网站时,它显示字符串,如果他们刷新页面,它将显示一个新字符串。如何为每个用户限制一个字符串,以便它们无法反复刷新以获取多个字符串?
以下是我的代码所基于的示例:
$url = "http://m.www.yahoo.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
preg_match('/<dl class="markets clearfix strong small">(.*)<\/dl>/is', $output, $matches);
echo $matches[0];
curl_close($ch);
答案 0 :(得分:0)
也许您可以使用会话变量来检查用户是否已经有一个字符串。
function startSession(){
$id = session_id();
if ($id != '')
session_write_close();
if (isset($_COOKIE['PHPSESSID']) && $id != $_COOKIE['PHPSESSID']) {
session_write_close();
session_id($_COOKIE['PHPSESSID']);
}
session_start();
}
//Start your sessions
startSession();
if (!$_SESSION['UserGotAString']) {
echo "Some Error msg"
return;
}
session_write_close();
//Request to Yahoo and regex match comes here..
// Start a session
startSession();
$_SESSION['UserGotAString'] = true
echo $matches[0];
session_write_close();
我不确定这是不是一个好方法。此外,如果您想基于计时器重置会话变量,请检查此链接 Set timeout in php