每当PHP脚本加载时显示下一行
这是一个具有挑战性的任务,因为我想知道是否有任何方法可以在每次刷新我的php脚本时访问我的下一行文本文件,而不会将最后一个计数存储到数据库或本地在一个文件中?每当PHP脚本加载时显示下一行
我知道这听起来很愚蠢,但我只是好奇,如果有什么方法仍然不是我所知道的。
您可以使用会话/ cookie来存储当前文件行。你也可以从你的请求中获取当前行。
例如,您的网址是:file.php线= 1,每刷新你重定向你的网页file.php线= 2
<?php
$counter = "counter4";
if(!isset($_COOKIE[$counter])) {
setcookie($counter, 1, time() + (86400 * 365), "/");
echo "Current Line number: 1";
} else {
$val = (int)$_COOKIE[$counter];
//Increase line number;
$val++;
echo "Next Line number: " . $val;
//make your file process
//at the and set new line number
setcookie($counter, $val, time() + (86400 * 365), "/");
}
?>
所以这个下降到你?想要存储您从以前的脚本中删除的哪一行。有几个选项:
1-查询字符串,这意味着将其保存在url中。例如:www.foo.com/index.php?line=5
2-查询字符串,然后更改URL。 和以前一样,但是如果你不想在最后使用?line = 5,你可以使用一些php函数来改变URL的外观。以下是描述该过程的链接: How to change appearance of URL from within a PHP script
3-发布方法:这可能是您正在查找的内容。当提交表单时,可以将信息发送给使用不出现在URL中的“POST”方法的另一个PHP脚本,并能与像检索:
<?php
$lineNumber = $_POST['line'];
?>
我认为如果你使用这个方法,你会希望脚本自动执行。一种方法,你可以做到这一点与javascript:
<script>
document.getElementById('dateForm').submit(); // SUBMIT FORM
</script>
是的,方法3对我来说确实有用,merdincz彻底地展示了它 –
是不是很奇怪,我必须加载不同的网址,但我不想每次改变我的网址然后呢? –
你打败了我。由于提交者并未将客户端存储排除在外,因此将客户端localStorage添加到答案中也不错。 – user1235831
@ Mr.Z所以你应该专注于会话或cookie。如果您在关闭浏览器时选择会话选项,您的计数器将会丢失,但是如果您选择cookie,则只有当您清除cookie时,计数器才会丢失。 – merdincz