Всем, кто начинал программировать на php сталкивался с проблемой с одной стороны знаний php ещё не хватает, чтобы самому писать полезные скрипты с другой найти нужный php скрипт в Инете довольно сложно. Здесь я буду выкладывать полезные скрипты, которые вам возможно пригодятся. Все скрипты написаны личной мной, на своих сайтах можете использовать сколько угодно, распространять в Инете тоже, но обязательно указать при распространение автора и прямую ссылку на сайт http://vedenin.ru, либо ссылку на любой поддомен из
http://all.vedenin.ru (и условия распространения скриптов).
Конечно, в эту темы вы тоже можно выкладывать другие скрипты (только укажите какие условия использования скриптов).
Примерный шаблон описания скриптов ниже:
P.S. Если хотите поблагодарить поставьте ссылку на любой мой сайт где угодно, хоть на своем сайте, хоть на форуме или ЖЖ ...
P.S. Внимание: Для обсуждения скриптов используйте тему Полезные скрипты на php (обсуждение) в этом же разделе, здесь пожалуйста выкладывайте только скрипты на PHP _________________ Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)
Описание скрипта: Скрипт определяет сколько страниц проиндексировано Yandex'om у указанного сайта
Пример вызова функции: getRecCountYandex('vedenin.ru');
Параметры функции: $psite - сайт у которого надо определить кол-во проиндексированызх страниц в Yandes'e
Комментарий: Не забывайтея, что при слишком частом обращение к Yandex'y могут заблокировать ваш ip адес.
Не рекомендуется посылать больше десяти запросов в секунду.
Описание скрипта: Скрипт позволяет спрятать ссылки проданные на какой - либо бирже от простукивания (см ).
Внимание скрипт работает только с если к большинству страниц можно обратится без парамеров. (т.е. Большинстро страниц вида http://vedenin.ru/find.php, а не http://vedenin.ru/find.php?id=1 ).
Для более подробной информации смотрите тему: Как спрятать проданные ссылки!
Пример вызова функции: hidenLink1('vedenin.ru','id','mail');
Параметры функции: $psite - ваш сайт, $pkey1,$pkey2 - параметры которые могут встречатся на сайте (если необходимо большие кол-во параметров нужно добавить в вызов функции $pkeyN и в оператор if строчку strlen($_REQUEST[$pkeyN])==0 &&
)
Комментарий: Внимание вызов функции должен быть до любого HTML вывода, лучше всего первой строчкой файла.
Описание скрипта: Скрипт позволяет спрятать ссылки проданные на какой - либо бирже от простукивания (см ).
Скрипт работает см любым url, но необходимо перечислить все возможные парамерты метода POST, которые бывают у страниц сайта.
Для более подробной информации смотрите тему: Как спрятать проданные ссылки!
Пример вызова функции: hidenLink2('http://vedenin.ru','@id@key@mail@viewtopic@');
Параметры функции: $domain - ваш сайт, $prm - список всех возможных параметров которые могут принимать страницы вашего сайта разделыные @
(внимание обязательно наличие @ вначале и конце строки параметров и учтите, важно указать
ВСЕ параметры у ВСЕХ страниц сайта или ставить этот код только на страницы, где параметры известны)
Комментарий: Внимание вызов функции должен быть до любого HTML вывода, лучше всего первой строчкой файла.
Описание скрипта: Этот скрипт позволяет заменить прямые ссылки на ссылки,
через переадресацию. Это необходимо, для того чтобы "спрятать" нежелательные
внешние ссылки от поисковиков.
Комментарий:
Скрипт надо разместить в отдельном php файле (например click.php,
желательно чтобы этот файл лежал в каталоге неиндексируемым поисковиками,например nodata),
чтобы установить ссылку через переадресацию надо использовать ссылку вида http://ваш_cайт/noindex/click.php?url=http://test.php?id=5&key=6
Обратите внимание: url= всегда должен быть первым параметром, после него можно использовать любой допустимый url страницы с любым кол-вом параметров
Пример ссылки:
Код:
<li><a target=_blank href="http://vedenin.ru/data/click.php?url=http://www.hustle.ru/index.php?type=special&area=1&p=articles&id=108">Правила конкурсов по танцу Хастл</a></li><br>
Описание: Это не совсем скрипт, это патч на phpbb 2.* (под 3.* не проверял), так чтобы не спамили форум,
он позволяет регестрироватся всем, но при входе на форум задает вопрос, на который человек ответит легко, а бот нет.
Отключаем нафиг все подтверждения (по картинке, mail'у)
при регистрации пользователей, они не нужны
$keyword = isset($HTTP_POST_VARS['keyword']) ? $HTTP_POST_VARS['keyword'] : '';
$keyword = trim($keyword);
if( ($keyword{0} != 'П' and $keyword{0} != 'п') or ($keyword{1} != 'А' and $keyword{1} != 'а') or ($keyword{2} != 'Р' and $keyword{2} != 'р'))
{
$password = '';
$username = '';
}
P.S. Обратите внимание не важно как вводится слово Париж большими или маленькими буквами, не важно пробелы, и вообще мы смотрим только первые три буквы, т.е. пар тоже подойдет.
P.P.S. Да просьба использовать другой вопрос на вашем форуме.
P.S. Самое главное нигде не напутать с кодировкой, везде должна быть WIN1251. _________________ Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)
Описание скрипта: Скрипт возращает кол-во страниц проиндексированных Яндексом
Пример вызова функции:GetUrl('vedenin.ru/V*','vedenin.ru/',0.1);
Параметры функции:
$psite1 - шаблон, $psite - адрес сайта, $psleep - задержка в секундах перед каждой страницей.
В шаблоне можно задавать либо сайт/каталог/ можно и вида
vedenin.ru/Vide* тогда он найдет все пути начинающиеся с Vide, можно и задать шаблон совпадающий с адресом сайта, тогда он вернет все проиндексированные страницы
Комментарий: Чтобы изменить теги нужно можно исправить строчку $tmp1 = substr($pstr1,0,strpos($pstr1,'"')) . "<br>\n";
Описание скрипта: Скрипт определяет позицию сайта через Яндекс.XML в запросе
Пример вызова функции:GetUrl('vedenin.ru','%d0%b1%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5%20%d1%82%d0%b0%d0%bd%d1%86%d1%8b',10); ;
Параметры функции:
Первый параметр сайт, второй запрос, третий сколько страниц смотреть. Второй праметр это запрос в utf-8, проще всего получить это набрать его в google и взять из url строки запроса параметр q (т.е. строку от &q= до &)
Комментарий:скрипт находит на какой странице находиться ваш сайт (отчет идет с 1)
и возвращает xml этой страницы, для более точного подсчета
надо изменить его чтобы он искал в тексте xml. Так как на странице 10 результатов, то диапазон от (i-1)*10+1 до i*10.
Максимально можно не более 100 страниц, перед использованием надо зарегить ip в xml.yandex.ru
Описание скрипта: Скрипт упрощающий перенос данных с бесплатных форумов
Комментарий:Часто возникают проблемы при переходе на другой хостинг,
которые заключаются в том, что бесплатные хостинги типа ucoz или mybb не отдают
базу форума, в результате данные форума теряются, так как копировать каждое
сообщение слишком накладно. С помощью этого скрипта можно получить всю страницу форума
в текстовом виде с указанием nik'а, кто написал сообщение. Более того легко можно
изменить скрипт для почти любых форумов, а не только phpBB2.*,ucoz,mybb.
Подробнее можно посмотреть здесь
Примеры вызова функции:
Для укоза: getPageUkoz('http://forum.ucoz.ru/forum/6-20477-1');
Для phpBB2.*: getPagePHPBB2('http://vedenin.ru/forum/viewtopic.php?t=659&sid=9546c835318c9ab51e932a6a943feca9');
Для mybb:getPageMyBB('http://paladinxxi.5bb.ru/viewtopic.php?id=165','http://paladinxxi.5bb.ru');
Параметры функции:$page - адрес страницы форума, $psite - сайт форума,
$first,$second - теги ограничивающие ник,$first1,$second1 - теги ограничивающие пост
Модификации скрипта:Для использования других форумов, надо вызвать функцию
getPage, необходимо определить теги начала ника и поста и теги их окончания. Теги
начала (на самом деле любой текст перед ником и постом, но если теги HTML то целиком)
должны быть уникальны, т.е. не должно быть на странице с этим тегом другого текста,
окончания должны только не встречатся в средине поста или ника. Т.е. определяем какой текст HTML ВСЕГДА
есть перед ником и только перед ним, и также перед постом, и определяем каким текстом
ВСЕГДА заканчивается пост или ник и в самом нике или посте этот текст НИКОГДА не встречается.
Код скрипта:
Код:
# Получение текста из любого ukoz форума
function getPageUkoz($page){
getPage($page,'<td width="23%" class="postTdTop" align="center">',
'</td>','<td class="posttdMessage" valign="top">','</td>');
}
# Получение текста из любого phpbb2 форума
function getPagePHPBB2($page){
getPage($page,'<span class="name">',
'</span>','<span class="postbody">','<span class="gensmall">');
}
# Получение текста из MyBB
function getPageMyBB($page,$psite){
getPage($page,'<a href="' . $psite . '/profile.php?id',
'</a>','<div class="post-content">','</div>');
}
# Получение текста из любого форума
function getPage($page,$first,$second,$first1,$second1){
$text= file_get_contents($page);
while(strpos(' '.$text,$first)>0){
$tmp = GetText($first,$second,$text);
$tmp = substr($tmp,strpos($tmp,'>')+1);
$tmp1 = GetText($first1,$second1,$text);
echo '[b]'.trim($tmp).'[/b]'."\n <br>".trim($tmp1);
}
}
Описание скрипта: Удаление всех тегов HTML (получение только текста)
Вызов функции: DeleteTeg('<span class=invis>Привет мир!</span>');
Параметры функции: $pstr - текст с HTML, который надо удалить
Комментарий: В отличие от встроенных в PHP функций работает стабильно всегда, удаляет все теги оставляя только текст. Внимание не забывайте, что текст внутри тегов script и style тоже не удалится, хотя это тоже чаcть HTML . И учитывайте, что если парсить русский текст в кодировке utf-8, то его лучше преобразовать в ANSI, иначе некоторые русские символы будут разпознаватся как < или >, что может привести к ошибкам парсинга.
Код скрипта:
Код:
# Удаление всех тегов HTML (получение только текста)
function DeleteTeg($pstr)
{
$i = 0;
$flag=false;
$text = '';
while($i<=strlen($pstr)){
if($pstr[$i]=='<') {
$i++;
if($pstr[$i]=='/'){$i++;$flag=true;}
workTeg($pstr,$i);
$i++;
} else {
$text .= $pstr[$i];
$i++;
}
}
return $text;
}
Описание скрипта: Парсит один тег HTML возвращая атрибуты в виде массива и передвигает индекс i на конец тега
Вызов функции: $i=0;$parray = workTeg('a href="http://vedenin.ru/" _target = "blank"> hkdjhgd</a> sfgsd',$i)
Параметры функции: $pstr - текст с тегом, $i - индекс с которого надо начинать работу. Внимание: функция обработает тег только, если начать работу сразу с названия тега, т.е. надо передовать не </a> или <a href ... , а a href="... Комментарий: Нулевой символ массива это имя тега, обращатся к атрибутам можно так $parray['href']
Код скрипта:
Описание скрипта: Преобразование из Utf 8 в ANSI русских символов
Вызов функции: $pstr=getTextUtf("текст");
Параметры функции: $prm - строка которую надо преобразовать.
Код скрипта:
Код:
# Преобразование из Utf 8 в ANSI
function getStringUtf($prm){
$tmp = "";$j=0;
while($j<strlen($prm)) {
$tmp1 = getTextUtf(ord($prm[$j]),ord($prm[$j+1]),$j);
$tmp = $tmp . $tmp1;
$j++;
}
return $tmp;
}
Зарегистрирован: 17.05.2007 Сообщения: 2066 Откуда: Самара 11733
Добавлено: Пн, 29 Сен, 2008 08:09 Заголовок сообщения: Пишем самый простой сайт на PHP или переводим HTML в PHP
Пишем самый простой сайт на PHP или переводим HTML в PHP. (Часть 1)
Писать сайт на HTML можно вполне успешно до определенного уровня, когда на сайте меньше сотни страниц, вполне можно обходится чистым HTML, с использованием нескольких скриптов например для форм отправки сообщений
на почтовый ящик и т.п. Однако с ростом сайта чистый HTML уже трудно поддерживать и возникает желания использовать все возможности PHP: вставка чужих скриптов, добавление комментариев, возможность изменить дизайна всего сайта, исправив один файл, легкая работа с биржами ссылок и т.п. Есть только одна проблема не хватает знания PHP, но на самом деле PHP намного проще чем кажется.
Будем считать, что у нас есть сайт на HTML (или хотя бы создана главная страница сайта). Предположим пока, что весь наш сайт на HTML состоит из трех частей: шапки (верх) и подвала (низ), которые общие для всех страниц и центральной части, которая для каждой страницы своя. Естественно, верх и низ имеется в виду верх и низ в исходном виду HTML коде, а не дизайне страницы в браузере.
Шапку вырежем у всем страниц сайта и поместим в файл up.php, подвал в down.php, вместо шапки в каждой странице поместим код
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/up.php"; ?>
, вместо подвала поместим код
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/down.php"; ?>
и поменям расширение на всех файлов на php. Не поверите, но сайт на php готов теперь достаточно изменять один (или два) файла, чтобы изменить дизайн всего сайта, можно работать с биржами и включать чужые скрипты на php _________________ Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)
Пишем самый простой сайт на PHP или переводим HTML в PHP. (Часть 2)
Первый вариант самого простого сайта страдает одним недостатком шапка и подвал всегда постоянные, что конечно неудобно (да и поисковики не любят, например, одинаковые title), изменим это например сделаем для каждой страницы свой заголовок:
перед строчкой
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/up.php"; ?>