вот, понадобилось тут. выставляю на строгий суд. ну и вообще может понадобиться кому(вообще тут могут быть глюки конструкторе и в предпоследнем методе, т.к. я их не тестил, пока) PHP: <?php Class Pseudorandom{ private $array_divisor=array(); private $key; private $id=array(); private $array_free=array(); private $array_required=array(); private $count_free; private $count_required; private $count_all; private $date; private $page; private $array_free_id=array(); private $array_required_id=array(); private $array_answer=array(); private $sql; private $truy; function __construct($table, $flag, $date, $page, $how_many){ $this->sql=NEW Sql(); $this->date=$date; $this->page=$page; $result=$this->sql->Execute("SELECT * FROM ".$table); WHILE ($row=mysql_fetch_array($result, MYSQL_ASSOC)){ IF($how_many=='all')$row[$flag]=1; IF ($row[$flag]==0 OR $row[$flag]==''){ $this->array_free_id[]=$row['id']; $this->array_free[]=$row; //массив из которого надо выбирать } ELSE { $this->array_required_id[]=$row['id']; $this->array_required[]=$row; //массив обязательный к отображению } } IF($how_many!='all'){ $this->count_free=count($this->array_free); $this->count_required=count($this->array_required); $this->count_all=$this->count_required+$this->count_free; $P=3746592653589;//просто строка=)) FOR ($i=0; $i<$how_many; $i++){ $this->array_divisor[$i]=substr($P, $i, 1); //массив для деления } $this->dateAndPage(); $this->genId($how_many); echo mysql_error(); } } function dateAndPage(){ $this->date=explode(".", $this->date); $this->page=substr($this->page,0, -4); $d_page=strlen($this->page); $d_page=$d_page-1; FOR($i=0; $i<=$d_page;$i++){ $ord_page[$i]=ord(substr($this->page, $i, 1)); } $res=array_merge_recursive($this->date, $ord_page); //формируем ключ $this->key=implode("",$res); } function genId($how_many){ $width=strlen($this->count_all); FOR ($i=0; $i<$how_many; $i++){ //echo '<br>'; $this->truy=1; $use_key=$this->key/$this->array_divisor[$i]/10000; $this->genAndTest($use_key, $width); } } function genAndTest($use_key, $width){ $truy_id=substr($use_key, 5, $width); WHILE ($this->count_all<$truy_id){ $truy_id=$truy_id-$this->count_all+1; } //echo '|'.$truy_id.'|'; IF (in_array($truy_id, $this->array_free_id) AND !in_array($truy_id, $this->id)){ IF(substr($truy_id,0,1)==0 AND strlen($truy_id)!==1)$truy_id=substr($truy_id,1,1);//прада только до тех пор, пока работаем не более чем с двух значными айди $this->id[]=$truy_id; } ELSE { $this->truy=$this->truy+1; $use_key=sqrt($use_key); IF ($this->truy<1000){ $use_key=$use_key*$this->truy*4*100; $this->genAndTest($use_key, $width); } } } function formAnswer($how_many){ $this->array_answer=$this->array_required; FOR ($i=0; $i<=$this->count_free; $i++){ IF(in_array($this->array_free[$i]['id'], $this->id)) $this->array_answer[]=$this->array_free[$i]; } } function get($how_many){ $this->formAnswer($how_many); return $this->array_answer; } } доработано и отлажено
А можно подробнее? Что-то я не слышал ничего об. этом.. т.е. для того, чтобы лучше индексировалось необходимо как-то обновлять страницы? на что именно поисковики обращают внимание?
что это-то понятно, в принципе... Вот только куда это предполагается воткнуть? В хтпле который собирается скриптом? куда-нить в mime?
ну, как бе это практически коммерческая тайна=) но ShamahN практически догадался. это генерация контента из заранее установлены вариантов. поисковики любят новизну=) флоппик нет, нельзя, так как в течении дня контент должен оставаться не изменым=)
флоппик ну, ТЗ разрабатывал не я. да. кстати, с rand() можно, но тогда надо обновлять раз в сутки, писать куда-то... в общем решил так сделать... да, и интересно было задачку решить=)
sylex она выдаёт айдишник, ну плюс собирает массив из нужных данных. если приглядишься увидишь=) упрость наверное можно, например не превращать название страници в число, а просто делать хешь названия и даты=) если придумаешь проще, буду благодарен=))
флоппик возможно, но учиться как-то надо? а если писать только однотипные скриптики, не чему не научишься...
GudGuy Молодец, постарался. Для учебы пиши полезные скрипты (например, оригинальную реализацию учета новых тем на форуме)))
[vs] Спасибо=)) но, мне за это ещё и денег платят Psih да, спасибо, что поправил=) чего-то я лоханулся=)