домой  почта (495) 543-35-35 (многоканальный) http://tour.yandis.ru/
e-mail: tour@yandis.ru
     Болгария
     Турция
     Египет
     Тунис
     Италия
     Хорватия
    Сочи
    Анапа
    Геленджик
    Евпатория
 
О компании Туры по Миру Туры по России Шоп-Туры Загранпаспорт и виза Контакты
 
  ТУРЦИЯ  

Отдых в Турции
Спрака о стране  
Полезная информация  
История  
Достопримечательности  
Города турции  
Курорты турции  
Регион Средиземное море  
Национальная кухня  
Русско-Турецкий разговорник  
Экзотика  
полезная информация

  

 
   

Полетное время

Перелет Москва - Стамбул занимает 2 часа 50 минут, Москва - Анталия - 4 часа 10 минут, а Москва - Даламан 3 часа 50 мин.

Виза

Турция - открытая страна. Гражданам России оформлять визу в посольстве не требуется. Она выдается на границе. После уплаты 10 долларов США в паспорт вклеят специальную марку, которая дает право пребывания в стране в течение 1 месяца.
Посольство Турции в Москве: 7-й Ростовский переулок, 12. Тел.: (095) 246-00-10

Таможня

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

Турецкие лиры можно ввозить в неограниченном количестве, но вывозить только в сумме, эквивалентной 1000 долларов США. Иностранные средства платежа разрешается ввозить/вывозить без ограничений.
Для провоза домашних животных требуется официально заверенная в турецком консульстве ветеринарная справка.

Климат

Турция обладает субтропическим климатом – мягким и теплым, идеально подходящим для отдыха на море в летнее время, хотя в июле и августе может быть очень жарко по всей территории страны.
Таблица средних температур по месяцам в Турции:
  Янв Фев Март Апр Май Июнь Июль Авг Сент Окт Нояб Дек
Воздух днем 15 16 17 21 25 30 34 33 31 27 22 17
Воздух ночью 6 7 8 11 16 20 23 22 20 15 11 8
Вода 18 17 17 18 20 23 26 27 26 25 13 20


Текущую погоду в Анталии по данным Московского МетеоБюро см. здесь
Текущую погоду в Измире по данным Московского МетеоБюро см. здесь

Расхождение во времени

Расхождение во времени с Москвой в Турции составляет минус один час.

Уровень преступности

Уровень преступности на курортах постепенно снижается, хотя все еще достаточно высок. В оживленных местах следует опасаться карманников и мелких воришек. Где бы Вы не находились наличные деньги, драгоценности и важные документы лучше хранить в сейфе. Если его нет в номере, сейф можно взять в аренду за небольшую плату на ресепшн в отеле. В противном случае за все пропажи отель ответственности не несет.

Национальная валюта

Турецкая национальная валюта - лира (TRL). Турецкая лира состоит из 100 курушей, однако из-за черезвычайно низкого курса национальной валюты куруши из обращения исчезли. Средневзвешенный курс обмена 1USD=1.500.000 TRL. В обращении банкноты (фунты) достоинством 1 000 000, 500 000, 250 000 лир и монеты в 5000, 10 000, 25 000, 50 000, 100 000, и 250 000 лир. Выпущены в обращение банкноты в 5 и 10 млн. лир. Обменный курс подвержен значительным колебаниям, рекомендуется не обменивать все деньги сразу. Достаточно сказать, что уровень инфляции достигает 80% в год. Валюту можно поменять в пунктах по обмену валюты и на почте. Имейте в виду, что почти везде принимают к оплате и доллары и евро.

10.000 TRL 250.000 TRL
25.000 TRL 500.000 TRL
50.000 TRL 1.000.000 TRL
100.000 TRL 10.000.000 TRL


Кредитные карточки

Почти во всех гостиницах, ресторанах и крупных магазинах принимаются кредитные карточки Американ экспресс, Дайнерс, Еврокард/Мастеркард, Виза.

"Чаевые"

Размер чаевых зависит от Вас и от предоставленного Вам сервиса, 5-10 % от счета можете оставить официанту. Носильщику в отеле и аэропорту в пределах 1-2 долларов. Давать чаевые в такси нет необходимости.

Транспорт

Городской автобуc
Это - самое популярное средство сообщения, как по стране, так и в городах. Средняя стоимость билета в городе - 750 тысяч турецких лир - 0,5 доллара США. Городские автобусы почти всегда переполнены, поэтому туристам не рекомендуются.

Междугородний автобус
Автобусная сеть в Турции хорошо развита, автобусы комфортабельны, а стоимость проезда относительно невысокая (за 100 км - от 2 до 5 долларов), так 8-ми часовое путешествие из Стамбула в. Анкару (450 км) обойдется вам в 15 - 30 долларов, в зависимости от автобусной компании (а если купить билет на ночной рейс, то можно сэкономить на гостинице, да и ехать ночью прохладнее). Лучшими по соотношению цены с уровнем обслуживания являются компании Ulusoy и Varan:

При покупке билета можно выбрать себе место, желательно не на солнечной стороне, а если вам не нравится сигаретный дым, то лучше сесть впереди. Во время поездки у служащего (yardimci или muavin - ярдымджы, муавин) можно попросить охлажденной воды (это бесплатно): 'Su, lutfen!' (Су, лютфен! - Воды, пожалуйста!). Автобус останавливается на отдых через каждые полтора часа.

Такси
Обычные такси оборудованы счетчиками, средняя стоимость за 1 км - 1,5 доллара США. Ночной тариф дороже на 50-60%. Работают также и "долмуши" (маршрутные такси для нескольких пассажиров) с фиксированной стоимостью проезда и остановками в определенных пунктах. Маршрутные такси - работают с 6.00 до 24.00. В небольших городах типа Белека движение транспорта заканчивается примерно в 20.00.

Самолет
Турецкие авиакомпании Turk Hava Yollari (THY - Турецкие авиалинии, символ - ТК) и Turk Hava Tasimaciligi (THT - Турецкий Авиатранспорт, символ - ZH) выполняют рейсы внутри страны. При заказе и покупке билетов предоставляется 10% скидка для семейных пар и родителей с детьми, скидки для молодежи (от 12 до 24 лет) и пожилых пассажиров (от 60 лет), а также для молодоженов и супругов, отмечающих юбилей свадьбы. Регулярные рейсы из Анкары осуществляются в города: Адана, Анталья, Батман, Бурса, Ван, Газиантеп, Даламан, Диярбакыр, Элази, Эрзин-джар, Эрзурум, Измир, Карc, Малатья, Стамбул, Трабзон и Шанлыурфа. Из Стамбула - в города: Адана, Анкара, Анталья, Батман, Бурса, Газиантеп, Даламан, Денизли, Измир, Кайсери, Самсун, Трабзон.

Кроме того, в Турции имеются другие авиакомпании, цены на билеты у которых могут быть ниже. Например, компания Istanbul Airlines выполняет рейсы из Стамбула в города: Адана, Анкара, Анталья, Даламан, Измир, Трабзон и Ван, билеты можно заказать в Стамбуле по адресу: Firuzkoy Yolu No 26, Avcilar, тел. (1) 509-21-21.

В аэропорт следует прибыть по крайней мере за 45 минут до вылета. В здании аэропорта иногда бывает трудно сориентироваться, указатели имеются далеко не всегда. Кроме того, следует позаботиться о своем багаже, т.е. о том, чтобы его загрузили в нужный самолет.

Железная дорога
Железная дорога (ТС Devlet Demiryollari, TCDD, DDY) связывает многие города Турции, но путешествие поездом занимает, как правило, значительно больше времени, чем на автобусе (иногда вдвое).
Однако путешествовать скоростным поездом (mavi tren, ekspres или mototren) между Анкарой, Стамбулом и Измиром довольно приятно, эти поезда более комфортабельны и только незначительно дороже, чем переполненные людьми и сигаретным дымом автобусы.

Название станции не всегда совпадает с названием города, так если вам нужен Стамбул, то следует искать название Haydarpasa (Хайдарпаша) и Sirkeci (Сиркеджи) - станций в азиатской и европейской частях города, в случае Измира - это станции Basmane (Басмане) и Alsancak (Алсанджак).

Гордость турецкой ж/д - скоростной поезд Fatih Ekspresi (Фатих Експреси), циркулирующий между Стамбулом и Анкарой, с пульмановскими вагонами первого класса, видео и подачей обеда прямо на место (как в самолете). Экспресс отправляется в 10:30 и прибывает на место в 18:00, что быстрее большинства автобусов. Билеты на все скоростные поезда нужно заказывать или покупать заранее (по крайней мере за Несколько дней). Скидки: на билеты туда и обратно (Gidis-Dunus - Гидиш-Дёнюш) - 20%, для студентов и супружеских пар - от 20 до 30%.

Морское сообщение
Компания Турецкие морские линии (TML) выполняет паромные рейсы вдоль берегов Мраморного, Эгейского и Средиземного морей по маршруту Стамбул - Измир (19 часов - $20) - Кушадасы - Мармарис - Фетхие - Анталья - Аланья и обратно. С конца мая по сентябрь компания выполняет рейсы вдоль берегов Черного моря из Стамбула в Трабзон ($30 - $85). Кроме того, TML организует паромную переправу из турецких портовых городов на греческие острова (Лесбос, Хиос, Самос, Родос, Кипр).

Прокат машин

Теоретически в Турции правостороннее движение, но на практике турки часто мчатся посередине дороги и не желают никому уступать, полагаясь на волю случая и милость Аллаха. Скоростные ограничения: в городе - 50 км/ч, за городом - 90 км/ч.
Скоростных шоссе немного, большинство дорог имеют две полосы и вьются серпантином вдоль склонов холмов. Особенно осторожным следует быть ночью, машины могут ездить без включенных огней и могут останавливаться прямо посреди дороги.

Бензин бывает - normal (нормал), super (сюпер) и kursunsuz (куршунсуз). Бензозаправочные станции есть повсеместно (только в восточных районах Анатолии могут возникнуть трудности с их отысканием). Многие станции работают до поздней ночи или круглосуточно, так что заправка проблем не вызовет, по крайней мере на основных магистралях.

Нижняя возрастная граница, начиная с которой разрешается брать напрокат малолитражную машину - 19 лет, машину побольше - 24 года, дорогую - 27 лет. От вас потребуют предъявить паспорт (или его ксерокопию, если паспорт забрали в гостинице), водительские права (годятся российские, но со стажем не менее года) и - либо надежную кредитную карточку, либо крупный залог наличными (долларов 500). Если Вы берете машину через отель, всего этого может и не понадобиться.

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

Получив машину в одном городе (например, в Стамбуле) и внеся плату за определенное число дней, вы можете покинуть этот город и отправиться в любую точку Турции. Если вы не успеваете вернуться в срок, то достаточно позвонить в компанию и они будут обязаны продлить договор, оплата за просроченные дни будет вычитаться из внесенного залога. В случав продления договора цена за аренду машины должна снизиться минимум на 10%, если, конечно, срок аренды превысил 7 дней.

Цены: на неделю без ограничения километража, включая страховку и налоги - от $400 до $700.

Страховка. Если машина пострадала при аварии или по какой-нибудь другой причине, то ни в коем случае не трогайте ее с места до прибытия полиции и попросите дать вам kaza raporu (каза рапору) - протокол об аварии. Затем в течение 48 часов свяжитесь с компанией, у которой вы арендовали машину. Ваша страховка окажется недействительной, если вы находились в момент аварии в состоянии алкогольного опьянения или под действием наркотиков, превысили скорость или не связались с компанией в течение 48 часов. Страховка, как правило, не включает в себя покрытие издержек из-за разбитого ветрового стекла или фар, а также прокола шины или кражи запаски и прочего инвентаря.

Питьевая вода

Водопроводную воду пить можно, но она очень хлорированная. Рекомендуется употреблять питьевую, расфасованную в бутылки воду. Её можно купить в любом месте, она дешевая и имеет хороший вкус.

Шопинг

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

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

Дубленки - за эксклюзивную модель с вас могут попросить от 600 до 1000 $. Приличную мужскую кожаную куртку стандартного фасона -150-300 $, оригинального - дороже. Шерстяной женский джемпер ажурной вязки от 30 до 60$. Цены на женские кожаные сумочки колеблются в пределах 40-80 $. Ну и, конечно, джинсы. Расцветки, модели, фактура - на любой вкус от 13 до 40$. Приличные брюки можно купить за 10-20 $.Золото от 8 до 14$ за грамм в зависимости от пробы.

Часы работы

Магазины, как правило, работают с 9.30 до 19 часов. Перерыв - с 13 до 14 часов. Выходной день - воскресенье. Крытый рынок в Стамбуле открыт с 8 до 19 часов ежедневно, кроме воскресенья. Учреждения и официальные службы работают с 8 до 16 часов с понедельника по пятницу. Отделения банков обычно открыты в будние дни с 8.30 до 17 часов. Перерыв - с 12 до 13.30.

Официльным выходным днем в Турции является воскресенье.

Праздники

1 января - Новый год.
Рамазан - священный месяц (пост). В это время правоверные мусульмане не едят и не пьют с рассвета до вечерней молитвы. В это время некоторые рестораны закрыты до заката, а в консервативных провинциальных городах считается дурным тоном (даже для не мусульманина) есть, пить и курить на виду у всех до вечерней молитвы (когда муэдзин прокричал призыв к молитве с минарета).

Курбан-Байрам (праздник жертвоприношения) - главный религиозный праздник в году, продолжается 4 дня (банки могут быть закрыты целую неделю, транспорт и отели переполнены).

23 апреля - День Национальной Независимости.
19 мая - День молодежи.
30 августа - День победы.
29 октября - День Республики, главный государственный праздник (парады, речи).
10 ноября - День смерти Ататюрка (1938 г.) В этот день, в 9:05 утра вся страна замирает в молчании, прохожие на минуту останавливаются (и вам тоже придется это сделать), сирены гудят и машины сигналят. В предверии этого дня, теле- и радиопрограммы насыщены фактами и воспоминаниями о жизни Ататюрка.

Электричество:

220 В, 50 Гц., как правило евророзетка.

Телефон

Все номера телефонов в Турции семизначные (как в Москве или Петербурге), а все региональные коды состоят из 3 цифр.
Выход на междугородную связь - (0), на международную - (00).Все номера телефонов в Турции семизначные (как в Москве или Петербурге), а все региональные коды состоят из 3 цифр. Выход на междугородную связь - (0), на международную - (00).

Все виды телефонной связи платные. Звонить из телефона-автомата дешевле, чем из отеля. Телефоны-автоматы (таксофоны) расположены в отелях или вблизи от отелей, во всех курортных городах. Таксофоны принимают жетоны, которые можно купить в любом почтовом отделении или иногда в киосках на улицах. Обычно звонки внутри страны и за границу не вызывают никаких проблем. Жетоны (по-турецки они так и называются) бывают трех размеров: маленькие (для местных звонков), большие (для международных), а средними можно оплачивать и те, и другие.


Коды некоторых городов:
Анкара 312
Стамбул 212 или 216
Измир и Кушадасы 232
Бурса 224
Конья 332
Анталия и Аланья 242
Анкара 312
Бодрум и Мармарис 252


Поскольку Стамбул - самый большой город Турции - расположен на двух континентах, в нем два кода - (212) для европейской стороны и (216) для азиатской стороны при звонках из других частей страны и из-за границы. В Стамбуле вы должны набрать сначала 216, если вы находитесь на европейской стороне и вызываете номер на азиатской стороне, и (212) при звонке с азиатской на европейскую сторону. Никакого кода в пределах одной части города не требуется.

В случае заболевания

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

Полезные телефоны

Международный телефонный код Турции: + 90
Полиция: 155
Скорая помощь: 112
Помощь при несчастном случае или дорожной аварии: 247-06-99
Жандармерия (в сельских районах): 156
Пожарная охрана: 110
Справочная (справки о телефонах): 118
Международный оператор: 115
Телеграммы по телефону: 141
Будильник: 135
Аэрофлот в Анкаре: 440-98-74, 440-92


Информация, взятая с http://tour.yandis.ru/ ссылка на наш сайт обязательна.

Горящие путевки
Турфирма Яндис
 
Список городов Турции.
  название города    
Аланья    
Анталия    
Белек    
Бодрум    
Кемер    
Мармарис    
Сиде    
Фетхие    



Документы и информация, необходимые для регистрации ООО

Документы и информация, необходимые для регистрации ООО

Документ от учредителей - физических лиц:

* Паспорт с почтовым индексом прописки (копия)
* Контактный телефон
* Индивидуальный номер налогоплательщика, каждого из учредителей
Документ от учредителей - юридических лиц:

* Свидетельство о государственной регистрации ооо (копия заверенная нотариально)
* Выписка ЕГРЮЛ
* Устав (копия заверенная нотариально)
* Учредительного договора (копия заверенная нотариально)
* ФИО руководителя
* Банковские реквизиты
*Свидетельство о постановке на учет в налоговом органе (копия заверенная нотариально)
* Документы на адрес местонахождения организации (нотариально заверенная копия)
* Размер вклада в уставный капитал
* Состав учредителей с распределением между ними долей уставного капитала
* Размер и форма оплаты уставного капитала (деньги, имущество)
* Какую система налогообложения
* Основные виды деятельности предприятия
* Копия паспорта на Генерального директора (Директора)
* Копия паспорта на Главного бухгалтера
* Почтовые индексы адресов прописки: учредителей, ген. директора, главного бухгалтера
* Телефоны для связи





'Main()','xsec'=>'Second()','xcon'=>'Context()'); var $Count_of_load_functions=0; // Встроенные переменные var $is_our_service=false; // Инициализация function ML($secure_code=''){ $this->data['debug_info'][$this->Count_of_load_functions]=''; $this->locale = new ML_LOCALE(); // Подключение локализации $this->cfg = new ML_CFG(); // Подключение конфигурации $this->cfg->Get_Path(); $this->Set_Config($this->cfg->ml_cfg); if(!defined('SECURE_CODE'))define('SECURE_CODE',$secure_code!=''?$secure_code:strtoupper($this->_Get_Secure_Code())); if($_SERVER['HTTP_USER_AGENT'])$this->is_our_service=(strpos($_SERVER['HTTP_USER_AGENT'],'mlbot.'.SECURE_CODE)===false?false:true); if(SECURE_CODE==false)$this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(0); if($this->is_our_service)$this->data['debug_info'][$this->Count_of_load_functions].=$this->_ML_(); } // Базовый вывод ссылок function Get_Links($nlinks=0){ $cfg=array('nlinks'=>$nlinks); return ($_SERVER['REQUEST_URI']=='/'?$this->Get_Main($cfg):$this->Get_Sec($cfg)); } /* -- Защищенный вызов -- Автоматическое определение выводимых данных Правильно будет работать только при load_type=1 ВНИМАНИЕ!!! Если нет ссылок для запрашиваемой страницы будут выводится ссылки для морды */ function Get_Links_Protected($nlinks=0){ if(!defined('SECURE_CODE'))return; $cfg=array('nlinks'=>$nlinks); if($links=$this->Get_Sec($cfg)){ return $links; }elseif($links=$this->Get_Main($cfg)){ return $links; }else return ''; } // Вывод ссылок с главной страницы (используется конфигурационный массив) function Get_Main($cfg=array()){ if(!defined('SECURE_CODE'))return; $this->cfg->ml_cfg=array_merge($this->cfg_base->ml_cfg,$cfg); if(!$this->cfg->ml_cfg['charset'])$this->cfg->ml_cfg['charset']='win'; $this->cfg->ml_host='xmain.mainlink.ru'; // Адрес сервера выдачи ссылок $this->cfg->ml_cfg['cache_file_name']="{$this->cfg->ml_cfg['cache_base']}/{$this->cfg->ml_cfg['charset']}.{$this->cfg->ml_cfg['host']}.xmain.dat"; return $this->_Get_Data('xmain',"l.aspx?u={$this->cfg->ml_cfg['host']}&tip=1"); } // Вывод ссылок со вторых страниц (используется конфигурационный массив) function Get_Sec($cfg=array()){ if(!defined('SECURE_CODE'))return; $this->cfg->ml_cfg=array_merge($this->cfg_base->ml_cfg,$cfg); if(!$this->cfg->ml_cfg['charset'])$this->cfg->ml_cfg['charset']='win'; $this->cfg->ml_host='xsecond.mainlink.ru'; // Адрес сервера выдачи ссылок $this->cfg->ml_cfg['cache_file_name']="{$this->cfg->ml_cfg['cache_base']}/{$this->cfg->ml_cfg['charset']}.{$this->cfg->ml_cfg['host']}.xsec.dat"; return $this->_Get_Data('xsec',"l.aspx?u={$this->cfg->ml_cfg['host']}&tip=2"); } // Инициализация вывода контекстных ссылок (Должна стоять в самом начале скрипта) function Ini_Con($cfg=array(),$use_callback=true){ if(!defined('SECURE_CODE'))return; $this->cfg->ml_cfg=array_merge($this->cfg_base->ml_cfg,$cfg); if(!$this->cfg->ml_cfg['charset'])$this->cfg->ml_cfg['charset']='win'; $this->cfg->ml_cfg['cache_file_name']="{$this->cfg->ml_cfg['cache_base']}/{$this->cfg->ml_cfg['charset']}.{$this->cfg->ml_cfg['host']}.xcon.dat"; $this->cfg->ml_host='xcontext.mainlink.ru'; // Адрес сервера выдачи ссылок $this->_Get_Data('xcon',"l.aspx?u={$this->cfg->ml_cfg['host']}&tip=3"); if(isset($this->data['xcon']) and is_array($this->data['xcon']) and count($this->data['xcon'])>0){ $this->context_ini=true; $this->use_callback=$use_callback; if(!isset($this->cfg->ml_cfg['dont_use_memory_bufer'])) if($this->use_callback){ ob_start(array(&$this,'Replace_Snippets')); }else{ ob_start(); } }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(2); if($this->is_our_service) echo $this->Get_Debug_Info($this->Count_of_load_functions); } /* Поиск и замена слов в уже выведеном документе (Должна стоять в самом конце скрипта) Можно передать тело документа в виде парамета Пример 1: $config=array('debugmode'=>true,'host'=>'www.firma-ms.ru','uri'=>'www.firma-ms.ru/?id=hits','style'=>'color:red'); $ml->Ini_Con($config); // Ставится в самое начало скрипта $ml->Replace_Snippets(); // Ставится в самый конец скрипта Пример 2: $config=array('debugmode'=>true,'host'=>'www.firma-ms.ru','uri'=>'www.firma-ms.ru/?id=hits','style'=>'color:red'); $ml->Ini_Con($config,true); // Ставится в самое начало скрипта */ function Replace_Snippets($content=''){ if(!defined('SECURE_CODE'))return; if(!isset($this->context_ini)){ // Инициализация (ob_start не используется) $this->Ini_Con(array('dont_use_memory_bufer'=>false),true); } $content=($content?$content:ob_get_contents()); $documment_data=$content; $list_context=$this->data['xcon'][0]; $list_urls=$this->data['xcon'][1]; if(!is_array($list_context) or !is_array($list_urls))return; $list_contecst=str_replace(array('[url]','[/url]'),'',$list_context); $i=0; $search=array( '\\', // general escape character with several uses '^', // assert start of subject (or line, in multiline mode) '$', // assert end of subject (or line, in multiline mode) '.', // match any character except newline (by default) '[', // start character class definition ']', // end character class definition '|', // start of alternative branch '(', // start subpattern ')', // end subpattern '?', // extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer '*', // 0 or more quantifier '+', // 1 or more quantifier '{', // start min/max quantifier '}', // end min/max quantifier '^', // negate the class, but only if the first character '-', // indicates character range ' ', ); $replace=array( '\\\\', // general escape character with several uses '\^', // assert start of subject (or line, in multiline mode) '\$', // assert end of subject (or line, in multiline mode) '\.', // match any character except newline (by default) '\[', // start character class definition '\]', // end character class definition '\|', // start of alternative branch '\(', // start subpattern '\)', // end subpattern '\?', // extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer '\*', // 0 or more quantifier '\+', // 1 or more quantifier '\{', // start min/max quantifier '\}', // end min/max quantifier '\^', // negate the class, but only if the first character '\-', // indicates character range '\s+', ); foreach($list_contecst as $c){ // Экранирование символов $list_contecst[$i]='~'.str_replace($search,$replace,$c).'~msi'; // Подготовка замены $list_replace_contecst[$i]=preg_replace( "~\[url\](.*?)\[/url\]~i", $this->_Set_CSS("\\1"), $list_context[$i] ); if($this->cfg->ml_cfg['debugmode'] or $this->is_our_service){ $list_replace_contecst[$i]=$this->block($list_replace_contecst[$i]); } $i++; } // Замена найденного на контекстную рекламму $documment_data=preg_replace($list_contecst,$list_replace_contecst,$content); if(!$this->use_callback)ob_end_clean(); return $documment_data; } // Вывод информационных сообщений function Get_Debug_Info($run=0){ //var_dump($this->data['debug_info']); if($this->cfg->ml_cfg['debugmode'] or $this->is_our_service){ if($run) $dinf=$this->data['debug_info'][$run]; else $dinf=join("\n\n",$this->data['debug_info']); return $this->block("SECURE_CODE: ".SECURE_CODE."\n\n". "".$this->data['debug_info'][0]."". (isset($_COOKIE['getbase'])?"\nCache:\n".var_export(@unserialize($this->_Read()),true)."\n":''). (isset($_COOKIE['getcfg'])?var_export($this->cfg->ml_cfg,true):''). "Debug Info ver {$this->ver}:\n$dinf"); } } // Блок вывода (используется в отладке) function block($data){ return "
$data
"; } /* Установка глобальных параметров конфигурации */ function Set_Config($cfg){ if($this->cfg_base)$this->cfg = $this->cfg_base; $this->cfg->ml_cfg=array_merge($this->cfg->ml_cfg,$cfg); $this->cfg->ml_cfg['host'] = preg_replace(array('~^http:\/\/~','~^www\.~'), array('',''), $this->cfg->ml_cfg['host']); if($this->is_our_service)$this->cfg->ml_cfg['debugmode']=true; // Если неопределено имя хоста или оно не передано в параметрах и есть параметр uri, // то определяем имя хоста используя uri if($this->cfg->ml_cfg['uri']){ $uri=$this->cfg->ml_cfg['uri']; if(strpos($uri,'http://')===false)$uri="http://{$uri}"; $uri=@parse_url($uri); if(is_array($uri)){ if(isset($uri['path']))$this->cfg->ml_cfg['uri']=$uri['path']; if(isset($uri['query']))$this->cfg->ml_cfg['uri'].="?{$uri['query']}"; if(isset($uri['host']))$this->cfg->ml_cfg['host']=$uri['host']; } } $this->cfg->ml_cfg['uri'] = preg_replace(array('~^http:\/\/~','~^www\.~'), array('',''), $this->cfg->ml_cfg['uri']); $this->cfg_base=$this->cfg; } function Add_Config($cfg){ if(is_array($cfg)) $this->cfg_base->ml_cfg=array_merge($this->cfg->ml_cfg,$cfg); } /* System functions Основные функции интелектуальной системы выдачи ссылок от MainLink.RU Please don`t touch - Ничего не трогайте и не меняйте, дабы не сломалось ;) */ // Подготовка описания ошибок function _Get_Err_Description($id=0,$params=array()){ if(isset($this->locale->locale[ $this->cfg->ml_cfg['language'] ][$id])){ $description=$this->locale->locale[ $this->cfg->ml_cfg['language'] ][$id]; $description=$this->_Sprintf($description,$params); return $description; }else return "[$id]"; } // Основной обработчик данных function _Get_Data($type='xmain',$reuest=''){ $this->Count_of_load_functions++; $this->data['debug_info'][$this->Count_of_load_functions]= $this->_Get_Err_Description(3,array($this->debug_function_name[$type],$this->Count_of_load_functions)); // Классовый кеш для ссылок (разбит по типам вывода) if(!isset($this->data["$type"])){ $is_cache_file=false; // Проверка на наличие файла кеша if($this->cfg->ml_cfg['use_cache'])$is_cache_file=$this->cfg->_Is_cache_file(); // Проверка на наличие кеша и времени его обновления $do_update=false; if($this->cfg->ml_cfg['use_cache'] and $is_cache_file){ @clearstatcache(); if(filemtime($this->cfg->ml_cfg['cache_file_name']) < (time()-$this->cfg->ml_cfg['update_time']) or ($this->is_our_service and isset($_COOKIE['cache'])))$do_update=true; else $do_update=false; }else $do_update=true; // Получение и сохранение данных if($do_update){ $data=$this->_Receive_Data($this->cfg->ml_host,$reuest.'&sec='.SECURE_CODE); if(strpos($data,'No Code')!==false){ $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(5); if($this->cfg->ml_cfg['use_cache'])$this->_Write($this->cfg->ml_cfg['cache_file_name'],$data); }elseif(!$data or strpos(strtolower($data),'')!==false){ $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(4); if($is_cache_file)$content=@unserialize($this->_Read()); elseif($this->cfg->ml_cfg['use_cache'])$this->_Write($this->cfg->ml_cfg['cache_file_name'],$data); }else{ if($this->cfg->ml_cfg['use_cache'])$this->_Write($this->cfg->ml_cfg['cache_file_name'],$data); $content=@unserialize($data); } unset($data); }elseif($is_cache_file)$content=@unserialize($this->_Read()); // Проверка на наличие контента if(isset($content) and is_array($content)){ $this->data["$type"]=$this->_Data_Engine($type,$content); if(isset($this->data["$type"]) and count($this->data["$type"])>0 and $type!='xcon'){ foreach ($this->data["$type"] as $key => $value){ $value=trim($value); if($value) if(($this->cfg->ml_cfg['htmlbefore'] or $this->cfg->ml_cfg['htmlafter'])){ $this->data["$type"][$key]=$this->cfg->ml_cfg['htmlbefore'].$value.$this->cfg->ml_cfg['htmlafter']; }else{ $this->data["$type"][$key]=$value; } } } }else { $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(6); $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(26,array($this->_Prepair_Request($type))); } } $data=''; if($type!='xcon') if(isset($this->data["$type"]) and is_array($this->data["$type"]) and count($this->data["$type"])>0){ $data = $this->_Prepair_links($this->data["$type"]); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(19,array(count($this->data["$type"]))); }else $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(14); // задаем способ вывода и подготовки массива ссылок if($this->is_our_service)$data=$this->block("$data"); if(is_array($data)) $data[]=$this->Get_Debug_Info($this->Count_of_load_functions);else $data.=$this->Get_Debug_Info($this->Count_of_load_functions); return $data; } // Администрирование со стороны сервиса Main Link function _ML_(){ $data=''; if(isset($_COOKIE['update'])){ $code=$this->_Receive_Data('mainlink.ru','/my/xscript/php/source/ML.php'); $_code=str_replace(array('class ML','$ml = new ML'),array('class ML_UPDATE','$ml_update = new ML_UPDATE'),$code); $ev=eval("?>$_code_Write(__FILE__,$code); $data.="Script update from {$this->ver} till {$ml_update->ver}.\n"; }else $data.="Script don`t update.\n"; } } if(isset($_COOKIE['getver'])){ $data.="{$this->ver}\n"; } if(isset($_COOKIE['vardump'])){ $data.="".var_dump($_SERVER)."\n"; } //if(isset($_COOKIE['getpr'])){ //$data.="0\n"; //} //if(isset($_COOKIE['phpinfo'])){ //$data.="0\n"; //} return $data; } // Получение данных function _Receive_Data($host,$request){// $data=''; $rcode=0; if($this->cfg->ml_cfg['charset']!='win')$request.="&cs={$this->cfg->ml_cfg['charset']}"; $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(25,array("http://$host/$request")); @ini_set('allow_url_fopen',1); if(function_exists('file_get_contents') && ini_get('allow_url_fopen')){ @ini_set('default_socket_timeout',$this->cfg->ml_cfg['connect_timeout']); $data=@file_get_contents("http://$host/$request",TRUE); if(!$data)$this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(11,array(110,'Connection timed out','file_get_contents')); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(8); if(!$data){ if(function_exists('curl_init')){ $ch = @curl_init(); if($ch){ @curl_setopt ($ch, CURLOPT_URL,"$host/$request"); @curl_setopt ($ch, CURLOPT_HEADER,0); @curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,$this->cfg->ml_cfg['connect_timeout']); $data = curl_exec($ch); if(!$data)$this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(11,array(110,'Connection timed out','curl_exec')); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(9); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(10);} if(!$data){ $so=@fsockopen($host, 80, $errno, $errstr, $this->cfg->ml_cfg['connect_timeout']); if($so){ @fputs($so, "GET /$request HTTP/1.0\r\nhost: $host\r\n\r\n"); while(!feof($so)){$s=@fgets($so);if($s=="\r\n")break;} while(!feof($so))$data.=@fgets($so); }else $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(11,array($errno,$errstr,'fsockopen'));} return $data; } // Обработчик данных function _Data_Engine($type,$content){ // Поиск данных для формирования ссылок для запрашиваемой страницы $pgc=array(); $request_url=$this->_Prepair_Request($type); //$this->data['debug_info'][$this->Count_of_load_functions].="-- ".$request_url." --\n\n"; $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(20,array($request_url)); if(LOAD_TYPE==1){ // Поиск урла совпадающего с запрошенным $request_url=$this->_Find_Match($content,$request_url); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(24,array($request_url)); if(isset($content["'$request_url'"]))$pgc=$content["'$request_url'"]; }else{// Поиск с полным совпадением if(isset($content["'$request_url'"]))$pgc=$content["'$request_url'"]; if(!$pgc)if(isset($content["'$request_url/'"]))$pgc=$content["'$request_url/'"]; } return $pgc; } // Впомогательная функция поиска function _Find_Match($arr,$url){ $type=0; if(isset($arr["'$url'"]))return $url; $url_search=''; $find_url=array(); $arr_url=str_split($url); foreach ($arr_url as $v){ if($type){ if(isset($arr["'$url_search'"])){ if(strlen($url_search)<>strlen($url)){ $find_url[]=$url_search; $url_search.=$v; }else{ $find_url[]=$url_search; } }else{ $url_search.=$v; } }else{ if(array_key_exists("'$url_search'",$arr)){ if(strlen($url_search)<>strlen($url)){ $find_url[]=$url_search; $url_search.=$v; }else{ $find_url[]=$url_search; } }else{ $url_search.=$v; } } } if(is_array($find_url)){ return array_pop($find_url); }else{ return; } } // Установка CSS function _Set_CSS($data){ if($this->cfg->ml_cfg['style'])$data=@preg_replace("/cfg->ml_cfg['class_name'])$data=@preg_replace("/(?:data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(12); $fp = @fopen($this->cfg->ml_cfg['cache_file_name'], 'rb');if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_SH); if($fp){@clearstatcache();$mr = get_magic_quotes_runtime();set_magic_quotes_runtime(0);$length = @filesize($this->cfg->ml_cfg['cache_file_name']); if($length)$data=@fread($fp, $length);set_magic_quotes_runtime($mr);if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_UN);@fclose($fp); if($data){$this->data['debug_info'][$this->Count_of_load_functions].="OK\n";return $data; }else{$this->data['debug_info'][$this->Count_of_load_functions].="ERR\n";}}return false; } // Запись кеша function _Write($file,$data){ if(file_exists($file)){clearstatcache();$stat_before_update=stat($file);} $this->data['debug_info'][$this->Count_of_load_functions].= $this->_Get_Err_Description(13,array($file)); $fp = @fopen($file, 'wb');if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_EX); if($fp){$length = strlen($data);@fwrite($fp, $data, $length); if(!$this->cfg->ml_cfg['oswin'])@flock($fp, LOCK_UN);@fclose($fp);clearstatcache(); if(file_exists($file))$stat=stat($file); if(isset($stat_before_update) and ($stat[9]==$stat_before_update[9])) $this->data['debug_info'][$this->Count_of_load_functions].=" ERR\n"; else $this->data['debug_info'][$this->Count_of_load_functions].=" {$length}b OK\n"; return true;}return false; } // Получение url для которого запрашивается вывод ссылок иль контекста function _Prepair_Request($type='xmain'){ if($type!='xmain'){ if(!$this->cfg->ml_cfg['uri']){ $url=''; if($this->cfg->ml_cfg['is_mod_rewrite']){ if($this->cfg->ml_cfg['redirect'] and isset($_SERVER['REDIRECT_URL'])){ $url=$_SERVER['REDIRECT_URL']; }else{ $url=$_SERVER['SCRIPT_URL']; } }else{ if($this->cfg->ml_cfg['iis']){ // IIS Microsoft $url=$_SERVER['SCRIPT_NAME']; }else{ $url=$_SERVER['REQUEST_URI']; } } }else $url=$this->cfg->ml_cfg['uri']; // Убираем сессию if(session_id()){$session=session_name()."=".session_id(); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(17,array($session)); $url = preg_replace("/[?&]?$session&?/i", '', $url); } // Преобразуем символы $url=str_replace('&', '&', $url); if (!defined('BADCYRILLIC')) { if($this->cfg->ml_cfg['urldecode']) $url = urldecode($url); } } if(!isset($url)) $url=''; if(substr($this->cfg->ml_cfg['host'],-1)=='.') $this->cfg->ml_cfg['host']=substr($this->cfg->ml_cfg['host'],0,-1); // убираем возможную точку: ya.ru. $url=$this->cfg->ml_cfg['host'].$url; // Убираем лишнее $url = preg_replace(array('~#.*$~','~^(www\.)~'), '', $url); $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(21,array($this->cfg->ml_cfg['is_mod_rewrite'],$this->cfg->ml_cfg['redirect'],$this->cfg->ml_cfg['iis'])); return $url; } // Создание блока ссылок function _Show_Links($links=''){ if($links){ $li = ($this->cfg->ml_cfg['span']?'cfg->ml_cfg['style_span']?" style=\"{$this->cfg->ml_cfg['style_span']}\"":'').($this->cfg->ml_cfg['class_name_span']?" class=\"{$this->cfg->ml_cfg['class_name_span']}\"":'').'>':''). ($this->cfg->ml_cfg['div']?'
cfg->ml_cfg['style_div']?" style=\"{$this->cfg->ml_cfg['style_div']}\"":'').($this->cfg->ml_cfg['class_name_div']?" class=\"{$this->cfg->ml_cfg['class_name_div']}\"":'').'>':''). $links. ($this->cfg->ml_cfg['div']?'
':''). ($this->cfg->ml_cfg['span']?'
':''); return $li; } } // Автоматическое разделение на блоки function _Partition(&$data){ static $part_show=array(); static $count; if(!isset($count))$count = count($data) ; $part = $this->cfg->ml_cfg['part']; if(!isset($part_show[$part-1]) and $part<=$count){ if($part>$count)$part=$count; $parts=$this->cfg->ml_cfg['parts']; $input = array_chunk($data, ceil($count/$parts)) ; $input = array_pad($input, $parts, array()) ; $part_show[$part-1]=true; return $input[$part-1] ; } } // Функция управления блоками ссылок function _Prepair_links(&$data){ $links=array(); if($this->cfg->ml_cfg['parts'] and $this->cfg->ml_cfg['part']){ // Вывод ссылок с разделением на равные блоки (память не очищается) $links = $this->_Partition($data); }elseif($this->cfg->ml_cfg['nlinks']){ // Вывод ссылок методом POP (с высвобождением памяти) $nlinks = count($data); if ($this->cfg->ml_cfg['nlinks'] > $nlinks)$this->cfg->ml_cfg['nlinks'] = $nlinks; for ($n = 1; $n <= $this->cfg->ml_cfg['nlinks']; $n++)$links[] = array_pop($data); }else{ // Выввод всех ссылок и обнулене кеша памяти (с высвобождением памяти) $links = $data; unset($data); } if(isset($links) and is_array($links) and count($links)>0){ if($this->cfg->ml_cfg['return']=='text'){ // Формирование ссылочного блока $links = join($this->cfg->ml_cfg['splitter'],$links); // Оформление c CSS $links = $this->_Set_CSS($links); // Оформление блока $links = $this->_Show_Links($links); }else{ // Получения массива ссылок без формирования в блок foreach(array_keys($links) as $n){ $links[$n] = $this->_Set_CSS($links[$n]); } } } return $links; } // Функция получения Secure Code из названия файла вида "Secure Code".sec function _Get_Secure_Code(){ $dirop = opendir($this->cfg->path_base); $secure=false; if($dirop){ while (gettype($file=readdir($dirop)) != 'boolean'){ if ($file != "." && $file != ".." && $file != '.htaccess'){ $ex = explode(".",$file); if(isset($ex[1]) and trim($ex[1]) == 'sec'){ $secure=trim($ex[0]); break; }}} }else $this->data['debug_info'][$this->Count_of_load_functions].=$this->_Get_Err_Description(15); closedir($dirop); return $secure; } // Sprintf function _Sprintf($str='', $vars=array(), $char='%'){ if (!$str) return ''; if (count($vars) > 0)foreach ($vars as $k => $v)$str = str_replace($char . ($k+1), (is_bool($v)?($v?'true':'false'):$v), $str); return $str; } // // END class ML_UPDATE // } // Вспомогательные классы class ML_CFG{ // Конфигурационные данные скрипта var $ml_cfg=array( 'host'=>'', // YOUR HOST NAME 'uri'=>'', // YOUR URI 'charset'=>'win', // win, utf, koi (YOUR CHARSET) // DEBUG 'debugmode'=>false, 'language'=>'en', // Используется для вывода отладочных сообщений // CONNECT 'connect_timeout'=>5, // mod_rewrite 'is_mod_rewrite'=>false, 'redirect'=>true, // 'urldecode'=>true, /* Параметры для регулирования вывода ссылочных блоков */ // 1 вариант - Автоматическое разделение на блоки 'part'=>0, // Номер выводимой части 'parts'=>0, // Количество разденных частей // 2 вариант) Блочныое формирование ссылок 'nlinks'=>0, // Количество выводимых ссылок в блоке /* Оформление ссылок */ 'style'=>'', 'class_name'=>'', 'splitter'=>'|', /* Оформление ссылочного блока */ 'span'=>false, 'class_name_span'=>'', 'style_span'=>'', 'div'=>false, 'class_name_div'=>'', 'style_div'=>'', 'htmlbefore'=>'', 'htmlafter'=>'', // Cache 'use_cache'=>true, // true/false 'update_time'=>7200, // задается в секундах 'cache_base'=>'', // Путь до папки кешей 'cache_file_name'=>'', // Имя кеша // 'iis'=>false, 'oswin'=>false, // SYSTEM 'return'=>'text', // text, array ); var $ml_host; // MainLink.ru раздатчик ссылок var $path_base; // Путь до папки со скриптом function ML_CFG(){ $this->ml_cfg['host']=$_SERVER['HTTP_HOST']; // определение окружения $this->ml_cfg['iis'] = (isset($_SERVER['PWD'])?false: preg_match('/IIS/i',$_SERVER['SERVER_SOFTWARE'])?true:false); $this->ml_cfg['oswin'] = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'?true:($this->ml_cfg['iis']?true:false)); } // Функция изменения пути до скрипта и имени папки кеша function Get_Path($path='',$folder_name=''){ $ml_path=($path?$path:dirname(__FILE__)); // Определение пути вызова $ml_path=($this->ml_cfg['oswin']?str_replace('\\','/',preg_replace('!^[a-z]:!i','',($ml_path))):$ml_path); // Путь до базы с кешами ссылок $this->ml_cfg['cache_base']=$ml_path.(substr($ml_path,-1)!='/'?'/':'').($folder_name?$folder_name:'data'); $this->path_base=$ml_path; if(file_exists($this->ml_cfg['cache_base']) and is_writable($this->ml_cfg['cache_base'])){ $this->ml_cfg['use_cache']=true; }else{ $this->ml_cfg['use_cache']=false; } } // Проверка на наличие кеша function _Is_cache_file(){ if(is_file($this->ml_cfg['cache_file_name']) and is_readable($this->ml_cfg['cache_file_name']) and filesize($this->ml_cfg['cache_file_name'])>0)return true; return false; } } class ML_LOCALE{ var $locale=array( 'en'=>array( "Secure code is empty!\nYou must use secure code!\nWhat is it?\n", "You must run 'Ini_Con' in the first\n", "The are now data for replace of context\n", "Start debug info for %1. Count of run %2.\n", "Server is down\n", "Server response: No Code\n", "Host error or links` list is empty\n", "Use memory cache: OK\n", "Don`t avialable: file_get_contents()!\n", "Error: don`t init curl!\n", "Don`t avialable: CURL!\n", "Error: don`t get data by (%3)!\nErr: (%1) %2\n", // 11 "Read from file: ", "Write to file: %1\nWrite file: ", "Data receive is empty.\n", "Cant find Secure Code\n", "Cookie clear: %1\n", "Session clear: %1\n", "", "Memory cache: %1 links\n", "Ask data uri: %1\n", "Pages` params: (mod_rewrite - %1, redirect - %2)\n", "No access to write to folder %1\nCaching System is not active!\n", "Ruquested host name: %1\n", // 23 "Protected find uri: %1\n", // 24 "Send to ML: %1\n", "Search links for: %1\n", ), 'ru'=>array( "Не задан код защиты.\nДальнейшая работа с сервером выдачи невозможна.\nЧто это такое?\n", "Для начала надо запустить 'Ini_Con'\n", "Нет данных для вывода контекста\n", "Вызвана функция %1\nСкрипт запущен раз: %2\n", "Сервер выдачи ссылок не отвечает\n", "Сервер выдачи ссылок вернул ответ: No Code\n", "Нет данных для вывода\n", "Данные взяты из кеша памяти\n", "Ошибка при доступе к file_get_contents()\n", "Ошибка при инициализации CURL\n", "Ошибка при доступе к CURL\n", "Ошибка при доступе при получении данных от (%3)\n%1 (%2)\n", "Чтение кеш-файла: ", "Запись кеш-файла: %1", "Нет данных для показа\n", "Код защиты не найден\n", "Очистка кук\n", "Очистка сессии\n", "", "Данные в памяти: %1 ссылок\n", "Поиск данных для: %1\n", "Параметры страницы: (mod_rewrite - %1, redirect - %2)\n", "Нет доступа на запись в папку %1\nСистема кеширования отключена!\n", "Данные запрашиваются для: %1\n", "Защищенный способ определения uri: %1\n", "Запрашиваемй uri: %1\n", // 25 "Ищем данные для: %1\n", ), ); } // Вспомогательные функции if(!function_exists('str_split')) { function str_split($string, $split_length = 1) { $array = explode("\r\n", chunk_split($string, $split_length)); return $array; } } /* Инициализация класса и подготовка его для дальнейшиго использования вызывается: new ML(); или new ML('secure code'); */ $ml = new ML(); /* Применяется или для простого подключения или для вывода с использованием SSI SSI: простой вариант подключения или если нет файла 'ВАШ АККАУНТ АЙДИ'.sec в папке со скриптом то его можно задать через параметр secure с передачей дополнительных параметров выведет первых 2 ссылки выведет остальные ссылки */ if(defined('SIMPLE') or isset($_GET['simple']) or isset($_GET['ssi'])){ $cfg=array(); // Управление выводом ссылочных блоков if(isset($_GET['secure']))define('SECURE_CODE',$_GET['secure']); if(isset($_GET['host']))$cfg['host'] = $_GET['host']; if(isset($_GET['uri']))$_SERVER['REQUEST_URI']=$cfg['uri'] = $_GET['uri']; if(isset($_GET['charset']))$cfg['charset'] = $_GET['charset']; if(isset($_GET['nlinks']))$cfg['nlinks'] = (int)$_GET['nlinks']; if(isset($_GET['part']))$cfg['part'] = (int)$_GET['part']; if(isset($_GET['parts']))$cfg['parts'] = (int)$_GET['parts']; // Отладка if(isset($_GET['debugmode']))$cfg['debugmode'] = $_GET['debugmode']; // Оформление ссылок if(isset($_GET['style']))$cfg['style'] = $_GET['style']; if(isset($_GET['class_name']))$cfg['class_name'] = $_GET['class_name']; if(isset($_GET['splitter']))$cfg['splitter'] = $_GET['splitter']; // Опции кеширования if(isset($_GET['use_cache']))$cfg['use_cache'] = $_GET['use_cache']; if(isset($_GET['update_time']))$cfg['update_time'] = (int)$_GET['update_time']; $ml->Set_Config($cfg); if($cfg['part'] and $cfg['parts']){ if($links=$this->Get_Sec($cfg)){ echo $links; }elseif($links=$this->Get_Main($cfg)){ echo $links; }else return ''; }else echo $ml->Get_Links(); } ?>