Статьи
Политические видеоблогеры — это резонеры и политические пижоны, подробнее описания и причина этому заключению ниже...
Подробнее об Политических Блогерах:
Резонёр — человек, любящий вести пространные рассуждения, преимущественно нравоучительного характера и подталкивать на это других, 100% это СЕ, Шарий, Наждак и другие популярные видеоблогеры, связывающие свои узы с политикой.
Есть этому пример, как изначально обычный Александр Дубинский, был же политическим видео блогером, а в итоге депутатом стал.
Уверен что цель его и публика на канале, была в сторону его личных прихотей и интересов, которые для него больше важны, нежели интересы народа.
Еще немного и он будет промывать мозги своей аудитории и рассказывать какой он хороший а все плохие и как нужно делать и поступать а как не стоит.
И люди будут верить и слушать Александра Дубинского.
С помощью таких способов — видеоканалов на Ютюбе, под «знаком» Видеоблогер — попадают в политику и получают большую часть власти и управленчества над своей аудиторией для манипуляций и порабощению, особенно своей аудитории на канале Ютюба.
На второе место я бы подобрал слово ПОЛИТИЧЕСКИЙ ПИЖОН — который хочет выделиться не с помощью одежды а с помощью Политики. Вам только повод дай и вы тут же все начинаете обсуждать и коверкать, а сами на стуле сидите и монтируете видео дома…
Вот честно, приукрасить в описании и в названии обложки видео, видео блогеры, ох как любят привлечь этим к себе внимание.
Не надоело на больной теме пиариться видеоблогерам о политике и подталкивать на провокации других людей?
Лучше бы делом занялись а не видео снимать для Ютюба и других агитировать.
Идите политические видеоблогеры, покажите себя в деле, а не языком болтать.
Заполонили весь Ютюб и все пространство интернета как вирус, который заставляет подталкивать других людей на ваши действия и ваше мнение с советами, когда в этот момент, вы — политические видеоблогеры, сидите в удаленных и неизвестных местах…
Таким способом, в своих интересах, видеоблогеры используют наивных граждан идти на те поступки, о которых рассказывают сами видеоблогеры на своих каналах.
Уже кроме политики и Зеленского ничего в мире нет другого,
Видеоблогеры — Вы больны этим…
Есть множество интересных и приятных тем о разговоре и для обсуждения...
Что же вам — видеоблогерам, останеться делать и что обсуждать, если в стране все наладиться и политическая тематика, не будет на первом месте?
Беды снова создавать начнете и слухи пускать?
Создавать, провокации -причины и ситуации для этого ?
Вот честно, политические видеоблогеры — этоРЕЗОНЁРЫ и ПОЛИТИЧЕСКИЕ ПИЖОНЫ!

Излил душу в виде Изображения...
Возможно у вас тоже есть творческие работы, где вы передаете свои эмоции на фото, рисуя или в графике ;)
Так что, все кто в теме, делитесь своими отзывами и мнениями, делитесь своим творчеством и интересными публикациями на сайте Общественный блог — Losper
Всем привет, уже что то новое происходит в нашем мире.
Делаю что хотят и как хотят, а вы сами мучайтесь...
Продажа в не законных киосках в городе Днепр на Проспекте героев идет полным ходом и не прекращается.
Временно уберут и снова поставят свои ларьки на проспекте героев возле АТБ!
Мало того, так еще скорее всего установленные киоски на проспекте героев возле АТБ стоят не законно в городе Днепр.
И так начнем...
Сегодня зашел в киоск возле АТБ на Проспекте героев 4-ом массиве, что бы купить украинские помидоры.
Но меня это не должно волновать, у них и так накрутка на продукты + есть % на отход или брак.
Заработать хитрым способом они хотят, а вот позаботиться о покупателях ни кто не собирается.
Адрес киоска: г. Днепропетровск, Проспект Героев, 4-ый массив, возле АТБ

Недавно узнал о необыкновенном кофе!
Может кто-то уже давно об этом знал, но молчал )
В продаже еще не видел кофе для программиста, но хотелось бы попробовать.
Дело в том, что кофе для программистов не один вид, есть:
Кофе Python
Кофе JavaScript
Кофе Java
Кофе C++
Вот все конечно хорошо, только как по мне, для Coffe C++ нужно не молотое а целые зерна кофейные :)
Для Java и логотип Java соответствует, нормальному заварному или молотому Кофе.
Так что, с Java все понятно и ясно...
Для Python тоже думаю сойдет данная упаковка Кофе.
Но вот есть еще один капризный и запутанный JavaScript, к которому бы подошел коньяк к Coffe JavaScript.
Если кто-то пробовал данное кофе программиста, прошу отписаться и рассказать, где пробовали и как на вкус )
Может еще прибавляет скорость написания кода ?
Или придает энергию до утра? )))

Рассмотрим, как в памяти компьютера хранятся данные.
Вообще, как компьютер может хранить, например, слово «диск»? Главный принцип — намагничивание и размагничивание одной дорожки (назовем ее так). Одна микросхема памяти — это, грубо говоря, огромное количество дорожек. Сейчас попробуем разобраться. Например:
нуль будет обозначаться как 0000 (четыре нуля),
один 0001,два 0010,
(т.е. правую единицу заменяем на 0 и вторую устанавливаем в 1).
Далее так:
три 0011четыре 0100пять 0101шесть 0110семь 0111 восемь 1000девять 1001
и т.д.
Уловили принцип? «0» и «1» — это т.н. биты. Один бит, как вы уже заметили, может быть нулем или единицей, т.е. размагничена или намагничена та или иная дорожка («0» и «1» это условное обозначение). Если еще присмотреться, то можно заметить, что каждый следующий установленный бит (начиная справа) увеличивает число в два раза: 0001 в нашем примере = 1; 0010 два; 0100 четыре; 1000 восемь и т.д. Это и есть т.н. двоичная форма представления данных.
Т.о. чтобы обозначить числа от 0 до 9 нам нужно четыре бита (хоть они и не до конца использованы. Можно было бы продолжить: десять 1010, одиннадцать 1011, пятнадцать 1111).
Компьютер хранит данные в памяти именно так. Для обозначения какого-нибудь символа (цифры, буквы, запятой, точки...) в компьютере используется определенное количество бит. Компьютер «распознает» 256 (от 0 до 255) различных символов по их коду. Этого достаточно, чтобы вместить все цифры (0 — 9), буквы латинского алфавита (a — z, A — Z), русского (а — я, А — Я), а также другие символы. Для представления символа с максимально возможным кодом (255) нужно 8 бит. Эти 8 бит называются байтом. Т.о. один любой символ — это всегда 1 байт (см. рис. 1).
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
р | н | р | н | н | р | н | р |
Можно элементарно проверить. Создайте в текстовом редакторе файл с любым именем и запишите в нем один символ, например, «М» (но не нажимайте Enter!). Если вы посмотрите его размер, то файл будет равен 1 байту. Если ваш редактор позволяет смотреть файлы в шестнадцатеричном формате, то вы сможете узнать и код сохраненного вами символа. В данном случае буква «М» имеет код 4Dh в шестнадцатеричной системе, которую мы уже знаем или 1001101 в двоичной.
Т.о. слово «диск» будет занимать 4 байта или 4*8 = 32 бита. Как вы уже поняли, компьютер хранит в памяти не сами буквы этого слова, а последовательность «единичек» и «ноликов». «Почему же тогда на экране мы видим текст, а не „единички-нолики“? — спросите вы. Чтобы удовлетворить ваше любопытство, я забегу немного вперед и скажу, что всю работу по выводу самого символа на экран (а не битов) выполняет видеокарта (видеоадаптер), которая находится в вашем компьютере. И если бы ее не было, то мы, естественно, ничего бы не видели, что у нас творится на экране.
В Ассемблере после двоичного числа всегда должна стоять буква „b“. Это нужно для того, чтобы при ассемблировании нашей программы Ассемблер смог отличать десятичные, шестнадцатеричные и двоичные числа. Например: 10 — это „десять“, 10h — это „шестнадцать“ а 10b — это „два“ в десятичной системе.
Т.о. в регистры можно загружать двоичные, десятичные и шестнадцатеричные числа.
Например:
mov ax,20mov bh,10100<strong style=»box-sizing: border-box;">b</strong>mov cl,14<strong style=«box-sizing: border-box;»>h</strong>
В результате в регистрах AX, BH и CL будет находится одно и тоже число, только загружаем мы его в разных системах. Компьютер же будет хранить его в двоичном формате (как в регистре BH).
Итак, подведем итог. В компьютере вся информация хранится в двоичном формате (двоичной системе) примерно в таком виде: 10101110 10010010 01111010 11100101 (естественно, без пробелов. Для удобства я разделили биты по группам). Восемь бит — это один байт. Один символ занимает один байт, т.е. восемь бит. По-моему, ничего сложного. Очень важно уяснить данную тему, так как мы будем постоянно пользоваться двоичной системой, и вам необходимо знать ее на «отлично».
Как перевести двоичное число в десятичное:
Надо сложить двойки в степенях, соответствующих позициям, где в двоичном стоят единицы. Например:Возьмем число 20. В двоичной системе оно имеет следующий вид: 10100b
Итак (начнем слева направо, считая от 4 до 0; число в нулевой степени всегда равно единице (вспоминаем школьную программу по математике)):
10100b = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 = 20---------------------------------------------16+0+4+0+0 = 20
Как перевести десятичное число в двоичное:
Можно делить его на два, записывая остаток справа налево:
20/2 = 10, остаток 010/2=5, остаток 05/2=2, остаток 12/2=1, остаток 01/2=0, остаток 1
В результате получаем: 10100b = 20
Как перевести шестнадцатеричное число в десятичное:
В шестнадцатеричной системе номер позиции цифры в числе соответствует степени, в которую надо возвести число 16:8Ah = 8*16 + 10 (0Ah) = 138
В настоящий момент есть множество калькуляторов, которые могут считать и переводить числа в разных системах счисления. Например, калькулятор Windows, который должен быть в инженерном виде. Очень удобен калькулятор и в DOS Navigator'е. Если у вас есть он, то отпадает необходимость в ручном переводе одной системы в другую, что, естественно, упростит вам работу. Однако, знать этот принцип крайне важно!
Сегментация памяти в DOS.
Возьмем следующее предложение: «Изучаем сегменты памяти». Теперь давайте посчитаем, на каком месте стоит буква «ы» в слове «сегменты» от начала предложения включая пробелы… На шестнадцатом. Подчеркну, что мы считали слово от начала предложения.Теперь немного усложним задачу и разобьем предложение следующим образом (символом "_" обозначен пробел):
Пример N 1:0000: Изучаем_0010: сегменты_0020: памяти0030:
В слове «Изучаем» символ «И» стоит на нулевом месте; символ «з» на первом, «у» на втором и т.д. В данном случае мы считаем буквы начиная с нулевой позиции, используя два числа. Назовем их сегмент и смещение. Тогда, символ «ч» будет иметь следующий адрес: 0000:0003, т.е. сегмент 0000, смещение 0003. Проверьте...
В слове «сегменты» будем считать буквы начиная с десятой позиции, но с нулевого смещения. Тогда символ «н» будет иметь следующий адрес: 0010:0005, т.е. пятый символ начиная с десятой позиции. 0010 — сегмент, 0005 смещение. Тоже проверьте...
В слове «память» считаем буквы начиная с 0020 сегмента и также с нулевой позиции. Т.о. символ «а» будет иметь аодрес 0020:0001, т.е. сегмент 0020, смещение 0001. Опять проверим...
Итак, мы выяснили, что для того, чтобы найти адрес нужного символа необходимо два числа: сегмент и смещение внутри этого сегмента. В Ассемблере сегменты хранятся в сегментных регистрах: CS, DS, ES, SS (см. предыдущий выпуск), а смещения могут храниться в других (но не во всех).
Регистр CS служит для хранения сегмента кода программы (Code Segment — сегмент кода);
Регистр DS для хранения сегмента данных (Data Segment — сегмент данных);
Регистр SS для хранения сегмента стека (Stack Segment — сегмент стека);
Регистр ES дополнительный сегментный регистр, который может хранить любой другой сегмент (например, сегмент видеобуфера).
Пример N 2:
Давайте попробуем загрузить в пару регистров ES:DI сегмент и смещение буквы «м» в слове «памяти» из примера N 1 (см. выше). Вот как это запишется на Ассемблере:
(1) mov ax,0020(2) mov es,ax(3) mov di,2
Теперь в регистре ES находится сегмент с номером 20, а регистре DI смещение к букве «м» в слове «памяти». Проверьте, пожалуйста...
Здесь стоит отметить, что загрузка числа (т.е. какого-нибудь сегмента) напрямую в сегментый регистр запрещена. Поэтому мы в строке (1) загрузили сегмент в AX, а в строке (2) загрузили в регистр ES число 20, которое находилось в регистре AX:
<strike style=«box-sizing: border-box;»>mov ds,15</strike> ---> ошибка!<strike style=«box-sizing: border-box;»>mov ss,34h</strike> ---> ошибка!
Когда мы загружаем программу в память, она автоматически располагается в первом свободном сегменте. В файлах типа *.com все сегментные регистры автоматически инициализируются для этого сегмента (устанавливаются значения равные тому сегменту, в который загружена программа). Это можно проверить при помощи отладчика. Если, например, мы загружаем программу типа *.com в память, и компьютер находит первый свободный сегмент с номером 5674h, то сегментные регистры будут иметь следующие значения:
CS = 5674hDS = 5674hSS = 5674hES = 5674h
Код программы типа *.com должны начинаться со смещения 100h. Для этого мы, собственно, и ставили в наших прошлых примерах программ оператор org 100h, указывая Ассемблеру при ассемблировании использовать смещение 100h от начала сегмента, в который загружена наша программа (позже мы рассмотрим для чего это нужно). Сегментные же регистры, как я уже говорил, автоматически принимают значение того сегмента, в который загрузилась наша программа.
Пара регистров CS:IP задает текущий адрес кода. Теперь рассмотрим, как все это происходит на конкретном примере:
Пример N 3.
(1) CSEG segment(2) org 100h(3) _start:(4) mov ah,9(5) mov dx,offset My_name(6) int 21h(7) int 20h(8) My_name db 'Oleg$'(9) CSEG ends(10) end _start
Итак, строки (1) и (8) описывают сегмент: CSEG (даем имя сегменту) segment (оператор Ассемблера, указывающий, что имя CSEG — это название сегмента); CSEG ends (end segment — конец сегмента) указывает Ассемблеру на конец сегмента.
Строка (2) сообщает, что код программы (как и смещения внутри сегмента CSEG) необходимо отсчитывать с 100h. По этому адресу в память всегда загружаются программы типа *.com.
Запускаем программу из Примера N 3 в отладчике. Допустим, она загрузилась в свободный сегмент 1234h. Первая команда в строке (4) будет располагаться по такому адресу:
1234h:0100h (т.е. CS = 1234h, а IP = 0100h) (посмотрите в отладчике на регистры CS и IP).
Перейдем к следующей команде (в отладчике CodeView нажмите клавишу F8, в другом посмотрите какая клавиша нужна; будет написано что-то вроде «F8-Step»). Теперь вы видите, что изменились следующие регистры:
AX = 0900h (точнее, AH = 09h, а AL = 0, т.к. мы загрузили командой mov ah,9 число 9 в регистр AH, при этом не трогая AL. Если бы AL был равен, скажем, 15h, то после выполнения данной команды AX бы равнялся 0915h)
IP = 102h (т.е. указывает на адрес следующей команды. Из этого можно сделать вывод, что команда mov ah,9 занимает 2 байта: 102h — 100h = 2).
Следующая команда (нажимаем клавишу F8) изменяет регистры DX и IP. Теперь DX указывает на смещение нашей строки («Oleg$») относительно начала сегмента, т.е. 109h, а IP равняется 105h, т.е. адрес следующей команды. Нетрудно посчитать, что команда mov dx,offset My_name занимает 3 байта (105h — 102h = 3).
Обратите внимание, что в Ассемблере мы пишем:
mov dx,offset My_name
а в отладчике видим следующее:
mov dx,109 (109 — шестнадцатеричное число, но CodeView символ 'h' не ставит. Это надо иметь в виду).
Почему так происходит? Дело в том, что при ассемблировании программы, Ассемблер подставляет вместо offset My_name реальный адрес строки с именем My_name в памяти. Можно, конечно, записать сразу
mov dx,109h
Программа будет работать нормально. Но для этого нам нужно высчитать самим этот адрес. Попробуйте вставить следующие команды, начиная со строки (7) в примере N 3:
(7) int 20h(8) int 20h(9) My_name db 'Oleg$'(10) CSEG ends(11) end _start
Просто продублируем команду int 20h (хотя, как вы уже знаете, до строки (8) программа не дойдет).
Теперь ассемблируйте программу заново. Запускайте ее под отладчиком. Вы увидите, что в DX загружается не 109h, а другое число. Подумайте, почему так происходит. Это просто!
В окне «Memory» («Память») вы должны увидеть примерно такое:
1234:0000 CD 20 00 A0 00 9A F0 FE = .a.|N1_|_N2_| |_________N3__________| |N4_|
Позиция N1 (1234) — сегмент, в который загрузилась наша программа (может быть любым).
Позиция N2 (0000) — смещение в данном сегменте (сегмент и смещение отделяются двоеточием (:)).
Позиция N3 (CD 20 00… F0 FE) — код в шестнадцатеричной системе, который располагается с адреса 1234:0000.
Позиция N4 (= .a.) — код в ASCII (ниже рассмотрим), соответствующий шестнадцатеричным числам с правой стороны.
В Позиции N2 (смещение) введите значение, которое находится в регистре DX после выполнения строки (5). После этого в Позиции N4 вы увидите строку «Oleg$», а в Позиции N3 — код символов «Oleg$» в шестнадцатеричной системе… Вот что загружается в DX! Это не что иное, как АДРЕС (смещенеие) нашей строки в сегменте!
Но вернемся. Итак, мы загрузили в DX адрес строки в сегменте, который мы назвали CSEG (строки (1) и (9) в Прмере N 3). Теперь переходим к следующей команде: int 21h. Вызываем прерывание DOS с функцией 9 (mov ah,9) и адресом строки в DX (mov dx,offset My_name).
Как я уже говорил раньше, для использования прерываний в программах, в AH заносится номер функции. Номера функций нужно запоминать.
Наше первое прерывание.
Функция 09h прерывания 21h выводит строку на экран, адрес которой указан в регистре DX.Вообще, любая строка, состоящая из ASCII символов, называется ASCII-строка. ASCII символы — это символы от 0 до 255 в DOS, куда входят буквы русского и латинского алфавитов, цифры, знаки препинания и пр.
Изобразим это в таблице (так всегда теперь будем делать):
Функция 09h прерывания 21h — вывод строки символов на экран в текущую позицию курсора:
Вход: AH = 09h, DX = адрес ASCII-строки символов, заканчивающийся '$'
Выход: ничего
В поле «Вход» мы указываем, в какие регистры что загружать, а в поле «Выход» — что возвращает функция. Сравните эту таблицу с Примером N 3.
Вот мы и рассмотрели сегментацию памяти. Если я что-то упустил, то это рассмотрим в последующих выпусках. Очень надеюсь на то, что вы разобрались в данной теме.
Теперь интересная программка для практики, которая выводит в верхний левый угол экрана веселую рожицу на синем фоне:
(1) CSEG segment(2) org 100h(3) _beg:(4) mov ax,0B800h(5) mov es,ax(6) mov di,0(7)(8) mov ah,31(9) mov al,1(10) mov es:[di],ax(11)(12) mov ah,10h(13) int 16h(14)(15) int 20h(16)(17) CSEG ends(18) end _beg
Многие операторы вы уже знаете. Поэтому я буду объяснять только новые.
В данном примере мы используем вывод символа прямым отображением в видеобуфер.
В строках (4) и (5) загружаем в сегментный регистр ES число 0B800h, которое соответствует сегменту дисплея в текстовом режиме (запомните его!). В строке (6) загружаем в регистр DI нуль. Это будет смещение относительно сегмента 0B800h. В строках (8) и (9) в регистр AH заносится атрибут символа (31 — ярко-белый символ на синем фоне) и в AL — ASCII-код символа (01 — это рожица) соответственно.
В строке (10) заносим по адресу 0B800:0000h (т.е. первый символ в первой строке дисплея — верхний левый угол) атрибут и ASCII-код символа (31 и 01 соответственно) (сможете разобраться?).
Обратите внимание на запись регистров в строке (10). Скобки ( [ ] ) указывают на то, что надо загрузить число не в регистр, а по адресу, который содержится в регистре (в данном случае, как уже отмечалось, — это 0B800:0000h).
Можете поэксперементировать с данным примером. Только не меняйте строки (4) и (5). Сегментный регистр должен быть ES (можно, конечно, и DS, но тогда надо быть осторожным). Более подробно данный метод рассмотрим позже. Сейчас нам из него нужно понять принцип сегментации на практике.
Следует отметить, что вывод символа прямым отображением в видеобуфер является самым быстрым. Выполнение команды в строке (10) занимает 3 — 5 тактов. Т.о. на Pentium-100Mhz можно за секунду вывести 20 миллионов(!) символов или чуть меньше точек на экран! Если бы все программисты (а особенно Microsoft) выводили бы символы или точки на экран методом прямого отображения в видеобуфер на Ассемблере, то программы бы работали чрезвычайно быстро… Я думаю, вы представляете...
Сколько стоит верификация в инстаграме?
Кругом сплошная коррупция и взяточничество!
Взятки в Инстаграм за Верификацию идут полным ходом, у кого есть хорошая сумма денег.
Инстаграм берет взятки и ни чем не отличается от коррупционеров и олигархов, которым по фиг на людей, они видят в людях только выгоду.
Когда уже начнут считаться с людьми...
Пусть тогда укажут, что стоимость Верификации — стоит 300 тысяч!
Пусть Верификация будет отдельная и открытая услуга — функция, в приложении instagram для всех пользователей.

Есть глобальная проблема с кириллицей в PHPFox
Иероглифы в кириллице при создании контента и вывода ссылки в окне браузера в место кириллицы отображаются иероглифы в PHPFox.
Еще есть проблема в PHPFox, это транслит ссылок из русских ссылок в латинские...
При создании на русском языке любого контента в PHPFox, в браузере будет отображаться название ссылки контента на русском или в виде иероглифов и транслит ссылок в кириллице не переводит в латынь.
Есть решение как избавиться от русских ссылок, которые отображаются в PHPFox на русском языке или отображаются в место кириллицы — иероглифами.
И так, приступим к решению проблем ссылок и транслита ссылок в PHPFox.
Патч для кириллицы:
Открываем: /Ваш сайт/include/library/phpfox/url/url.class.php
public function cleanTitle($sTitle)
{
После них вставляем:
$sTitle = str_replace(
array( 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я', 'І', 'і', 'Ї', 'ї', 'Є', 'є' ),
array( 'a', 'a', 'b', 'b', 'v', 'v', 'g', 'g', 'd', 'd', 'e', 'e', 'e', 'e', 'j', 'j', 'z', 'z', 'i', 'i', 'y', 'y', 'k', 'k', 'l', 'l', 'm', 'm', 'n', 'n', 'o', 'o', 'p', 'p', 'r', 'r', 's', 's', 't', 't', 'u', 'u', 'f', 'f', 'h', 'h', 'c', 'c', 'ch', 'ch', 'sh', 'sh', 'sh', 'sh', '', '', 'y', 'y', '', '', 'e', 'e', 'u', 'u', 'ya', 'ya', 'i', 'i', 'ii', 'ii', 'e', 'e' ), $sTitle);
Открываем: /Ваш сайт/include/library/phpfox/parse/input.class.php
$sUrls = PHPFOX_TIME;
}
После них вставляем:
$sUrls = str_replace(
array( 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я', 'І', 'і', 'Ї', 'ї', 'Є', 'є' ),
array( 'a', 'a', 'b', 'b', 'v', 'v', 'g', 'g', 'd', 'd', 'e', 'e', 'e', 'e', 'j', 'j', 'z', 'z', 'i', 'i', 'y', 'y', 'k', 'k', 'l', 'l', 'm', 'm', 'n', 'n', 'o', 'o', 'p', 'p', 'r', 'r', 's', 's', 't', 't', 'u', 'u', 'f', 'f', 'h', 'h', 'c', 'c', 'ch', 'ch', 'sh', 'sh', 'sh', 'sh', '', '', 'y', 'y', '', '', 'e', 'e', 'u', 'u', 'ya', 'ya', 'i', 'i', 'ii', 'ii', 'e', 'e' ), $sUrls);
Вот и все!
Теперь ваша головная боль исчезнет на всегда и на вашем прекрасном сайте, на платформе PHPFox, будут все ссылки в окне браузера отображаться в место кириллице на латыни:
В место того, как БЫЛО:
ваш_сайт/blog/мой блог или как чаще всего бывает: ваш_сайт/blog/??? ????
И теперь как БУДЕТ:
ваш_сайт/blog/moy_blog
P.S. Помогу с переводом!
А потом во время каких-то ссор(которые бывают у всех и это нормально!) или после них, высказав все, ты думаешь, а откуда такое вообще в тебе взялось и каким образом начало оттуда изливаться?
А вот каким.Молчание.Каждый раз замалчивая свои недовольства и не обсуждая что-то, что тебя не устраивает, ты растить в себе семя, которое рано или поздно прорвется и постарается уничтожить все хорошее, что когда либо выросло.
Этому 'мне не нравится ' нужно куда-то деваться, понимаешь? Оно никуда не уходит.Оно просто копится-копится-копится, а когда чаша терпения переполняется, осознаешь, что твои открытый рот говорит такие ужасные вещи, о которых раньше ты даже подумать не мог(ла) и с некоторыми даже не согласен(на)если так поразмыслить.
Вывод:
Нужно переступать через страх, рассказать о том, что тебе не нравится и спокойной и зрело это обсудить, найдя компромисс.
Взаимоотношения, построенные на обсуждении всего и вся(даже чего-то неприятного и отрицательного)являются самыми-самыми крепкими.
Говорите!