ramzes, я убрал DOMDocument и вроде даже нагрузка упала
preg_match_all('/<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU', $html, $match);
такая у меня, в обработчик добавил изоляцию javascript ссылок
ramzes, я убрал DOMDocument и вроде даже нагрузка упала
preg_match_all('/<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU', $html, $match);
такая у меня, в обработчик добавил изоляцию javascript ссылок
jaras, напиши коментарии, предусмотри чтоб можно было привязывать к чему угодно, удаление, обновление, добавление записей, или например новости сайта, с картинкой и коментами )))
вообще глянь в раздел напишите за меня
может там есть что интересное и не реализованое
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>© ДоХтор </p>
</div>
</div>
</body>
</html>
<?php
//При обновлении страницы очищаем массив ошибок
if (empty($_POST)){
unset($_SESSION['err'][0],$_SESSION['err'][1],$_SESSION['err'][2]);
}//Инициируем сессию
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");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;
}<!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>© ДоХтор </p>
</div>
</div>
</body>
</html>@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;
}Кому лень копировать - вот архив. Пишите отзывы, это первая моя гостевуха.