Задачки на PHP

9.67K
.
(\/)____o_O____(\/)

ДоХтор, альтернатива file()
file_get_contents()
получаем содержимое файла
explode()
делим содержимое на массив по переносу

.

Странно, эта связка

$data=file_get_contents('data.txt');
    //Получаем массив
    $arr=explode("\n",$data);

возвращает пустую первую страницу, а если в файле нет записей, то вместо "Записей нет" выводится только номер текущей страницы "[1]" .
.
(\/)____o_O____(\/)

ДоХтор, sizeof() count() считает количество элементов массива, проверки нужны , их стоит учитывать еще на этапе обдумывания скрипта

.

Koenig, Ну это само собой

$data=file_get_contents('data.txt');
    //Получаем массив
$arr=explode("\n",$data);
//Считаем элементы массива
    $all=sizeof($arr);


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

Но почему-то первая страница (как я писал выше) пуста.

.
(\/)____o_O____(\/)

ДоХтор, удали файл, может там из за старых экспериментов остались переносы например, попробуй разобраться в том коде, где пример гостевой на файлах

.

Koenig, ок, попробую.

.
Мастер PHP

У меня появилось огромная преграда как бы сказать
Не магу написать или реализовать скрипт шяс по точнее опишу
Вот есть модуль пользователи (естественно список пользователей)
1 Андрей
2 Муслим
3 Данил
Вот я не магу реализовать вот эту функцию

<a href="user/1">Данил</a>

При переходе показовала его анкету
.
# jaras (06.04.2014 / 19:21)
У меня появилось огромная преграда как бы сказать
Не магу написать или реализовать скрипт шяс по точнее опишу
Вот есть модуль пользователи (естественно список пользователей)
1 Андрей
2 Муслим
3
Через .htacccess сделай
RewriteRule ^user/([0-9]+)$ users/profile.php?user=$1 [L,QSA]
.
ДоХтор

Ориентируясь на MVC, переписал свою гостевуху
Модель: (func.php)

код (+/-)
<?php
session_start();
$data='data.txt';
//Если data.txt не существует, создаём новый
if (!file_exists($data)) file_put_contents($data, NULL);
$arr=file($data);
$all=sizeof($arr);
//Колл-во сообщений на странице
$mess_page=10;
//Определяем № текущей страницы
$page=(isset($_GET['page']))?(int)$_GET['page']:1;
//Определяем число страниц
$p_numb=ceil($all/$mess_page);
//Определяем начальную позицию
$start=$page*$mess_page-$mess_page;
//Проверяем номер страницы
if ($page>$p_numb||$page<1): $page=1; $start=0;
endif;
if (isset($_SESSION['log'])){ //Формируем переменные для автозаполнения полей
    list($log_name,$log_mail)=$_SESSION['log'];
    } else {
        $log_name='';
        $log_mail='';
        }
if (isset($_SESSION['err'])){ //Формируем переменные с ошибками
    list($err_name,$err_mail,$err_txt)=$_SESSION['err'];
    } else {
        $err_name='';
        $err_mail='';
        $err_txt='';
        }
unset($_SESSION['err']);
if (!empty($arr)){ //Заносим в массив посты в обратном порядке
    for ($i=$all-$start-1; $i>=$all-$start-$mess_page; $i--){
        if($arr[$i]==NULL) continue;
        $array[]=$arr[$i];
        }
    foreach ($array as $value){ //Форматируем данные для передачи в шаблон
        $val=explode('|',$value);
        $view.='<div class="post">';
        if (!empty($val[0])): $view.='<a href="mailto:'.$val[0].'"><b>'.$val[1].'</b></a><br />';
            else: $view.='<b>'.$val[1].'</b><br />';
            endif;
        $view.='<span class="small">'.$val[2].'</span><br />';
        $view.=$val[3].'<br />';
        $view.='<span class="small">'.$val[4].'</span></div>';
        }
    //Постраничная навигация
    $view_page.='<p>';
    $pr='';
    for ($i=1; $i<=$p_numb; $i++){
        $view_page.=$pr=(($i==1||$i==$p_numb||abs($i-$page)<2)?($i==$page?'['.$i.']':' <a href="'
                  .$_SERVER['SCRIPT_NAME'].'?page='.$i.'">'.$i.'</a> ')($pr==' ... '||$pr=='')?'':' ... '));
        }
    $view_page.='</p>';
    } else {
        $view='<div class="post"><p>Записей нет!</p></div>';
        }
$uri='?';
if ($_SERVER['QUERY_STRING']){ //Фильтруем адресную строку
    foreach($_GET as $key => $value):
        if($key !='act') $uri.=$key.'='.$value.'&amp;';
        endforeach;
    }
if ($_GET['act']=='smiles'): //Блок смайлов
    $smile='<img src="img/1.gif" align="absmiddle" /> :-) ';
    $smile.='<img src="img/2.gif" align="absmiddle" /> :-( ';
    $smile.='<img src="img/3.gif" align="absmiddle" /> :-/ ';
    $smile.='<img src="img/4.gif" align="absmiddle" /> :-O ';
    $smile.='<img src="img/5.gif" align="absmiddle" /> ;-) ';
    $smile.='<img src="img/6.gif" align="absmiddle" /> 8-) ';
    $smile.='<img src="img/7.gif" align="absmiddle" /> :-D <br />';
    $smile.='<a href="'.$_SERVER['HTTP_REFERER'].'">&laquo;&laquo;&laquo;</a><br />';
    else: $smile='<a href="'.$uri.'act=smiles"><img src="img/smiles.gif"  alt="Смайлы" /></a><br />';
    endif;
/////////////////////////////////////////////////////////////////////////////////////////////////////////
function replace($msg){
    //Замена служебных символов
    $arg1 = array("\n",'|','^');
    $arg2 = array('<br />',' ',' ');
    $msg = str_replace($arg1,$arg2,$msg);
    //Блок смайлов
$arg3 = array(':-)',':-(',':-/',':-O',';-)','8-)',':-D');
$arg4 = array('<img src="img/1.gif" align="absmiddle" />',
  '<img src="img/2.gif" align="absmiddle" />',
                  '<img src="img/3.gif" align="absmiddle" />',
                  '<img src="img/4.gif" align="absmiddle" />',
                  '<img src="img/5.gif" align="absmiddle" />',
                  '<img src="img/6.gif" align="absmiddle" />',
                  '<img src="img/7.gif" align="absmiddle" />');
    $msg = str_replace($arg3,$arg4,$msg);
    //Антимат
    $arg5 = array('хуй','пизда','пидор','пидар','пидр','вафел','гандон','сука','блядь','выебу',
                  'похер','блять','шмара','ебал','отсоси','ебу','ебись','отъеб','гнида','долбоеб',
                  'долбоёб','хуесос','охуел','х у й','п и з д а','п и д о р','п и д а р','п и д р',
                  'в а ф е л','г а н д о н','с у к а','б л я д ь','в ы е б у','п о х е р','б л я т ь',
                  'ш м а р а','е б а л','о т с о с и','е б у','е б и с ь','о т ъ е б','г н и д а',
                  'д о л б о е б','д о л б о ё б','х у е с о с','о х у е л');
    $arg6 = '<img src="img/cenzura.gif" align="absmiddle" alt="***" />';
    $msg = str_ireplace($arg5,$arg6,$msg);
    //ВВ-код
    $arg7 = array('','','','','','','','');
    $arg8 = array('<b>','</b>','<i>','</i>','<u>','</u>','<s>','</s>');
    $msg = str_replace($arg7,$arg8,$msg);
    return $msg;
    }
?>
Всего: 173