Задачки на PHP

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

ramzes, я убрал DOMDocument и вроде даже нагрузка упала
preg_match_all('/<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU', $html, $match);
такая у меня, в обработчик добавил изоляцию javascript ссылок

.
Мастер PHP
Напишите задание связанный с джоном
Несложный скрипт среднего уровня
Кроме
- ЗЦ
- Фотобатл
- Граб
- Парсер
- Гостевая уже была
- Форум зачем изобретать велосипед
А остальное думою можно
.
(\/)____o_O____(\/)

jaras, напиши коментарии, предусмотри чтоб можно было привязывать к чему угодно, удаление, обновление, добавление записей, или например новости сайта, с картинкой и коментами )))
вообще глянь в раздел напишите за меня
может там есть что интересное и не реализованое

.
(\/)____o_O____(\/)

jaras, попробуй что нибудь с датами, например календарь, или напоминалку с календарем, как в телефоне заметки, или что нибудь со строками и массивами, текстовый редактор

.
ДоХтор

Вот моя Гостевуха ))

index.php

код (+/-)
session_start() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>Гостевая</title>
</head>
<body>
    <div class="top">
        <div class="top-2">
            <h2>Гостевая</h2>
        </div>
    </div>
    <div class="mess">
    <?php
    //Считываем файл в массив
    $arr=file('data.txt');
    //Считаем элементы массива
    $all=count($arr);
    //Колл-во сообщений на странице
    $mess_page=3;
    //Определяем № текущей страницы
    $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;
    }
    if ($all){ //Заносим в "$str" посты в обратном порядке
        for ($i=$all-$start-1; $i>=$all-$start-$mess_page; $i--){
            $str.=$arr[$i].'^';
        }
        //Получаем массив
        $array=explode('^',$str);
        //Разбираем массив на значения
        foreach ($array as $val){
            //Если поле "имя" пустое, прерываем цикл
            if ($val[1]=='') break;
            //Форматируем и выводим содержимое
            $val=explode('|',$val);
            echo '<div class="post">';
            if (!empty($val[0])){
                echo '<a href="mailto:'.$val[0].'"><b>'.$val[1].'</b></a><br />';
            } else {
                echo '<b>'.$val[1].'</b><br />';
            }
            echo '<span class="small">'.$val[2].'</span><br />';
            echo $val[3].'<br />';
            echo '<span class="small">'.$val[4].'</span></div>';
        }
        //Постраничная навигация
        echo '<p>';
        $pr='';
        for ($i=1; $i<=$p_numb; $i++){
            echo $pr=(($i==1||$i==$p_numb||abs($i-$page)<2)?($i==$page?'['.$i.']':' <a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$i.'">'.$i.'</a> ')($pr==' ... '||$pr=='')?'':' ... '));
        }
        echo '</p>';
    } else {
        echo '<div class="post"><p>Записей нет!</p></div>';
    }
    ?>
    <div class="post">
    <fieldset>
<legend>Заполните форму</legend>
<form action="mybook.php"  method="post">
Введите имя(max-20)*<br />
<input type="text" name="login" value="<?=$_SESSION['log'][0]?>" maxlength="20" />
<span class="red"><?=$_SESSION['err'][0]?></span><br />
Введите E-Mail(max-25)<br />
<input type="text" name="email" value="<?=$_SESSION['log'][1]?>" maxlength="25" />
<span class="red"><?=$_SESSION['err'][1]?></span><br />
Введите сообщение*<br />
            <a href="smile.php"><img src="img/smiles.gif"  alt="Смайлы" /></a><br />
<textarea rows="10" cols="47" name="msg"></textarea><br />
<span class="red"><?=$_SESSION['err'][2]?></span><br />
<input type="submit" value="Отправить" />
</form>
</fieldset>
    </div>
    </div>
    <div class="bottom">
        <div class="bottom-2">
            <p>&copy; ДоХтор </p>
        </div>
    </div>
</body>
</html>
<?php
    //При обновлении страницы очищаем массив ошибок
    if (empty($_POST)){
    unset($_SESSION['err'][0],$_SESSION['err'][1],$_SESSION['err'][2]);
    }
Прикрепленные файлы:
.
ДоХтор
mybook.php
код (+/-)
//Инициируем сессию
    session_start();
    //Формируем массив для автозаполнения полей "имя" и "E-Mail"
    $_SESSION['log']=array($_POST['login'],$_POST['email']);
    //Если кнопка нажата
    if (isset($_POST)){
        //Подключаем файл с функциями
        require('func.php');
        //Удаляем пробелы и преобразуем спецсимволы 
        $login = trim(htmlspecialchars($_POST['login']));
        $email = trim(htmlspecialchars($_POST['email']));
        $msg = trim(htmlspecialchars($_POST['msg']));
        //Обрабатываем переменную "$msg" пользоват.функ-ей(см.файл func.php)
        $msg = replace($msg);
        //Получаем дату и время
        $date = date('Y.m.d - H:i:s');
        //Определяем IP
        $ip = $_SERVER['REMOTE_ADDR'];
        //Присваиваем через разделитель все данные в одну переменную
        $str = $email.'|'.$login.'|'.$date.'|'.$msg.'|ip: '.$ip."\n";
        //Формируем массив с ошибками
        if (empty($login)){
            $_SESSION['err'][0]='Введите имя!';
        }
        if (!empty($email)){
            if (preg_match('/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i',$email)==FALSE){
            $_SESSION['err'][1]='Некорректный E-Mail!';
            }
        }
        if (empty($msg)){
            $_SESSION['err'][2]='Введите сообщение!';
        }
        //Если поля "имя","сообщение" непусты,и пуст массив ошибок E-Mail
        if (!empty($login) && !empty($msg) && empty($_SESSION['err'][1])){
            //Записываем строку в конец файла
            file_put_contents('data.txt', $str, FILE_APPEND);
        }

    }
    //Возвращаемся на страницу с формой
    header("Location: index.php");
Прикрепленные файлы:
.
ДоХтор
func.php
код (+/-)
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;
    }
Прикрепленные файлы:
.
ДоХтор
smile.php
код (+/-)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>Смайлы</title>
</head>
<body>
    <div class="top">
        <div class="top-2">
            <h2>Смайлы</h2>
        </div>
    </div>
<div class="mess">
<p><img src="img/1.gif" align="absmiddle" /> :-)</p>
<p><img src="img/2.gif" align="absmiddle" /> :-(</p>
<p><img src="img/3.gif" align="absmiddle" /> :-/</p>
<p><img src="img/4.gif" align="absmiddle" /> :-O</p>
<p><img src="img/5.gif" align="absmiddle" /> ;-)</p>
<p><img src="img/6.gif" align="absmiddle" /> 8-)</p>
<p><img src="img/7.gif" align="absmiddle" /> :-D</p>
<?php
    echo '<div class="post"><p><a href="'.$_SERVER['HTTP_REFERER'].'">Назад</a></p></div>';
?>
</div>
    <div class="bottom">
        <div class="bottom-2">
            <p>&copy; ДоХтор </p>
        </div>
    </div>
</body>
</html>
Прикрепленные файлы:
.
ДоХтор
style.css
код (+/-)
@charset "utf-8";
/* CSS Document */

/* @import url(reset.css); */

/*General styles*/
html {
height: 100%; /*высота страницы*/
}
body {
background: #ddf2ec; /*цвет фона*/
font-family: Arial, Helvetica, sans-serif; /*семейство шрифтов*/
font-size: 14px; /*размер шрифта*/
color:#566; /*цвет текста*/
padding: 10px 0 30px; /*отступ сверху и снизу*/
}
p {
    font-style: italic;
    font-weight: 600;
font-size: 14px; /*размер шрифта параграфа*/
color: gray; /*цвет текста*/
    padding: 0 0 0 10px;
margin-top: 2px;
}
a {
text-decoration: none; /*Убираем подчеркивание у ссылок*/
outline: none; /*устанавливаем цвет, стиль и толщину внешней границы*/
color: #0084cf; /*цвет ссылок*/
font-size: 14px; /*размер шрифта ссылок*/
}
a:hover { /*ссылки при наведении*/
text-decoration: none; /*Убираем подчеркивание у ссылок*/
outline: none; /*устанавливаем цвет, стиль и толщину внешней границы*/
color: #cf002c; /*цвет ссылок*/
font-size: 14px; /*размер шрифта ссылок*/
}
.clear {
clear: both;
}
h2 {
    font-style: italic;
    text-align: center;
}

.red {
    color: #FF3C3C;
    font-style: italic;
}
.top {
    border: 1px ridge #60F; /*Параметры границы */
background: #D1FEBC; /* Цвет фона */
padding: 5px 5px 5px 5px;  /*Поля вокруг текста */
margin: 2px auto;
}
.top-2 {
background: #D5D6FF; /* Цвет фона */
margin: 4px;
    padding: 1px 5px;
}
.mess {
    border: 1px ridge #60F; /*Параметры границы */
/*    background: url(img/bg.png); */
background: #D1FEBC; /* Цвет фона */
padding: 5px; /* Поля вокруг текста */
margin: 0 auto;
}
.post {
    color: #005959;
background: #D5D6FF; /* Цвет фона */
padding: 8px; /* Отступы */
margin: 6px 4px; /* Поля вокруг текста */
    word-wrap: break-word; /*Перевод на новую строку*/
}
.bottom {
    border: 1px ridge #60F; /*Параметры границы */
background: #D1FEBC; /* Цвет фона */
padding: 5px; /* Поля вокруг текста */
margin: 2px auto;
    text-align: center;
}
.bottom-2 {
background: #D5D6FF; /* Цвет фона */
margin: 4px;
    padding: 1px 5px;
}
.small{
    font-variant: small-caps;
}
Прикрепленные файлы:
.

Кому лень копировать - вот архив. Пишите отзывы, это первая моя гостевуха.

Прикрепленные файлы:
Всего: 173