2016-04-17 2 views
2

Это какая-то сложная задача, потому что мне интересно, есть ли какой-либо способ доступа к моей следующей строке текстового файла каждый раз, когда я обновляю свой PHP-скрипт, не сохраняя последний счет в базе данных или локально внутри файла?Отображать следующую строку каждый раз, когда загружается скрипт PHP

Я знаю, это звучит глупо, но мне просто любопытно, есть ли какой-либо способ, который до сих пор не в моих силах.

ответ

2

Вы можете использовать Session/cookie для хранения текущей строки файла. Также вы можете взять текущую строку из своего запроса.

Например, Ваш URL будет: 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), "/"); 
} 
?> 
+0

не странно, мне нужно загружать с другим URL-адресом, но я не хочу менять свой URL каждый раз, а что? –

+0

Ты избил меня. Также полезно добавить клиентскую часть localStorage к ответу, поскольку апелляционный пользователь не управляет хранилищем на стороне клиента. – user1235831

+1

@ Mr.Z, чтобы вы сосредоточили внимание на сеансе или файле cookie. Если вы выберете параметр сеанса при закрытии браузера, ваш счетчик будет потерян, но если вы выберете файл cookie, ваш счетчик будет потерян при очистке ваших файлов cookie. – merdincz

1

Так что это идет туда, где ты? хотите сохранить, какую строку вы оставили в предыдущем сценарии. Существует несколько вариантов:

1- Запрос Строка, что означает сохранение ее в URL-адресе. Например: www.foo.com/index.php?line=5

2- Query String, а затем изменить URL. Тот же вариант, что и раньше, однако, если вы не хотите иметь? Line = 5 в конце, вы можете использовать некоторые php-функции, которые изменяют внешний вид URL-адреса. Вот ссылка, описывающая этот процесс: How to change appearance of URL from within a PHP script

3- Почтовый метод: это может быть то, что вы ищете. При отправке формы, информацию можно отправить на другой скрипт, используя «пост» метод, который не появляется в URL, и может быть получена с чем-то вроде:

<?php 
$lineNumber = $_POST['line']; 
?> 

Я полагаю, что если вы используете этот метод, вы хотели бы, чтобы сценарий выполнял это автоматически. Один из способов сделать это - с помощью javascript:

<script> 
    document.getElementById('dateForm').submit(); // SUBMIT FORM 
</script> 
+0

Да, метод 3 очень полезен в моем случае, Мердинц продемонстрировал это полностью –

Смежные вопросы