Подскажите по PHP

seomunch
На сайте с 21.11.2008
Offline
60
549

Скрипт выводит случайную фразу из файла. Делает он это каждый раз при обновлении страницы. Как/Что/Куда дописать, чтобы выводить информацию раз в сутки?

Вот код

<?php
$f_contents = file ("slogans.txt");
$line = $f_contents[array_rand ($f_contents)];
print $line;
?>
Банк времени (http://bank-vremeni.ru) - обменивайся своими возможностями с другими
DP
На сайте с 24.04.2012
Offline
16
#1


<?
$today = date("dmY", time());
if(!isset($_COOKIE['lastshown']) || $_COOKIE['lastshown'] != $today)
{
setcookie("lastshown", $today, time()+60*60*48);
$f_contents = file ("slogans.txt");
$line = $f_contents[array_rand ($f_contents)];
print $line;
}
?>
IL
На сайте с 20.04.2007
Offline
435
#2

На всякий случай.. seomunch, в варианте, предложенном developer_php фразы у разных посетителей в одно и то же время могут различаться (легко проверить, открыв сайт в разных браузерах)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
anatolytver
На сайте с 12.01.2008
Offline
50
#3
developer_php:

<?
$today = date("dmY");
if(!isset($_COOKIE['lastshown']) || $_COOKIE['lastshown'] != $today)
{
...
}
?>

Фишка в том, что если ТС хочет, чтобы и роботы поисковиков тоже видели меняющуюся фразу раз в сутки, а не при каждом заходе, то этот код не сработает, т.к. роботы Cookies как правило не возвращают.

Поэтому, лучше будет использовать что-нибудь вроде этого:



<?
$today = date("dmY");
$phrase_filename="fraza_dnya.txt";

$phrase=file_get_contents($phrase_filename);
$phrase=unserialize($phrase);

if($phrase['date']==$today) {

echo $phrase['text'];

}
else {

$phrase['text']=get_new_phrase(); // Здесь вставить кусок кода, получающий новую случайную фразу

$phrase['date']=$today;
$phrase_save=serialize($phrase);
$file=fopen($phrase_filename,"w");
fwrite($file,$phrase_save);
fclose($file);

echo $phrase['text'];


}


?>

Этот код будет хранить фразу в файле, и генерировать и сохранять туда новую фразу при смене суток.

С точки зрения работы с поисковиками данный способ надежнее.

DiAksID
На сайте с 02.08.2008
Offline
236
#4
anatolytver:
... т.к. роботы Cookies как правило не возвращают...

1. не "не возвращают", а "не сохраняют";

2. не "как правило", а "принципиально";

show must go on !!!...
anatolytver
На сайте с 12.01.2008
Offline
50
#5
DiAksID:
1. не "не возвращают", а "не сохраняют";

2. не "как правило", а "принципиально";

Понял, подучу терминологию :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий