Архив рубрики: Лайфхаки

Уроки PHP — while — endwhile

Маленькое отступление от глобальных и умных слов: оператор endwhile заменяет собой фигурные скобочки 😉

Как это происходит на практике:

Раньше (до того, как узнали о существовании endwhile) мы писали код так:

<!DOCTYPE html>
<html>
<head>
<title>A loop of your own</title>
<link type=’text/css’ rel=’stylesheet’ href=’style.css’/>
</head>
<body>
<?php
//Add while loop below
$f = 0;
while ($f < 3) {
echo «Hallo».» $f».»<br>»;
$f ++;
}
?>
</body>
</html>

<?php
//Add while loop below
$minimal = 0;
$maximal = 10;
while ($minimal < $maximal) {
echo "Hallo"."$minimal"."\n";
$minimal ++;
}

но теперь, озаренные лучами просвещения, и вооруженные endwhile, мы пишем код так:

<!DOCTYPE html>
<html>
<head>
<title>A loop of your own</title>
<link type=’text/css’ rel=’stylesheet’ href=’style.css’/>
</head>
<body>
<?php
//Add while loop below
$f = 0;
while ($f < 3):
echo «Hallo».» $f».»<br>»;
$f ++;
endwhile;
?>
</body>
</html>

<?php
//Add while loop below
$f = 0;
while ($f < 3):
echo "Hallo "."$f"."\n";
$f ++;
endwhile;
?>

Как видите — разница только в двоеточии, поставленном вместо начальной фигурной скобки, и операторе endwhile, который использован вместо закрывающей фигурной скобки. Все остальное — не меняется. Честно сказать — особой разницы нет, и потому — пользуйтесь методом, который вам удобнее.

Фак Роскомнадзору и иже с ним — часть 1

доступ запрещенЯ сторонник свободы доступа к информации. Да, мне несомненно будет неприятно найти свои личные данные где-то в общем доступе — и это одна из граней свободной информации, но вот что бы кто-то решал — могу ли я свободно прочесть что-то вроде «Сопри эту книгу» Эбби Хоффмана (запрещена в Канаде и США), «Моя борьба» Гитлера (тираж контролируется, да и вообще книга крайне редко встречается в свободном доступе), не говоря уже о крайне опасной для подростков «Над пропастью во ржи» Джея Ди Сэлинджера, которую то запрещают, то цензурят, то опять запрещают… Подобная мысль мне просто противна. Равно как и мысль о том, что по велению какого-то надзорного комитета вдруг могут стать недоступными какие-то сайты в Сети.

Вообще вся ситуация с разграничением доступа к сайтам в Интернете, который последние годы преподносится как чудесная мега-кладезь знаний всего человечества (а человечество — оно ведь не только слишком положительное, или слишком отрицательное) все чаще наталкивает на воспоминания о следующих строках:
«Да, я преступник. Моё преступление — любопытство. Моё преступление в том, что я сужу людей не по тому, как они выглядят, а по тому, что они говорят и думают. Моё преступление в том, что я намного умнее вас. Это то, что вы мне никогда не простите«. Если интересно — полный текст этого знаменитого «Манифеста хакера» вы найдете по этой ссылке 😉

Так вот … мы не будем разбираться с причинами блокировки. Мы просто попробуем понять, как обойти ее. На самом-то деле все просто, и есть несколько крайне простых методик, благодаря которым можно обломать любой Роскомнадзор. Проверенно Великой Китайской Стеной, да 😉

Сегодняшний вечер мы посвятим ознакомлению с TOR, немного о котором я писал ранее.

Рассмотрим основные вопросы использования TOR-браузера:

1. Как это работает?

С теоретической точки зрения все просто: каждый пакет, отправляемый через TOR-сеть шифруется тремя ключами, после чего отправляется на первый прокси-сервер, выбираемый случайным образом. После захода на первый прокси — снимается первый ключ шифрования, после чего сервер узнает — куда далее отправить пакет. Второй прокси-сервер, получивший пакет, снимает второй слой шифра, после чего узнает адрес третьего прокси-сервера, который в свою очередь после получения многострадального пакета снимает третий слой шифрования, и отправлять на целевой адрес запрос в чистом виде. Обратный трафик идет по аналогичной методике.

Неплохой иллюстрацией всего этого процесса будет следующая картинка:

TOR - общая схема работы
TOR — общая схема работы

2. Метод работы

Если не вдаваться углубленно — заходите на ссылку и качайте инсталятор клиента TOR-сети. Запустив инсталятор мы видим меню выбора языка:

TOR - выбор языкавыбираем необходимый нам язык и кликаем Ok, после чего получаем возможность выбрать папку для установки клиента. Выбрав нужный вам каталог — запускайте процесс инсталяции (скорость установки зависит от конфигурации системы).

После завершения установки клиента — запускаем его и попадаем в меню начальной настройки клиента:

tor сетевые настройки

Интересной особенностью TOR — клиента является возможность настройки его работы на компьютерах, чей трафик жестко контролируется либо вредными админами, либо организациями, предпочитающими решать что-то за кого-то. Эта возможность будет доступна вам по клику на пункт «Настроить» после текста «Интернет-соединение этого компьютера цензурируется или находится за прокси…». Однако (в моей практике) — подобная настройка понадобилась только в Китае — на компьютере, работающим за «Великой китайской стеной». Потому в стандартной ситуации вам хватит обычной работы TOR-клиента, начало которой становится возможным после нажатия кнопки «Соединиться».

Сразу после запуска клиента у вас имеется возможность настроить параметры конфиденциальности: возможность сохранения куков, и прочее (рекомендую оставить данные настройки без изменений). Это не даст вам 100% гарантии анонимности и отсутствия возможности получения данных о ваших перемещениях в Сети при доступе непосредственно к вашему компьютеру (специально для этого есть иные методы, которые будут рассмотрены чуть позже 😉 ), но все же обеспечит определенный комфорт и безопасность.

tor настройки безопасности

Что же … Поздравляю 🙂 Ваш клиент готов к работе. Проверить его работоспособность достаточно просто — зайдем на сайт http://myip.ru, позволяющий отследить ваш текущий IP-адрес. В моем случае он показывает следующее:

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

tor-цепочка

 

— мой компьютер, Франция, Нидерланды, Нидерланды, целевой сайт

А вот какая цепочка и IP — будет после получения «Новой личности»:

tor-цепочка2

 

— мой компьютер, Франция, Франция, Нидерланды, целевой сайт

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

Спасибо за внимание 🙂

Понравилась статья? Сделайте репост на свою страницу 🙂

Есть вопросы? Задавайте!

Уроки PHP — loop

Время идет, вернее даже бежит! И вот так незаметно мы подошли к странному явлению, именуемом loop (петля).

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

Итак… У нас имеется пример кода, который с помощью loop выведет все цифры от 1 до 10:

<?php
for ($i = 0; $i < 10; $i++) {
echo $i;
}
// echoes 0123456789
?>
Стало определенной традицией рассматривать код подробнее: 
$i = 0; - создали переменную, и задали ее начальное значение 
$i < 10 - делаем что-то, пока переменная будет иметь значение меньше 10
$i++ - собственно говорят - именно это и делаем: увеличиваем значение i
{echo $i;} - выводим значение i
Итак, схема описанного выше кода сводится к следующему: начальное значение переменной, до каких границ меняется, по какой причине эта переменная должна меняться (увеличивается или уменьшается), и что делает до тех пор, пока значение переменной не станет ровняться заданной величине. 
Задание текущего урока: к имеющемуся коду добавить что-то, что бы сей код начал правильно работать. 
<html>
<head>
<title>For Loops</title>
</head>
<body>
<p>
<?php
// Echoes the first five even numbers
___ ($i = 2; $i < 11; $i = $i + 2) ___
echo $i;
___
?>
</p>
</body>
</html>
Учитывая все, что мы с вами обсуждали выше, правильным действием в указанном коде будет: задать начальное for - если нет ДЛЯ - то как же PHP поймет, для чего все это делается - верно? 
Смотря на код далее видим: начальное значение переменное ровняется 2, что-то должно продолжаться до тех пор, пока не достигнет 11, а продолжаться это будет с помощью увеличения значения переменной на 2 (это видно в куске $i = $i + 2). Таким образом - основной код закончен, и должен работать. За исключением - что делать, когда выполнена операция в loop: выводить значение переменной $i. Как мы с вами помним - подобные куски кода окружаются фигурными скобками {}.
Итак, окончательная редакция кода выглядит следующим образом: 
<html>
<head>
<title>For Loops</title>
</head>
<body>
<p>
<?php
// Echoes the first five even numbers
for ($i = 2; $i < 11; $i = $i + 2) {
echo $i;
}
?>
</p>
</body>
</html>
php-lesson-loop-for

Уроки PHP — массивы (array) — использование квадратных и фигурных скобок

Эм-м-м-м…. право, не знаю, как и сказать: для языка PHP совершенно параллельно, какие скобочки вы используете для обозачения массива: квадратные или фигурные. И пусть это прозвучит фантастически — код:

<html>
<head>
<title>Accessing Elements</title>
</head>
<body>
<p>
<?php
$tens = array(10, 20, 30, 40, 50);
echo $tens[2];
?>
</p>
</body>
</html>

имеет такое же значение, как и код:

php-lesson-array3 <html>
<head>
<title>Accessing Elements</title>
</head>
<body>
<p>
<?php
$tens = array(10, 20, 30, 40, 50);
echo $tens{2};
?>
</p>
</body>
</html>

Важно знать, что извращение типа echo $tens[2}; или echo $tens{2]; воспринимаются как издевательство, и право на существование не имеют.

На этом урок закончен, всем хорошего воскресного вечера!

PHP — генерация случайного числа в переменную и использование переменной в Switch

Картинка все так же кликабельна ;)
Картинка все так же кликабельна 😉

Сегодняшний приступ лени не позволил пройти следующий урок по PHP, но … что бы не лениться окончательно, было принято решение самостоятельно разобраться с генерацией случайных чисел и использованием полученного результата в Switch. Звучит кособоко, но на деле все оказалось очень простым:
генерируем случайное число в промежутке от 1 до 5: mt_rand (1,5);, и указываем результат как переменную:
$a = mt_rand (1,5);
где (1,5) пределы генерируемого значения.
После этого все идет совершенно просто (смотрим вчерашние уроки с switch — сегодня мы просто дублируем вчерашний код с легкой правкой):

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<?php
$a = mt_rand (1,5);
echo «Random: «.$a.»<br>»;
switch ($a) {
case 0:
echo ‘The value is 0’;
break;
case 1:
echo ‘The value is 1’;
break;
case 2:
echo ‘The value is 2’;
break;
default:
echo «The value isn’t 0, 1 or 2»;
}
?>
</p>
</body>
</html>

Как видите — основное различие с вчерашним кодом лежит в использовании переменной $a (напоминаю, что значение этой переменной получается посредством сгенерированного случайного числа в заданном диапазоне). После этого программа сравнивает заданные параметры, и использует нужную ветку.

Все.

Есть вопросы? Не стесняйтесь задавать их на почте или в Skype — изучим PHP вместе!