Ключ антикапчи (раздача инвайтов для antigate.com)


Ключ антикапчи - это инвайт для сервиса распознавания капч. antigate.com - уникальный сервис распознавания английского текста капч с картинок формата JPG, GIF и PNG. Администрация проекта выдает удобные апи (antigate api) для подключения в ваш софт. Сервис работает просто - вы отправляете им капчи они их распознают и отдают вам (вашему скрипту) в виде текста. Antigate - это самы дешевый проект Рунета. Кроме него есть еще подобные сервисы которые также неплохо распознают капчи, но цена распознавания намного выше чем у antigate. Выкладываю ключ антикапчи прямо в комментарии.

ВНИМАНИЕ ЕСЛИ ВЫ ЗАРЕГИСТРИРОВАЛИСЬ ПО ПОСЛЕДНЕМУ КЛЮЧУ АНТИКАПЧИ ПОЖАЛУЙСТА ОТПИШИТЕСЬ В КОММЕНТАРИИ (МОЖНО ПИСАТЬ БЕЗ РЕГИСТРАЦИИ).  Ну а если же ключик окажется уже занятым стучите в icq: 781741 в любое удобное для Вас время.

Google ping php script - php пинг для google.com

Описание:
Google ping php script - простой до невозможности php script для добавления новых постов с вашего блога в сервис Google ping.

Требования:
php 4/5
file_get_contents on

Код (google_ping.php):
  1. <?php
  2. $urls = file ("urls.txt");
  3. for ($x=0;$x<count($urls);$x++)
  4. {
  5. $url = trim ($urls[$x]);
  6. if (eregi("Thanks for the ping.", file_get_contents("http://blogsearch.google.com/ping?url=".$url)))
  7. {
  8. echo $url." - added\r\n";
  9. } else {
  10. echo $url." - not added\r\n";
  11. }
  12. }
  13. ?>
Настройка
Создать файл в папке скрипта с названием urls.txt где прописать список адресов для пинга. После чего можно запускать Google ping php script.

Google ping - волшебный пендель.


Именно так иногда стоит дать волшебный пендель для ускорения процесса индексации ибо иначе просто никак не хочет Гоша делать свое дело. Google ping это сервис если его можно так назвать для уведомления поисковика google о том что у нас в блоге есть новый пост. Как только пост готов его нужно пингануть в гугль, после чего придет добрый индекс бот и добавит пост в выдачу поисковой системы. Ping  сервисы есть у каждый поисковой системы и не только.  Вот небольшой список урлов для пинга:

http://1470.net/api/ping
http://api.feedster.com/ping
http://api.feedster.com/ping.php
http://api.moreover.com/ping
http://api.moreover.com/RPC2
http://api.mw.net.tw/RPC2/
http://api.my.yahoo.co.jp/RPC2
http://api.my.yahoo.com/ping
http://api.my.yahoo.com/RPC2
http://api.my.yahoo.com/rss/ping
http://bblog.com/ping.php
http://bitacoras.net/ping
http://blog.goo.ne.jp/XMLRPC
http://blogbot.dk/io/xml-rpc.php
http://blogdb.jp/xmlrpc
http://blogmatcher.com/u.php
http://blogoole.com/ping
http://blogroots.com/tb_populi.blog?id=1
http://blogsearch.google.ae/ping/RPC2
http://blogsearch.google.at/ping/RPC2
http://blogsearch.google.be/ping/RPC2
http://blogsearch.google.bg/ping/RPC2
http://blogsearch.google.ch/ping/RPC2
http://blogsearch.google.cl/ping/RPC2
http://blogsearch.google.co.hu/ping/RPC2
http://blogsearch.google.co.id/ping/RPC2
http://blogsearch.google.co.il/ping/RPC2
http://blogsearch.google.co.it/ping/RPC2
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.co.ma/ping/RPC2
http://blogsearch.google.co.th/ping/RPC2
http://blogsearch.google.co.uk/ping/RPC2
http://blogsearch.google.com.ar/ping/RPC2
http://blogsearch.google.com.au/ping/RPC2
http://blogsearch.google.com.co/ping/RPC2
http://blogsearch.google.com.do/ping/RPC2
http://blogsearch.google.com.mx/ping/RPC2
http://blogsearch.google.com.pe/ping/RPC2
http://blogsearch.google.com.sa/ping/RPC2
http://blogsearch.google.com.sg/ping/RPC2
http://blogsearch.google.com.tr/ping/RPC2
http://blogsearch.google.com.vn/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://blogsearch.google.es/ping/RPC2
http://blogsearch.google.fi/ping/RPC2
http://blogsearch.google.hr/ping/RPC2
http://blogsearch.google.in/ping/RPC2
http://blogsearch.google.it/ping/RPC2
http://blogsearch.google.nl/ping/RPC2
http://blogsearch.google.pl/ping/RPC2
http://blogsearch.google.ro/ping/RPC2
http://blogsearch.google.se/ping/RPC2
http://blogsearch.google.sk/ping/RPC2
http://blogsearch.google.us/ping/RPC2
http://blogsnow.com/ping
http://bulkfeeds.net/rpc
http://coreblog.org/ping/
http://effbot.org/rpc/ping.cgi
http://fgiasson.com/pings/ping.php
http://godesigngroup.com/blog/feed
http://imblogs.net/ping
http://lasermemory.com/lsrpc
http://mod-pubsub.org/kn_apps/blogchatt
http://ping.amagle.com/
http://ping.bitacoras.com
http://ping.blo.gs/
http://ping.blogg.de
http://ping.bloggers.jp/rpc/
http://ping.blogmura.jp/rpc/
http://ping.blogs.yandex.ru/RPC2
http://ping.cocolog-nifty.com/xmlrpc
http://ping.exblog.jp/xmlrpc
http://ping.fakapster.com/rpc
http://ping.feedburner.com
http://ping.myblog.jp
http://ping.rootblog.com/rpc.php
http://ping.syndic8.com/xmlrpc.php
http://ping.weblogalot.com/rpc.php
http://ping.weblogs.se/
http://ping.wordblog.de
http://pinger.blogflux.com/rpc
http://pinger.onejavastreet.com
http://pingoat.com/goat/RPC2
http://pingqueue.com/rpc
http://popdex.com/addsite.php
http://rcs.datashed.net/RPC2
http://rpc.blogbuzzmachine.com/RPC2
http://rpc.blogrolling.com/pinger/
http://rpc.britblog.com
http://rpc.icerocket.com:10080
http://rpc.newsgator.com
http://rpc.pingomatic.com
http://rpc.tailrank.com/feedburner/RPC2
http://rpc.technorati.com/rpc/ping
http://rpc.weblogs.com/RPC2
http://rpc.wpkeys.com
http://services.newsgator.com/ngws/xmlrpcping.aspx
http://snipsnap.org/RPC2
http://thingamablog.sourceforge.net/ping.php
http://topicexchange.com/RPC2
http://trackback.bakeinu.jp/bakeping.php
http://weblogues.com/RPC
http://www.a2b.cc/setloc/bp.a2b
http://www.bitacoles.net/ping.php
http://www.blogdigger.com/RPC2
http://www.blogoole.com/ping/
http://www.blogoon.net/ping/
http://www.blogpeople.net/servlet/weblogUpdates
http://www.blogsdominicanos.com/ping/
http://www.blogshares.com/rpc.php
http://www.blogsnow.com/ping
http://www.blogstreet.com/xrbin/xmlrpc.cgi
http://www.catapings.com/ping.php
http://www.feedsky.com/api/RPC2
http://www.focuslook.com/ping.php
http://www.holycowdude.com/rpc/ping/
http://www.imblogs.net/ping
http://www.lasermemory.com/lsrpc/
http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php
http://www.mod-pubsub.org/ping.php
http://www.newsisfree.com/RPCCloud
http://www.newsisfree.com/xmlrpctest.php
http://www.popdex.com/addsite.php
http://www.rssfwd.com/xmlrpc/api
http://www.snipsnap.org/RPC2
http://www.wasalive.com/ping/
http://www.weblogues.com/RPC
http://www.xianguo.com/xmlrpc/ping.php
http://xmlrpc.blogg.de
http://xping.pubsub.com/ping/
https://phobos.apple.com/WebObjects/MZFinance.woa/wa/pingPodcast

Как пользоваться етим всем? Нужно просто добавить эти списки в настройки своего движка WordPress (Options->Writing) и он сам будет уведомлять вышеприведенные каталоги и поисковики о новых сообщениях в вашем блоге.

Тепрь поговорим о ручном добавлении в google. Для того чтобы добавить урл (пингануть) в google используется google ping по адресу http://blogsearch.google.com/ping?url=http://site.ru как не сложно догадаться что вместо site.ru нужно подставлять свой урл чтобы сделать Ping. если в ответ вы получите надпись "Thanks for the ping." значит Google принял ваш ping и скоро к вам придут его боты.

PHP скрипт для пинга ваших страниц можно взять тут Google ping php script - php пинг для google.com

Exipilis cms


Exipilis cms - еще одна cms система управления сайтом. Простая и удобная cms система управления контентом сайта Exipilis cms широко используется командой разработчиков www.exipilis.com. Exipilis платная версия стоит в пределах 9000 рублей. Для полноценной работы системы необходим сервер apache, интерпретатор php версии 4 или 5, сервер баз данных mysql. Cms система Exipilis позволяет гибко настраивать и управлять сайтами. Админ панель интуитивно понятна и также удобна. Всем своим будущим покупателям создатели системы управления контентом дают демо доступ. Чтобы узнать какие модули используются в системе нужно связаться с разработчиками поскольку у них на сайте нету полного описания системы Exipilis cms.

Energine CMS


Energine CMS - это опенсорс cms система управления контентом сайта. Разработчик ColoCALL. Основные возможности:
1. Полная поддержка языковых пакетов (многоязычности)
2. Уникальная система регистрации и авторизации позволяет ограничивать доступ и права пользователям или группе пользователей.
3. WYSIWYG редактор позволяет редактировать содержимое страниц без знаний языка html.
4. Гибкая настройка структуры сайта дает возможность редактору реализовать любую поставленную задачу.
5. Самое вкусное - модуль интернет магазина позволяет сделать на базе cms полноценный интернет магазин.

Кроме того следует отметить что данная cms система управления сайтом Energine CMS имеет полностью интуитивно понятный интерфейс управления и настроек параметров вашего сайта или интернет магазина.

EKVI X Cms


EKVI X Cms – это простая система управления контентом сайта написана на языке php с использованием баз данных mysql. EKVI X Cms - полностью бесплатная система управления сайтом и свободно распространяется по лицензии GPL. Команда разработчиков занимается созданием сайтов на базе своей собсвенной системы управления сайтами EKVI X Cms. EKVI X Cms хорошо подходит для создания и управления небольшими сайтами или порталами. на сайте разработчиков есть список сайтов которые созданы с помощью EKVI X Cms. Также есть возможность пощупать данную cms в действии. Проект молодой и развивается о чем говорят постоянные обновления EKVI X Cms.

Список русских соц. закладок


Ниже привожу небольшой список русских соц. закладок по которым можно вручную или автоматом прогнать свой блог. Список не полный но его соль в том что на момент написания поста каждая из соц. закладок работала.

www.mister-wong.ru
www.moemesto.ru
www.linkstore.ru
www.memori.ru
www.bobrdobr.ru
www.myscoop.ru
www.100zakladok.ru
www.links.i.ua
www.communizm.ru
www.zanachka.com
www.ru-marks.net
www.webmarks.ru
www.uca.kiev.ua
www.ruspace.ru
www.linkomatic.ru
www.kli.kz
www.text20.ru
www.savelink.org.ua
www.web-zakladka.ru
www.zakladok.net
www.toodoo.ru
www.web-markz.com
www.delicious.com
www.lopas.ru
www.bibsonomy.org
www.furl.net
www.frum.ru
www.blogparad.ru

Палю тему! Как из 100$ сделать 10000$ за 5 минут!

Вот палю мегаприват тему как любой человек не имеющих особых навыков и знаний в области программирования или СЕО да и даже навыков нажатий кнопок на клаве может без особых усилий за 5-10 минут сделать из 100$ 10000$ вечнозеленый убитых енотов. Вот собственно и детальная мегаинструкция:









Видите? Проще некуда!

Соц закладки с dofollow


Всем известно что такое соц закладки и для чего они. Но не многие знают что в подобных сервисах закладок, особенно РУнетовских регистрироваться практически бесполезно. Вся фишка в том что в тегах ссылок стоят nofollow свойства, и такие ссылки не дают вес Тиц а PR и подавно. Потому для наращивания ссылочной массы и пузомерок лучше всего регистрироваться в буржунетовских соц закладках. Вот собственно и список проверенных временем зарубежных соц. закладок:


* Furl PR7
* Bibsonomy PR7
* Spurl PR6
* Unalog PR6
* Searchles PR6
* Plime PR5
* BlogHop PR5
* MyLinkVault PR5
* A1 Webmarks PR5
* ClipClip PR5
* Diigo PR5
* Listible PR5
* MyVmarks PR5
* Complore PR4
* OnMyList PR4
* Kapely PR3
* info4it PR3
* MyPIP PR3
* SyncOne PR3
* Yattle PR2

Прогон по этому списку даст ощутимый рост значений пузомерок PR и ТИЦ вашего сайта.

AdVantShop net - еще одна достояная cms



AdVantShop net - еще одна достояная cms. Продукт под названием AdVantShop net - это не что инное как система управления контентом сайта. Существует 2 версии известной AdVantShop net : AdVantShop .NET Lite и AdVantShop .NET Pro.

AdVantShop .NET Lite представляет собой готовую систему управления интернет магазином. Система включает в себя немколько гоовых шаблонов которые идесльно подойдут под ваш интернет магазин. Для управления интернет магазином используется удобная админ панель, при этом особых навыков для работы с системой не требуется.

Система управления контентом AdVantShop .NET Lite имеет также ряд дополнительных возмодностей:
1. Технология Ajax дает возможность пользователю и покупатлю работать без перезагрузки основной страницы
2. Подержка неограниченого числа типов валют делает данную систему управления более гибкой.
3. Поддержка функции отключения сайта или группы сайтов для проведения профилактических работ: добаления товаров ил смена дизайна интернет магазина
4. Удобная система администрирвания интуитивнопонятна и удобна.

Система управления интернет магазином AdVantShop net это по сути коммерческий продукт который хорошо поддерживается и обновляется. Кроме того служба поддержки окажет помощь возникновении проблем в настройке или установке системы.

ABO.CMS система управления контентом


ABO.CMS - революционная система для управления контентом сайта. Она позволяет на базу уже готовых решений создавать и управлять собственными проектами. Обладая элементарными навыками работы на ПК можно без особых проблем и затрат времени создать многоуровневую структуру сайта и заполнить его собственным контентом. ABO.CMS Система управления сайтами очень гибкая молодая система. По данных разработчиков пользователи системы количество которых приблизительно 3000 - это очень изветные компании, такие как: Конверсбанк, Сибинтек, Универсальный Лизинговый Холдинг, ИнВестБанк и пр. Основным достоинством системы управления контентом сайта ABO.CMS является широчайший набор модулей и плагинов которые позволяют делать то что невозможно создать ни в одной подобной CMS. Кроме того CMS ABO.CMS совместима с приложением 1С:Предприятие что делает ее превосходство еще более заметным.

Купить дарсонваль и забыть о проблемах со здоровьем навсегда


Дарсонваль - это аппарат который используется в лечебно - профилактических учреждениях, в косметологии, домашней физиотерапии и медицине. Всем известную процедуру дарсонвализации которая раньше была доступна только в кабинетах физиотерапии теперь теперь можно проводить дома с помощью великолепного аппарата - Дарсонваль Корона. Аппарат дарсонваль рекомендован врачами всего мира для ежедневного применения. Люди среднего возраста и пожилые могут без особых проблем купить дарсонваль и проводить сеансы лечения прямо у себя дома. Дарсонваль рекомендован людям с нарушением обмена веществ, кровообращения и т.д. Дарсонваль Корона улутшает кровоснабжение, приводит в норму обмен веществ, и способствует активации процессов обмена в организме. Кроме того при регулярном использовании препарата дарсонваль улучшается работа нервной системы, укрепляются сосуды, и иммунитет. Купить дарсонваль можно в спецализированых магазинах или же прямо в интернете. Для того чтобы купить дарсонваль с доставкой на дом достаточно заполнить форму заказа в интернет магазине.

Купить дарсонваль можно по ссылке: http://bit.ly/9GPfT3

2Gears CMS - хорошая система управления сайтом


2Gears CMS - еще одна хорошая cms система управления сайтом. 2Gears CMS не совсем простая система. ЕЕ основными преимуществами перед подобными cms являются гибкость и тонкость настроек. С помощью этой cms можно легко сделать блог или создать каталог сайтов, сайт портфолио или же галлерею изображений. Данная cms хорошо подходит для создания статичных или динамических проектов за щитаные минуты. Автор системы опытный разработчик Павло Марковнин, который много лет создает сайты на базе других cms. Изучив все недостатки систем управления контентом он создал свою собственную cms, которая как утверждает автор имеет то чего нету у других.

Chyrp - блоговая cms (micro wordpress)


Одна из лучших блоговых cms Chyrp - достойный конкурент wordpress. В этой блоговой cms функционал можно расширить за счет модулей, которые легко подключаются и настраиваются. Скачать блоговую CMS Chyrp можно по ссылке - http://chyrp.net/

Поиск по файлообменникам

Практически каждый пользователь глобальной сети Интернет знает что такое файлообменник. Фалообменник - это специальный сервис который предоставляет пользователям возможность круглосуточно хранить и скачивать файлы. На файлообменниках обычно зарабатывают даже неплохие деньги владельцы порталов и крупных сайтов. Но мало кому известно что существуют также специализированые поисковики, которые ищут нужные вам файлы на популярных файлообменниках. Вот список таких поисковых сервисов:

http://sharingengines.com/ - отличный сервис для поиска файлов ищет не только по файлообменниках но и по торрентах и emule.

http://filesearch.gr/ - простой и незатейливый поисковик по таких файлообменниках как Megaupload, Depositfiles, Rapidshare и Filefactory.

http://www.avun.com/ - поиск более чем по 18 файлообменниках. Отличный сервис качественная и быстрая работа.

http://www.daleya.com/ - поисковик от наших забугорных собратьев. Испанский сервси дает неалохие результаты, ищет более чем по 20 файлообменниках.

http://filesbot.com/ - работает с rapidshare, megaupload, uploading и другими. Простой и быстрый поисковик по файлообменных хранилищах данных.

http://www.filecrop.com/ - немецкий поисковик. Хорош тем что дает возможность задавать размеры файлов и дату истечения строка хранения.

http://www.shareminer.com/ - самый крупный поисковик, ищет через google. Разработчики утверждают что в месяц поисковик обрабатывает более 5 миллионов запросов.

http://www.gappon.com/ - сервис который ищет неведомо что. При тестах показал очень плохие результаты. Ну в список наш попадает последним пусть будет, может починят ...

Поиск по файлообменниках

Иногда возникает ситуация, когда очень нужно срочно скачать файл а фалообменник говорит "приходите позже" или плотите денех. В принципе вся суть этих фалообменников в дойке денег с юзеров за голд аккаунты для безлимитной скачки и тд. Существует методы поиска открытых ссылок фалообменников аля counter strike 1.6 скачать "depositfiles" или counter strike 1.6 скачать "letitbit" И тд. Но лутше всего это делает Woote.RU.


Основные особенности:

- позволяет делать поиск по сразу нескольким популярным файлообменниках.
- делает абсолютно точный поиск введенной фразы.
- показывает прямые ссылки на скачку.

Парсер статистики ключевых слов Яндекс (yandex wordstat)

Описание:
Простой консольный парсер статистики ключевых слов Яндекс Wordstat. Написан на делфи с использованием twebbrowser. Хорошо подходит для парсинга небольшого количества слов под конкретный сайт. Сделан специально для тех кто хочет видеть весь процесс парсинга и управлять им вручную.


Требования:
минимальные

Screenshots:


Скачать парсер Яндекс Wordstat:
http://slil.ru/28963297
http://www.sendspace.com/file/rrj89j
http://www.rapidshare.ru/1448726
http://rapidshare.com/files/376169885/yandex_wordstat_parser.rar.html
http://hotfile.com/dl/38042626/3bb0d9d/yandex_wordstat_parser.rar.html

ПОНРАВИЛСЯ ПАРСЕР YANDEX WORDSTAT?
А хотите добавить свой функционал? Может поддержку proxy или распознавание капчи? Нет проблем, сделаем! Пишите прямо сейчас icq: 781-741

PHP скрипт обратной связи

Описание:
PHP скрипт обратной связи - простой и удобный скрипт который позволяет создать форму обратной связи у себя на сайте.

Настройка:
Для работы скрипта обратной связи нужно прописать в файле contact.php значения переменных $filename = "messages.txt"; $email = "youremail@mail.com"; соответственно это имя файла где будут храниться сообщения и email адрес куда будут идти письма c формы обратной связи

Требования:
php: 4/5

ScreenShots:

Скачать скрипт обратной связи
http://slil.ru/28945117
http://www.sendspace.com/file/5g52ff
http://www.rapidshare.ru/1444403
http://rapidshare.com/files/374982456/contact.rar.html
http://hotfile.com/dl/37574166/48228dc/contact.rar.html

ПОНРАВИЛСЯ PHP СКРИПТ ОБРАТНОЙ СВЯЗИ?
А хотите добавить свой функционал? Может капчу прикрутить посложнее или сделать на базе скрипта форму приема заказов на вашем сайте? Нет проблем, сделаем! Пишите прямо сейчас icq: 781-741

PHP скрипт файлообменника

Описание:
Скрипт представляет собой простой и надежный бесплатный файлообменник без регистрации. Каждый желающий может создать свой файлообменник за несколько минут просто скопировав скрипты файлообменника себе на хост.

Требования:
php: 4/5

ScreenShots



Скачать скрипт файлообменника
http://slil.ru/28943041
http://www.sendspace.com/file/kma1l3
http://www.rapidshare.ru/1443933
http://rapidshare.com/files/374831828/upload.rar.html
http://hotfile.com/dl/37507300/dad5939/upload.rar.html

ПОНРАВИЛСЯ PHP СКРИПТ ФАЙЛООБМЕННИКА?
А хотите добавить свой функционал? Или может создать собственный полноценный файлообменник типа depositfiles или letitbit? Нет проблем, сделаем! Пишите прямо сейчас icq: 781-741

Gmail - правильные рассылки


Каждый почтовый сервис имеет свои собственные ограничения. Ограничения нужны исключительно для того чтобы "спамеры не поломали весь интернет" :) Давайте сегодня поговорим о том как правильно делать рассылки используя почтовый сервис gmail.

1. Соблюдайте ограничения на количество отправленных писем. В gmail вы можете отослать письмо не более 100 адресатам одновременно используя протокол pop3 или imap.

2. Если вы используете веб интерфейс почтовой службы google - gmail, количество одновременных получателей одного письма не должно превышать 500, иначе получите ошибку Gmail Lockdown in Secton 4 и не ваш почтовый аккаунт будет заблокирован на сутки.

3.  Если вы делаете рассылку по собранным email адресам впервые, то возможно большой процент этих ящиков будет недействительным, и ваш аккаунт тоже может быть заблокирован и помечен, как такой что рассылает спам. Потому стоит ограничиться 25 адресатами в поле bcc.

4. Ну и последнее - если вы не заглядывали в свой почтовый ящик более 9 месяцев он будет тоже заблокирован.

PHP socks5 proxy checker

Описание:
PHP socks5 proxy checker - это чекер сокс5 на php с использованием сокетов (sockets)

Требования:
php: 4/5

Код:
  1. <?php
  2.  function _check_socks5 ($socks = array(), $filename)
  3.  {
  4.   foreach ($socks as $s)
  5.   {
  6.    list ($ip, $port) = explode (":", $s);
  7.    if ($socket = @fsockopen ($ip, $port, $errno, $errstr, 1))
  8.    {
  9.     $threads [$s] = $socket;
  10.    }
  11.   }
  12.   foreach ($threads as $s => $h)
  13.   {
  14.    fwrite ($h, "\x05\x01\x00");
  15.   }
  16.   foreach ($threads as $s => $h)
  17.   {
  18.    $r = fread ($h, 2);
  19.    if ((ord ($r [0]) == 5) && (ord ($r [1]) == 0))
  20.    {
  21.     file_put_contents ($filename, $s."\r\n", FILE_APPEND);
  22.    }
  23.   }
  24.  }
  25.  $socks5_list = explode ("\n", str_replace ("\r", "", file_get_contents (dirname(__FILE__)."/socks5.txt")));
  26.  _check_socks5 ($socks5_list, dirname(__FILE__)."/socks5_valid.txt");
  27. ?>

Скрипт посылает строчку \x05\x01\x00 каждому соксу с которым удалось соединиться, если первые 2 байта ответа \x05\x00\ то socks5 считается валидным. (см socks rfc http://www.codenet.ru/webmast/socks51.php)

ПОНРАВИЛСЯ PHP SOCKS5 PROXY CHECKER?
А хотите добавить свой функционал? Или может создать полноценный сервис раздачи proxy? Нет проблем, сделаем! Пишите прямо сейчас icq: 781-741

PHP синонимайзер текста

Описание:
Простой синонимайзер текста написан на php.

Требования:
php: 4/5

Код:
  1. <?php
  2. list($usec, $sec) = explode(' ', microtime());
  3. $x = (float) $sec + ((float) $usec * 100000);
  4. mt_srand($x);
  5.  
  6. $line=implode('',file("in.txt"));
  7. preg_match_all("|{(.*)}|U",$line,$out);
  8. for ($x=0;$x {
  9. $ss=explode("|",$out[1][$x]);
  10. $line=str_replace("{".$out[1][$x]."}",$ss[mt_rand(0,(count($ss)-1))],$line);
  11. }
  12. $ff=fopen("out.txt","w+");
  13. fwrite($ff,$line);
  14. fclose($ff);
  15. ?>
Для того чтобы задать варианты синонимов используются макросы {слово1|слово2|слово3}. Исходный текст ложится в файл in.txt. Результаты работы скрипт пишет в out.txt

ПОНРАВИЛСЯ СИНОНИМАЙЗЕР?
А хотите добавить свой функционал? Может поддержку дополнительных макросов или базу синонимов? Нет проблем, сделаем! Пишите прямо сейчас icq: 781-741

PHP прокси чекер (curl_multi)

Описание:
Простой php прокси чекер с использованием curl_multi

Требования:
php: 4/5
curl: on
safe mode: off

Настройка:
Установить собсвенные значения тамаутов (см CURLOPT_CONNECTTIMEOUT и CURLOPT_TIMEOUT)

Код (checker.php):
  1. <?php
  2. $proxies = file ("proxies.txt");
  3. $mc = curl_multi_init ();
  4. for ($thread_no = 0; $thread_no<count ($proxies); $thread_no++)
  5. {
  6. $c [$thread_no] = curl_init ();
  7. curl_setopt ($c [$thread_no], CURLOPT_URL, "http://google.com");
  8. curl_setopt ($c [$thread_no], CURLOPT_HEADER, 0);
  9. curl_setopt ($c [$thread_no], CURLOPT_RETURNTRANSFER, 1);
  10. curl_setopt ($c [$thread_no], CURLOPT_CONNECTTIMEOUT, 5);
  11. curl_setopt ($c [$thread_no], CURLOPT_TIMEOUT, 10);
  12. curl_setopt ($c [$thread_no], CURLOPT_PROXY, trim ($proxies [$thread_no]));
  13. curl_setopt ($c [$thread_no], CURLOPT_PROXYTYPE, 0);
  14. curl_multi_add_handle ($mc, $c [$thread_no]);
  15. }
  16.  
  17. do {
  18. while (($execrun = curl_multi_exec ($mc, $running)) == CURLM_CALL_MULTI_PERFORM);
  19. if ($execrun != CURLM_OK) break;
  20. while ($done = curl_multi_info_read ($mc))
  21. {
  22. $info = curl_getinfo ($done ['handle']);
  23. if ($info ['http_code'] == 301) {
  24. echo trim ($proxies [array_search ($done['handle'], $c)])."\r\n";
  25. }
  26. curl_multi_remove_handle ($mc, $done ['handle']);
  27. }
  28. } while ($running);
  29. curl_multi_close ($mc);
  30. ?>

ПОНРАВИЛСЯ PHP PROXY CHECKER?
А хотите добавить свой функционал? Или может создать полноценный сервис раздачи proxy? Нет проблем, сделаем! Пишите прямо сейчас icq: 781-741

PHP Proxy Checker (curl_multi)

Поступил заказ на реализацию простого прокси чекера на php. Особых требований нету, только одно - количество прокси от 60к штук o_O, от чего я вошёл в небольшой ступор.

Начал реализацию через обычный curl и мускул. В процессе тестирования стало ясно что ждать результатов в этом году уже нам не придется :) И я начал курить гугль по тематике много поточности.

Много поточности в php нету и наверное не будет. Есть только извращенные методы эмуляции, которые дают результат, но далеко не идеальный.

Короче, не стал я забивать голову процессами, сокетами, сторонними модулями и тд, а начал ковырять curl_multi который позволяет делать POST GET HEAD запросы в несколько потоков и не только.

Много реализаций перелопатил, облазил много форумов блогов и в результате создал как мне кажется "правильный код" который делает то что мне нужно. Давайте рассмотрим код в деталях:


1. Открываем файлик с проксиками proxies
  1. $proxies = file ("proxies.txt");
2. Создаем мультикурл и получаем его хендл
  1. $mc = curl_multi_init ();
3. Создаем n сеансов curl и записываем дескрипторы в массив $c. Позже все эти курлы мы запустим параллельно :). Каждый сеанс инициализируется своим прокси (см. CURLOPT_PROXY) и своими тамаутами (CURLOPT_CONNECTTIMEOUT - таймаут конекта и CURLOPT_TIMEOUT - тамаут на скачивание контента).
  1. for ($thread_no = 0; $thread_no<count ($proxies); $thread_no++)
  2.  {
  3.   $c [$thread_no] = curl_init ();
  4.   curl_setopt ($c [$thread_no], CURLOPT_URL, "http://google.com");
  5.   curl_setopt ($c [$thread_no], CURLOPT_HEADER, 0);
  6.   curl_setopt ($c [$thread_no], CURLOPT_RETURNTRANSFER, 1);
  7.   curl_setopt ($c [$thread_no], CURLOPT_CONNECTTIMEOUT, 5);
  8.   curl_setopt ($c [$thread_no], CURLOPT_TIMEOUT, 10);
  9.   curl_setopt ($c [$thread_no], CURLOPT_PROXY, trim ($proxies [$thread_no]));
  10.   curl_setopt ($c [$thread_no], CURLOPT_PROXYTYPE, 0);
  11.   curl_multi_add_handle ($mc, $c [$thread_no]);
  12.  }
Важный момент: колличество потоков тут равно колличеству строк в файле proxies. Потому проксей нужно давать скрипту в пределах разумного :)

Далее идет процесс проверки проксей на валидность.
  1.  do {
  2.   while (($execrun = curl_multi_exec ($mc, $running)) == CURLM_CALL_MULTI_PERFORM);
  3.   if ($execrun != CURLM_OK) break;
  4.   while ($done = curl_multi_info_read ($mc))
  5.   {
  6.    $info = curl_getinfo ($done ['handle']);
  7.    if ($info ['http_code'] == 301) {
  8.     echo trim ($proxies [array_search ($done['handle'], $c)])."\r\n";
  9.    }
  10.    curl_multi_remove_handle ($mc, $done ['handle']);
  11.   }
  12.  } while ($running);
  13.  curl_multi_close ($mc);
Мой метод проверки отличается от других, я делаю это просто: устанавливаю проксик и скачиваю страничку Гоши (см. CURLOPT_URL, "http://google.com" код выше).

В полученом заголовке странички стоит редирект через header, потому что адрес http://google.com не используется а Гоша перебрасывает всех на www.google.com.

Чтобы получить код http header 301 использую функцию $info = curl_getinfo ($done ['handle']); ну и дальше уже делаю проверку кода и вывод результатов if ($info ['http_code'] == 301) { echo trim ($proxies [array_search ($done['handle'], $c)])."\r\n"; }

Проанализировав подобные конструкции я понял что у большинства программистов проблемы возникают в реализации параллельных запросов а именно в обработке рузультатов.

Многие пишут код в котором результаты обрабатывают уже после завершения всех запросов. В моем коде реализовано все как нужно и при тестах однопоточного чекера и этого на платформе windows видно что скорость работы скриптов разная и многопоточность в multicurl действительно работает.

Так что пользуйтесь на здоровье.

Скачать сорец прокси чекера можно по ссылке [PHP прокси чекер (curl_multi)]

Настройка CRONTAB

Cron можно настроить 2мя способами:

1 ручной - нужно отредактировать файл /etc/crontab прописав задание в нужном формате: minute hour day month dayofweek command
где minute - любое целое число от 0 до 59
hour - любое целое от 0 до 23
day - любое целое от 1 до 31 (день должен быть корректным, если указан месяц)
month - любое целое от 1 до 12 (или короткое название месяца, например: jan, feb и так далее)
dayofweek - любое целое от 0 до 7, где 0 или 7 означает Воскресенье (или короткое название дня недели, например: sun, mon и так далее)
command - команда, которая должны быть выполнена. Командой может быть как простая команда, например, ls /proc >> /tmp/proc, или команда запуска написанного вами специального сценария.

2 через панель direct admin - зайти в панель там будет пункт "Cron Jobs" и примерно такая картинка



Заполняем поля и жмем кнопочку [add].

Теперь о том как нам настроить cron на запуск нашего скрипта каждые 5 минут. Заполняем поля звездочками кроме minute там ставим */5 тоисть запускать каждые 5 минут, и в поле command пишем

/usr/local/bin/php -f /home/public_html/parser.php если запускаем через php
/usr/bin/wget http://site.com/parser.php если запускаем через wget

Хочу заметить что адрес php интерпретатора или утилиты wget может быть другой. Найти местонаположение wget можно командой find / -name wget соответсвенно найти где установлен php можно аналогичной коммандой find / -name php.

Как посадить php скрипт на cron? Пишем собственный php cron.

cron - служба основное предназначение которой - запуск скриптов и программ в заданое время. Часто исользуется для перезапуска скриптов которые по той или иной причине прекратили свою работу. Для того чтобы "посадить" ваш скрипт на крон нужно:

1. Чтобы скрипт сохранял текущее состояние а именно позиции файлов значение переменных в файл или базу БД бля того чтобы после перезапуска продолжить с места остановки.

2. Настроить службу крона для перезапуска вашего скрипта

После того как первый пункт выполнен и ваш скрипт после перезапуска продолжает работу с прерваного места нужно создать файл cron.php который будет следить за вашим скриптом и в случае необходимости перезапускать его. Ну а уже сам crontab настроить на запуск cron.php. Вот собственно содержимое файла cron.php.

<?php
$out = shell_exec('ps ux');
if ((!eregi('metka', $out)) && ($out!=""))
{
shell_exec ("/usr/local/bin/php -f /home/public_html/parser.php metka");
} else {
echo "already runned";
}
?>

Этот код следит за тем чтобы скрипт parser.php был запущен в едином екземпляре. В случае если процесс не найден скрипт создает его. О том как настроить crontab читайте тут -> Настройка CRONTAB

Почему php скрипт отключается?

При написании php грабберов или сборщиков часто возникает ситуация, когда скрипты по неизвестной причине "вырубаются". Существует несколько причин такого поведения скриптов:

1. Нехватка памяти - в этом случае нужно выделить скрипту больше памяти. Установка нужного значения memory_limit в php.ini решает проблему.

2. Ошибки. Они могут возникать в процессе загрузки и парсинга страницы. Иногда сервер выдает ошибку с надписью Service Unavailable, это значит что он перегружен. Вместо контента парсер а именно зачастую функции preg_match_all парсит именно эту надпись :) или вообще пустой контент. Избежать возникновение ошибок в такой случае можно простой проверкой if (@$content!="") или же if (@preg_match_all(...)).

3. Для "вечной" работы скриптов используйте функции set_time_limit (0); ignore_user_abort (true);

Если ваш скрипт все-равно "падает" его нужно "посадить на крон" при этом реализовать функцию сохранения текущего состояния процесса для того чтобы при перезапуске скрипт продолжил работу с прерванного места.

Читайте далее о том Как посадить php скрипт на крон?

Полезные java script функции

Рутина - самый опасный враг программиста :) Именно на поиски и написание рутинного кода уходит очень много времени. Всех функций не запомнишь. Одни программисты пишут код с нуля, другие гуглят, третьи используют уже написанное при создании новых проектов. Время деньги а без денег нету счастья :) хотя я так не думаю. Короче привожу несколько полезных java script конструкций которые я использую чаще всего.

GetElementsByClass by Dustin Diaz

function getElementsByClass(searchClass,tag,node) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}

addLoadEvent() by Simon Willison

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}

Определение координат объекта:

function getAbsoluteTop(obj) {
var posTop = 0;
while (obj.offsetParent)
{posTop += obj.offsetTop; obj = obj.offsetParent;}
return posTop;
}
function getAbsoluteLeft(obj) {
var posLeft = 0;
while (obj.offsetParent)
{posLeft += obj.offsetLeft; obj = obj.offsetParent;}
return posLeft;
}

Определение размеров видимой области браузера:

function getSize(){
var _size = {};
if (window.innerHeight) {
_size.h = window.innerHeight; _size.w = window.innerWidth;
} else {
_size.h = document.documentElement.clientHeight;
_size.w = document.documentElement.clientWidth;
}
return _size;
}

Кроссплатформенный код определения размеров браузера и позиций скроллбаров:

function f_clientWidth() {
return f_filterResults (
window.innerWidth ? window.innerWidth : 0,
document.documentElement ? document.documentElement.clientWidth : 0,
document.body ? document.body.clientWidth : 0
);
}
function f_clientHeight() {
return f_filterResults (
window.innerHeight ? window.innerHeight : 0,
document.documentElement ? document.documentElement.clientHeight : 0,
document.body ? document.body.clientHeight : 0
);
}
function f_scrollLeft() {
return f_filterResults (
window.pageXOffset ? window.pageXOffset : 0,
document.documentElement ? document.documentElement.scrollLeft : 0,
document.body ? document.body.scrollLeft : 0
);
}
function f_scrollTop() {
return f_filterResults (
window.pageYOffset ? window.pageYOffset : 0,
document.documentElement ? document.documentElement.scrollTop : 0,
document.body ? document.body.scrollTop : 0
);
}
function f_filterResults(n_win, n_docel, n_body) {
var n_result = n_win ? n_win : 0;
if (n_docel && (!n_result || (n_result > n_docel)))
n_result = n_docel;
return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

Еще один вариант определения scrollTop и scrollLeft:

function getBodyScrollTop() {
return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft() {
return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

Функция проверки полей формы перед отправкой:

function SendForm() {

if (document.forms[0].name.value == "") {
alert('Пожалуйста, введите Ваше имя');
document.mailform.name.focus();
return false
}

if (document.forms[0].email.value == "") {
alert('Пожалуйста, введите электронный адрес');
document.mailform.email.focus();
return false
}

return true;
}

Установка обработчика события onload для страницы:

function setGlobalOnLoad(f) {
var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null
if (root){
if(root.addEventListener) root.addEventListener("load", f, false)
else if(root.attachEvent) root.attachEvent("onload", f)
} else {
if(typeof window.onload == 'function') {
var existing = window.onload
window.onload = function() {
existing()
f()
}
} else {
window.onload = f
}
}
}

Фильтр ввода для текстового поля

<input type="text" onkeypress="return testKey(event)">

<script type="text/javascript">
function testKey(e)
{
// Make sure to use event.charCode if available
var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);

// Ignore special keys
if (e.ctrlKey || e.altKey || key < 32)
return true;

key = String.fromCharCode(key);
return /\w/.test(key);
}
</script>

Генератор случайных чисел на java script

function getrandom() {

var min_random = 0;
var max_random = 10;

max_random++;

var range = max_random - min_random;
var n=Math.floor(Math.random()*range) + min_random;

return n;
}

Функций получения значения елемента radiobutton

function getRadioValue(name)
{
for (var i = 0; i < name.length; i++)
{
if (name[i].checked == true)
{
return name[i].value;
}
}
return null;
}

Функция "выхода" из фрейма

if (window.parent.frames.length == 0) {
location.href="index.htm?"+location.pathname;
}

Определение типа и версии браузера

var browser_name = navigator.appName;
var browser_version = parseFloat(navigator.appVersion);

Дата модификации документа

document.write ("Дата последней модификации: "+ document.lastModified);

Ссылка сделать страничку стартовой

<p><a href="#" onClick="this.style.behavior='url(#default#homepage)';
this.setHomePage('http://www.yoursite.com/'); return false;">
Сделать стартовой страницей</a></p>

Добавление странички в "Избранное"

<p><a href="#" onClick="window.external.addFavorite
('http://www.yoursite.com/', 'Description'); return false;">
Добавить сайт в Избранное</a></p>

Распечатка страницы

var browser_name = navigator.appName;

function printit(){

if (browser_name == "Netscape") {
window.print() ;
} else {
var WebBrowser = '<object id="WebBrowser1" width=0 height=0
classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
WebBrowser1.ExecWB(6, 2);
}

Определение координат курсора мышки

function mouseCoords(ev) {
if (ev.pageX || ev.pageY) {
return {x:ev.pageX, y:ev.pageY};
}

var docBody = document.documentElement
? document.documentElement
: document.body;

return {
x: ev.clientX + docBody.scrollLeft - docBody.clientLeft,
y: ev.clientY + docBody.scrollTop - docBody.clientTop
};
}

Пока все. Но, продолжение следует ...