Взрослая социальная сеть
Текстовая версия форума
Знакомства для секса Регистрация


Исходники на PHP

Текстовая версия форума: Компьютеры, смартфоны, планшеты, игры, программы



Полная версия топика:
Исходники на PHP -> Компьютеры, смартфоны, планшеты, игры, программы


Страницы: [1]

Kanzler
Исходники на PHP выкладываем с кратким описанием...

Начну первым:

Для начала замечательный справочник по PHP. Описаны все основные функции. Рекомендую людям начинающим. Общий размер 416 кб.

Так как архивы *.rar загружать нельзя: скачайте все 4 файла. Переименуйте их расширение в .rar. И нажмите распоковать.


Первая часть.

Присоединённый файл
Присоединённый файл  bookphp.part01.zip
Kanzler
Вторая часть.

Присоединённый файл
Присоединённый файл  bookphp.part02.zip
Kanzler
Третья часть.

Присоединённый файл
Присоединённый файл  bookphp.part03.zip
Kanzler
Четвертая (последняя) часть.

Присоединённый файл
Присоединённый файл  bookphp.part04.zip
Kanzler
Функция для конвертирования ББ-кодов в HTML-код:

CODE


<?php

function bb_to_html($content) {

// Переносы строк
$content = str_replace("\n", "<br />", $content);
// Жирный, Курсив (Наклонный), Подчеркнутый, Перечеркнутый
$content = preg_replace("/\[B\](.+?)\[\/B\]/", "<b>\\1</b>", $content);
$content = preg_replace("/\[I\](.+?)\[\/I\]/", "<i>\\1</i>", $content);
$content = preg_replace("/\[U\](.+?)\[\/U\]/", "<u>\\1</u>", $content);
$content = preg_replace("/\[S\](.+?)\[\/S\]/", "<s>\\1</s>", $content);
// Размер шрифта
$content = preg_replace("/\[SIZE=(.+?)\](.+?)\[\/SIZE\]/", "<font size=\"\\1\">\\2</font>", $content);
// Цвет шрифта
$content = preg_replace("/\[COLOR=(.+?)\](.+?)\[\/COLOR\]/", "<font color=\"\\1\">\\2</font>", $content);
// Выравнивание (По левому краю, По центру, По правому краю)
$content = preg_replace("/\[LEFT\](.+?)\[\/LEFT\]/", "<div align=\"left\">\\1</div>", $content);
$content = preg_replace("/\[CENTER\](.+?)\[\/CENTER\]/", "<div align=\"center\">\\1</div>", $content);
$content = preg_replace("/\[RIGHT\](.+?)\[\/RIGHT\]/", "<div align=\"right\">\\1</div>", $content);
// Вставить изображение
$content = preg_replace("/\[IMG\](.+?)\[\/IMG\]/", "<img src=\"\\1\" border=\"0\">", $content);
// Цитата
$content = preg_replace("/\[Q\](.+?)\[\/Q\]/", "<b>Цитата:</b><br /><div class=\"quote\">\\1</div>", $content);
// Смайлики
$content = preg_replace("/\*(.+?)\*/", "<img src=\"/images/smiles/\\1.gif\" border=\"0\">", $content);

return $content;

}

// Тест функции
$text = "[COLOR=blue]TEXT[/COLOR]";
$text = bb_to_html($text);
echo $text;

?>

Kanzler
Данная функция выводит информацию о посетителе:
1. Обычный IP (Proxy)
2. Прямой IP (Реальный IP, если ипользовать специальный proxy - недоступен)
3. Откуда пришли
4. Куда пришли (Адрес странички, где запущен скрипт)
5. Браузер и ОС
6. Текущая дата
7. Статус gZip (Поддержка сжатия страниц браузером)

CODE

<?php

function user_info() {

// IP (Через Proxy)
$info['proxy_ip'] = $_SERVER['REMOTE_ADDR'];

// IP (Прямой)
$info['line_ip'] = $_SERVER['HTTP_X_FORWARDED_FOR'];

// Откуда пришли (Предыдущая страница)
$info['referer'] = $_SERVER['HTTP_REFERER'];

// Куда пришли (Адрес страницы, на которой выполняется этот скрипт)
$info['uri'] = $_SERVER['REQUEST_URI'];

// Браузер и ОС
$info['user_agent'] = $_SERVER['HTTP_USER_AGENT'];

// Текущая дата в формате "01.01.2006 | 00:00"
$info['date'] = date("d.m.Y | H:i");

// Статус gZip (Поддерживает ли браузер сжатие)
if ($_SERVER['SERVER_PROTOCOL'] == "HTTP/1.1") {
$info['gzip'] = 1;
} else {
$info['gzip'] = 0;
}

echo "<pre>";
print_r($info);
echo "</pre>";

}

user_info();

?>
Kanzler
Привожу функцию вывода случайной картинки. Чаще всего такая функция используется для вывода случайного баннера.

Условия:
1. Все картинки должны лежать в папке "banners" (Можно изменить)
2. Все картинки должны иметь одинаковый формат (В данном случае .gif, можно изменить)
3. Все картинки должны иметь названия типа 1.gif, 2.gif, 3.gif и т.д.

CODE

<?php

// Функция
function rand_img($count) {

$random = rand(1, $count);
$img = "banners/".$random.".gif"; // Здесь указываем папку и формат

echo "<img src=\"".$img."\" border=\"0\" />";

}

// Тест

rand_img(5); // 5 - количество баннеров в папке "banners"

?>


--------

Результат будет примерно такой:

CODE

<img src="banners/2.gif" border="0" />
Gold Man
Очень интересные алгоритмы. Грех плюс в репу не поставить... buba.gif
а зачем писать так?
echo "<img src=\"".$img."\" border=\"0\" />"; ???
ведь при использование двойных ковычек PHP исчет в нутри переменные и заменяет их на значения т.е. строки в двойных ковычках обрабатываються дольше...
можно было сделать так
echo '<img src="'.$img.'" border="0" />"; работает быстрее читабельность выше (т.к. нет слэшей перед кавычками)

а еще можно так показывать случайный банер

CODE
<?
//Массив с именами фаилов
$banners=array(
  'banner_1.gif',
  'banner_2.gif',
  'banner_3.gif',
  'banner_4.gif',
  'banner_5.gif',
  'banner_6.gif'
 );
//Выводим заголовок (банеры только в GIFe)
header("Content-type: image/gif");
//Читаем и выводим содержимое фаила, элемент массива выбераеться случайно
readfile ($_SERVER['DOCUMENT_ROOT'].'/banners/'.$banners[rand(0,count($banners)-1)]);
?>


результат работы скрипта - картинка т.е. скрипт нужно иуказывать в качестве src для img
CODE
<img src="banner.php" border="0">
ShadowS
Извините немножко не в тему но все же.
Пожалуйста посоветуйте какую нибудь книжку человеку который хочет научиться делать хорошие сайты на рНр
blablabla
QUOTE (ShadowS @ 19.04.2006 - время: 01:00)
Извините немножко не в тему но все же.
Пожалуйста посоветуйте какую нибудь книжку человеку который хочет научиться делать хорошие сайты на рНр

В самом начале Kanzler выложил 4 части справочника по пхп. И начинай с них_ bye1.gif
OutSideR
QUOTE (ShadowS @ 19.04.2006 - время: 00:00)
Извините немножко не в тему но все же.
Пожалуйста посоветуйте какую нибудь книжку человеку который хочет научиться делать хорошие сайты на рНр

В разделе "Компьютерная литература..., Раздел "Web" (web программирование и дизайн)" IT-Академии SexNarod.ru много хорошей литературы по PHP.
Загляни сюда
GrAnd
Пусть есть MySQL-выборка $result, отсортированная по какому либо ключу с именем $key. В этой выборке необходимо находить элементы с конкретным значением $value этого ключа и обрабатывать их. Либо начинать обработку начиная с найденного элемента. Либо обрабатывть ближайшее окружение найденного элемента.
Конкретно я использовал это в таком случае:
При формировании странички с информацией необходимо сформировать также ссылку на следующую и предыдущую информацию. Если бы информационные записи в БД имели порядковые номера, то проблем не было бы. Но они могут быть прорежены - начинаться нумерация может с 16, а потом идти 20, 36, 111 и т.д. Т.е. это даже не нумерация, а некий приоритет, определяющий порядок следования. Или вообще нумерация может быть не числовой, а буквенной. Забивать в каждую запись ключ следующей и предыдущей записи не следует, т.к. структура страниц динамическая и при добавлении/удалении страниц, а так же при изменении приоритетов следования, накладные расходы по поддержанию целостности и непротиворечивости этой избыточной информации могут быть значительными.
В этом случае, конечно, можно было бы получить сначала информацию по искомой записи, определить ее приоритет, а потом сделать 2 выборки - по записям с меньшим приоритетом и с большим. Но это не универсальный подход. И так же вместо одной выборки MySQL делает 3.
Поэтому при доступе к записи с ключом-приоритетом N необходимо в единственной выборке найти (если есть) информацию относящуюся к ней, а также найти значения ключей записей, которые ее окружают.
Вторая часть задачи решается легко, если уже найдена запись с искомым ключом. А найти ее удобнее всего в данном случае при помощи двоичного поиска. Двоичный поиск используется очень часто, но мало кто может реализовать его правильно и компактно.
Вот привожу маленький скрипт, который:
1. Находит в выборке номер (начиная с 0) самой первой записи с заданным значением ключа и возвращает этот номер.
2. Если заданный ключ не найден, то возвращается номер первой записи с значением ключа больше заданного.
3. Если все записи в выборке имеют значение ключа меньше заданного, то возвращается число записей в выборке (как бы номер записи, следующей за последней.

Ну а вот сама функция:
CODE
<?php

function message_die($errno, $error, $file, $line)
{
if ($errno)
{
 echo '<p><b>Error $errno $file($line):</b> $error';
 die();
}
}

function bin_search($result, $key, $value)
{
$l = 0; $r = @mysql_num_rows($result);

message_die(@mysql_errno(), @mysql_error(), __FILE__, __LINE__);

while ($l != $r)
{
 $m = ($l + $r) >> 1;

 @mysql_data_seek($result, $m);

 message_die(@mysql_errno(), @mysql_error(), __FILE__, __LINE__);

 $row = @mysql_fetch_assoc($result);

 message_die(@mysql_errno(), @mysql_error(), __FILE__, __LINE__);

 if ($row[$key] < $value)
 {
  $l = $m + 1;
 }
 else
 {
  $r = $m;
 }
}

return $r;
}

?>

Kom_JIeonoJIbg
В продолжение темы о случайном выводе баннеров:
QUOTE
<?php
function bs($dr){
$dir=opendir($dr);
$banners=array();
while(false!==($fl=readdir($dir))){
//добавляем в массив только файлы с "баннерными" расширениями (JPG, GIF)
//каталоги пропускаются
//т. е. совместно с баннерами в той же папке могут
//быть любые другие файлы
if($fl!="." && $fl!=".." && !is_dir($dr.'/'.$fl) && preg_match("/^\d*\.jpg|\w*\.jpg|\d*\.gif|\w*\.gif/i", $fl)){
$banners[]=$fl;
}
}
closedir($dir);
return $banners;//массив подходящих файлов в директории $dr
}

$banners=bs('./ip');
$random=rand(0, sizeof($banners)-1);
echo '<img src="http://docs.loc/scripts/view_banners/ip/'.$banners[$random].'">';//примерно такой результат
?>
Аrtur
Предотвращает проведение XSS атак, осуществляемых манипуляциями строкой браузера.

CODE

function xss () {
   $url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
   if ($url) {
       if ((strpos($url, '<') !== false) ||
           (strpos($url, '>') !== false) ||
           (strpos($url, '"') !== false) ||
           (strpos($url, './') !== false) ||
           (strpos($url, '../') !== false) ||
           (strpos($url, '\'') !== false) ||
           (strpos($url, '.php') !== false)
          )
       {
       die("Hack!");
       }
   }
}


Вызывать до начала работы основной части скрипта.

Это сообщение отредактировал Аrtur - 01-12-2006 - 00:38
Kom_JIeonoJIbg
возвращает массив файлов в директории с определённым расширением, в данном случае с расширением, содержащим только алфавитные символы (определяемые символом \w):
$dr - путь и название директории.
QUOTE
<?php function filesindir($dr){
$dir=opendir($dr);
$ary=array();
while(false!==($fl=readdir($dir))){
if($fl!="." && $fl!=".." && !preg_match("/^.*\.\w*//*i", $fl) && !is_dir($dr.'/'.$fl)){
$ary[]=$fl;
}
}
closedir($dir);
return $ary;
}?>

и, чтобы несколько сообщений не оставлять, ещё одна функция:
Скрипт для перевода текста из транслита и обратно.
Синтаксис:
translate($string, $type, $yes_no, $ary);
$string - текст, который нужно перетранслировать.
$type - тип транслита, возможные значения: 'ru' - из
транслита сделать русский текст и 'tr' - наоборот.
$yes_no - подключать или нет внешние массивы.
$ary - подключаемый массив (такой же структуры, как и встроенный).
QUOTE
<?php
function translate($string, $type, $yes_no, $ary){
if(!$yes_no){
$trans_s=array('\'','yo','zh','sh','ch','sch','ye','yu','ya','a','b','v','g','d','e','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c','`','y');
$kir_s=array('ь','ё','ж','ш','ч','щ','э','ю','я','а','б','в','г','д','е','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ъ','ы');
$trans_p=array('\'','Yo','Zh','Sh','Ch','Sch','Ye','Yu','Ya','A','B','V','G','D','E','Z','I','J','K','L','M','N','O','P','R','S','T','U','F','H','C','Y');
$kir_p=array('Ь','Ё','Ж','Ш','Ч','Щ','Э','Ю','Я','А','Б','В','Г','Д','Е','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ы');
}elseif($yes_no){
$trans_s=$ary['trans_s'];
$kir_s=$ary['kir_s'];
$trans_p=$ary['trans_p'];
$kir_p=$ary['kir_p'];
}
if($type=='ru'){
$string=str_replace($trans_s, $kir_s, $string);
$string=str_replace($trans_p, $kir_p, $string);
}elseif($type=='tr'){
$string=str_replace($kir_s, $trans_s, $string);
$string=str_replace($kir_p, $trans_p, $string);
}
return $string;
}
?>


ЗЫ: эм.. первую функцию я уже приводил.. ну ладно, тогда это описание к ней )

Это сообщение отредактировал Kom_JIeonoJIbg - 02-12-2006 - 03:00
Volonter-dic
а ПХП вообще трудный язык?
Platinum PROFI
Хех. Что есть в твоем понимании сложный? Всё, что нужно - логика и PHP-интерпретатор.wink.gif А просто и легко нигде вначале не бывает, профессионализм приходит со временем...

P.S. Ты более конкретные чтоль вопросы задавай... wink.gif
GOTOFF
Скрипт позволяющий создавать сервис загрузок картинок.


Присоединённый файл
Присоединённый файл  Imageshack_Clone_Script.zip
c0d3r
Скрипт для проверки состояния апача и псибнц. На фёрствдс очень актуально в связи с постоянными падениями соединений на их дедиках
CODE

<?php
$host='mysite.ru';
$psyuser='psy';
$ch=curl_init('http://'.$host);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$a=curl_exec($ch);
if($a===false){
exec('httpd -k restart');
}
if(!@fsockopen('127.0.0.1',31337)) exec('su '.$psyuser.' -c \'cd /home/'.$psyuser.'/psybnc/; ./psybnc\'');

?>


парсер дубликатов строк из текстовых файлов,с сортировкой

CODE

<?
$foutname = 'out.txt';
$filename = "in.txt";
$strings = file($filename);
$strings = array_map('trim', $strings);
$strings2 = array_unique($strings);
asort($strings2);
$file_out = fopen($foutname, "w");
foreach($strings2 as $value) {
fputs($file_out, $value."\n"); }
fclose($file_out);
?>


Это сообщение отредактировал c0d3r - 19-03-2007 - 19:39
Kom_JIeonoJIbg
CODE
<?php
$ex=explode("\n",file_get_contents('m.txt'));
$ary=array();
foreach($ex as $v){
$ary[$v]=strlen($v);
}
natcasesort($ary);
$fp=fopen('ms.txt','w');
foreach($ary as $k=>$v){
fputs($fp,$k."\n");
}
fclose($fp);
?>

сортирует строки из файла (m.txt) по их длине и пишет результат в 'ms.txt';
да, тут нужно изменить символы переноса строки на нужные:)
для винды, например, - "\r\n" (если мне память не отшибло..)
AngelAlex
QUOTE (Kom_JIeonoJIbg @ 17.02.2009 - время: 14:03)
<?php
$ex=explode("\n",file_get_contents('m.txt'));
$ary=array();
.......
для винды, например, - "\r\n" (если мне память не отшибло..)


я бы предложил вместо

CODE

$ex=explode("\n",file_get_contents('m.txt'));


использовать

CODE

$ex=file('m.txt');



отпадёт необходимость в выборе нужных символов 00064.gif

Это сообщение отредактировал AngelAlex - 30-06-2010 - 15:50

Страницы: [1]

Компьютеры, смартфоны, планшеты, игры, программы -> Исходники на PHP





Проститутки Киева | индивидуалки Москвы | Эротический массаж в Москве | Проститутки-индивидуалки Москва