Строки, хакеры и шифровки

Немного скучной теории

Действия со строками в PHP

Подробности, как всегда, в официальном мануале:

В тылу врага

Представь, что ты секретный агент в тылу врага (кто будет врагом — придумай сам). Ты решил воспользоваться полученными в уроках знаниями для создания программы шифрования и расшифровки текста. На картинке ты видишь набросок такой программы.

  1. Доделай шифрование до нормального уровня
  2. Доделай расшифровку зашифрованного текста. Посказка для глупеньких: тебе поможет array_flip()

Ссылка: http://codepad.org/DUbYE5tP

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

l33tspeak

Если ты когда-нибудь видел хакеров (например, в кино или в интернете), то знаешь, что у них есть свой, особый язык, который позволяет отличать своих от чужих. Он называется l33tspeak, и объяснен в википедии: http://en.wikipedia.org/wiki/Leet (как видишь, википедисты обладают элитными знаниями).

Чем мы хуже хакеров? Давай напишем программу для перевода текста на элитный язык. Опять же, воспользуемся массивом перекодировки и функцией strtr

Задачка: доделай программу по ссылке http://codepad.org/5XEkSKHI для перевода текста на l33tspeak. Покажи нам результат.

На словах ты Лев Толстой

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

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

> слово1 слово2 слово3
> слово1 слово2 слово3
> Я слово4 слово5
    

Задание

Ссылка на исходные данные: http://codepad.org/yIDYMDIR

Еще немного скучной теории

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

Для этого есть хитрый хак:

$string = 'Кот';
$letters = preg_split('//u', $string, null, PREG_SPLIT_NO_EMPTY);
var_dump($letters); // Массив ['К', 'о', 'т'];

Чтобы понять, как он работает, надо изучить регулярные выражения (скоро-скоро).

Палиндром

Палиндром — это строка, которая читается как слева направо, так и справа налево, например «А роза упала на лапу Азора» или «Аргентина манит негра». Большие/маленькие буквы, пробелы между словами — не имеют значения. Больше информации про палиндромы в вики: http://ru.wikipedia.org/wiki/Палиндром.

Задание

Подсказка: сначала мы переводим строку в нижний регистр, чтобы не было разницы, большая буква или маленькая, потом вырезаем из нее пробелы. После этого мы проходим от края до середины посимвольно, на каждом шаге берем по 1 символу с начала и конца строки и сравниваем. Если они не совпали — строка не палиндром, и мы заканчиваем программу. Если все символы совпали — ура, это палиндром!

Ах да, еще один совет. В интернете тебе могут посоветовать решать задачу через strrev() (которая не работает с многобайтными кодировками и русскими буквами и про которую я советую сразу забыть). Вот как надо поступать с такими «советчиками»:

-----

Куда вводить код? Что надо скачать? Читай первый урок.

Есть вопросы? Задай гуглу или автору.

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

Как связаться с автором? Я хочу переодеть его в платье школьницы и жениться на нем. Ящик codedokode (кот) gmail.com ждет ваших писем. А вконтактик и фейсбучек ждут ваших лайков. Но ответ на банальные вопросы лучше искать в Гугле или на stackoverflow.

Я решил задачку!!! Молодец, делай следующий урок

Ideone не работает!11 Ну так открой Гугл и найди сайты вроде http://phptester.net/ или http://codepad.org/ или http://www.runphponline.com/ . Не ленись.

Почему так много рекламы? Всю рекламу на сайте ставит юкоз (бесплатный хостинг же), а не я.

На сайте установлена система Google Analytics (и еще несколько аналогичных систем от юкоза). Данные о твоем IP-адресе, посещаемых страницах, времени посещения отправляются в Google Corporation, США. Хочу знать, кто и зачем сюда заходит. Поверь, другие сайты делают точно так же. Все сайты пишут логи.