Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Заметки Дизайнера" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
PHP Wars: против целого мира
Информационный Канал Subscribe.Ru |
PHP WARS: против целого мира - выпуск 3. |
Приветствую всех читателей. Вот мы и дожили до 3-его выпуска нашей рассылки! Сегодня мы как всегда попытаемся рассказать вам о php-программировании, опубликуем еще одну авторскую статью (на этот раз это вторая часть статьи "PHP для начинающих", написаная Iprit'ом) и, конечно же, вас всех ждет новая доза веб-стеба и пара полезных ссылок. Плюс ко всему, теперь нам помогает вести рубрику "Новости рунета" сайт http://gdene.h10.ru и его прекрасный руководитель Оксана. Короче говоря всем смотреть обновленный раздел! Сегодня в выпуске.
PHP для начинающих (часть 2).Совместно с сайтом webstudent.net.ru мы продолжаем мучить компилятор php. Сегодня мы узнаем:
Go, Go, Go...Итак, функции. Если объяснять совсем на двух пальцах, то это некое подобие функций в товем организме (особенно выделительных). Как я думаю вышеупомянутые функции у тебя регулярны и своевременны, а главное не вызывают ошибок приводящих к нерабочему состоянию всего организма. Так и в PHP. Функции - это часто повторяющиеся действия, которые для удобства отделили от общей кучи других действий и в нужное время используют не переписывая код по новой. Задать функцию в PHP просто как два байта отослать:
function NAME (PARAMETR)
Теперь поясним выше написанное. Ключевое слово function говорит о том что, нужно создать функцию с именем NAME (может быть любым) и параметром PARAMETR (параметров может быть много, а может и вообще не быть). В сам код функции можно написать все что угодно. Это у кого как с фантазией дело обстоит. Первая функция.Попробуем написать первую функцию. В ее задачу будет входить вывод "Hello world".
function HW()
Как видно из строк выше, мы создали (написали) функцию с именем HW (от hello world) и между фигурными скобками написали код, который будет выполняться всякий раз, когда функция будет вызываться из общего кода. Заметь наша функция пока не имеет... параметров (поэтому ничего нет между круглыми скобками после имени функции). Теперь попробуем вызвать новорожденную из того самого общего кода.
<?
#c '#' начинаются коментарии, не забывай. Кометарии не выполняются! Как видишь все просто! Помни только, что сами по себе функции не работают их нужно вызывать. Когда я только начал изучать программирование в целом у меня возник вопрос: "А не проще ли тупо написать echo "Hello world!"; в скрипте и жить спокойно". Далее мы разберемся, когда целесообразно использовать функции. А оно мне надо?Конечно надо! Это в данном примере все слегка не рационально. Вот, например, возмем пример из жизни: я хочу что б моя страница показывала пользователям моего прова одно, а всем остальным... все остальное :). Для этого я написал такой код:
<?
Вот и все. Пока меня не задобрят алкоголем с ip-адреса 192.168.0.14 никто ничего не увидит (вот так вымогают пиво у невинных ламеров - прим. потерянной совести), как говорится: "Дискриминация рулит"! Немного поясню синтаксис новых функций и циклов. У каждого конечно сове мнение, но, имхо, IF правит миром. Мне этот ветвитель нравится больше всего, т.к. с его помощью можно делать _САМЫЕ_ непристойные веши! Вот какова его логическая структура:
if ( параметр условие значение ) делаем то-то else то-то.
В нашем случае параметр это ip-адрес ущемляемого ламера, условие == (равно, бывает еще != - не равно, < > - меньше, больше, <= >= меньше либо равно, больше либо равно) значение - 192.168.0.14. В итоге получаем: если (ip-жертвы равно 192.168.0.14) то пишем.... если нет "вклеиваем" страницу. Идем далее. Функция getenv (переменная окружения) - читает переменную окружения! Немного остановимся на этих самых переменных. Их очень много, каждая несет в себе какую либо информацию о параметрах веб-сервера, системы и т.д. Например переменная REMOTE_ADDR содержит в себе ip-адресс посетителя сарацины. Эту переменную передает браузер или прокси-сервер, через который ты сидишь (если ты вообще пользуешься прокси). Все доступные переменные окружения можно посмотреть на моем сайте (http://iprit.h10.ru/index.php?pid=sources). Далее у нас идет функция include ('что вставляем'). Ее назначение просто как назначение кнопки "пуск" в твоих виндах - она вставляет содержание файла, который передается ей как параметр. Например я хочу не переписывать на кажой странице html-код с логотипом сайта, рубрикатором и проч., тогда просто один раз пишем этот код в файл (например top.html) и просто в каждом файле, где необходимо, вставляем строку <? include('top.html') ?> и все(!) - никаких запаров с SSI (вставки на стороне сервера)! Кстати сказать, php имеет массу преимуществ перед использованием SSI, т.к. можно варьировать то, что вставляем в зависимости от различных параметров (как, например, в нашем случае). Но опять возникает тот самый вопрос "а не проще ли тупо переписать код, вместо функции"? А нет! Мне вот например не хочется показывать только отдельные части страницы (напр.: рубрикатор и колонку новостей). И что? Каждый раз вставлять этот код. О...чень больших размеров тогда получиться скрипт, дорогой товарищ! Проще, рациональнее и удобнее для понимания написать функцию (lamer_check) и вызывать ее где надо. lamer_checkИтак, практическое применение функций. Задача: не допустить, что б ламер Федор не смог поситать новости на нашей странице. Напишем функцию параметром которой служила бы страница, которую необходимо было бы вставить, елси зашел не наш мученник Федеор.
function lamer_check ( $page )
Поговорим немного о параметрах функций. В их роли может выступать строка, число..., переменная и вывод другой функции. В нашем случае это переменная $page. Вот и все, если не вдаваться в подробности, что можно сказать о параметрах. Теперь разберем наш код. function lamer_check ( $page ) - создает функцию lamer_check с параметром, который задан переменной $page. if ( getenv ( REMOTE_ADDR ) == '192.168.0.14') echo "Нифига не покажу! Сперва пиво, потом инфа!"; - эту сроку можно перевести как "если адрес пользователя" равен 192.168.0.14, то написать "Нифига не покажу! Сперва пиво, потом инфа!".... else include ($page) - ..., если нет, то выставить текст из файла, путь к которому задан переменной $page. На практикеКак видишь с помощью функций очень удобно структурировать задачи, разбивая их на более мелки шаги и реализуя их в виде функций. Пишите... логи мелким подчеркомТеперь попробуем сотворить что-то еще более асоциальное. Ну, напрмер, логгер посещений. Для тех кто в танке: логгер - программа для записи логов, лог файл с информацией о каких-либо событиях в хронологической последовательности. Мы в лог будем писать ip-адрес посетителя, его браузер и время, когда он зашел на нашу страницу. Все функции нам уже более менее знакомы, если что, то я буду рассказывать о новиках подробней. Для начала код логгера:
<?
Вот такой вот небольшой скрипт (особенно если убрать комментарии). Итак разберем работу с фалами. Для этого используется несколько основных функций: fopen, fwrite, fread (о ней мы поговорим в следующих частях) и fclose. Рассмотрим их по порядку появления в скрипте. Посмотрим, что говорит на тему fopen мануал по php:
#*******************************************************************
Вроде вес понятно. У на используется тип a - "Открыть только для записи, помещает указатель на конец файла. Если файл не сществует, создается новый файл". Файл для открытия log.txt, который находится в одном каталоге со скриптом.
#*******************************************************************
У нас используется строка с подготовленными данными о пользователе, а файловый поток - открытый лог-файл. fclose
#*******************************************************************
Ну тут думаю без коментариев. Просто закрывает открытый файл. Как видишь все проще некуда. Конечно, описанный выше примеры очень просты и требуют доработки (в частности наш логгер), но зачем, спрашивается, тебе фантазия. Get serious - use your mind! Недавно я понял, что я - винчестерSintezНедавно я понял, что я - винчестер. Единственная цель моей жизни - собирать информацию. Меня интересует абсолютно все вокруг. У меня на все есть вопросы, на все есть свое мнение. Мне интересно, откуда взялись люди на Земле, меня жутко интересует, что такое черные дыры в космосе, я фанатично роюсь в Интернете, чтобы понять, как появились палочки в японской кухне. Кто придумал компьютерную мышку? Зачем зебрам полоски? Почему по медному кабелю нельзя передавать данные быстрее 2-х мегабит в секунду? Кто измерил скорость света? Почему примитивные биологические вирусы сильнее эволюционно развитых людей? И так далее и до бесконечности. Я не могу просто жить и радоваться жизни. У меня все время недостаток информации. Как-то раз один человек мне сказал: "А зачем тебе все это? Ты что, будешь применять эти знания в жизни?". "Нет", - ответил я. "А тогда зачем тебе весь этот информационный мусор?" - резонно спросил он. Я не знаю. Действительно не знаю. Мне просто интересно. Я живу информацией, поглощаю ее, заряжаюсь от нее. Мыслить - вот цель моей жизни. Понимать - вот моя мечта. Подумай сам: мы, человечество, которое мечтает охватить космос и понять вселенную, до сих пор не можем понять самих себя, не расшифровали геном и даже говорим на разных языках! Мы, покорители космоса и свершители тысяч открытий, до сих пор воюем друг с другом и выясняем отношения грубой силой. Мы, объединившие мир сетью Интернет и создающие искусственный разум, не понимаем языка животных, не знаем, откуда мы появились, до сих пор ругаемся и доказываем друг другу - кто прав, а кто виноват! Может быть для того, чтобы понять глобальные вещи, стоит заглянуть в микроскоп? Я вижу атом. Он необычный и изумительно красивый. Я чуть-чуть удаляю микроскоп и вижу молекулу, которая состоит из атомов. Удаляю еще немного и вижу клетку, построенную из молекул. Я отвожу глаз от микроскопа и вижу орган, состоящий из клеток. Отступаю назад и вижу человека, в котором десятки органов. Еще дальше, и передо мною город, населенный людьми. Еще, и внизу планета, набитая городами. Шаг назад, и я вижу солнечную систему. Еще назад, и передо мной вселенная. Еще дальше... и я вижу атом. Он необычный и изумительно красивый... Новости рунетаБорьба с пиратством продолжаетсяMicrosoft продолжает активную борьбу с пиратами, мешающими корпорации получать свою законную трудовую копеечку (или центик). Уже с этого месяца компания прекращает активацию по интернету OEM-версий Windows XP, т.е. тех копий операционной системы, которые устанавливают на свои компьютеры производители ПК. Пока эта мера распространяется на компьютеры 20 крупнейших производителей ПК. Если покупатель такого ПК решит переустановить систему, то при активации через интернет ее лицензионный ключ не пройдет проверку, и покупателя попросят связаться со службой поддержки Microsoft. Подобная мера должна предотвратить незаконное распространение идентификационных наклеек с лицензионными ключами, которые "пираты" снимают с других ПК. В службе поддержки покупателю зададут несколько вопросов, которые позволят установить правомочность его обладания данным ключом - в частности, покупателя обязательно спросят, как он приобрел свою копию операционной системы. В дальнейшем эту меру распространят и на других производителей ПК. Mozilla-новостиНа днях был анонсирован выпуск новой версии набирающего популярность браузера Mozilla Firefox 1.0.1. Исправления по большей части коснулись обеспечения сетевой безопасности и ликвидации уязвимости, позволявшей осуществлять некорректную обработку национальных доменных имен (IDN). Выявленный разработчиками недостаток прежней версии позволял злоумышленнику создать сайт-близнец (с заменой, например, латинских букв "а", "с", "о" русскими аналогами) и переправить туда посетителей оригинального сервера. Уловка, популярная у так называемых "фишеров", теперь не пройдет - имя в адресной строке браузера выводится в форме IDN Punycode, что позволяет пользователю всегда быть в курсе того, куда он коннектится. По заявлению представителей Mozilla Foundation, обновление версий других продуктов (Thunderbird, Mozilla) произойдет на следующей неделе, а уже через месяц номера версий должны перейти с "сотых" (1.0.1) к "десятым" (1.1). Среди возможных изменений прогнозируется дополнительное увеличение функций безопасной работы в Сети. Косвенным доказательством этого стал прием на работу специалиста в этой области, имя и должность которого пока не разглашаются. Скажи мне, интернет, жив я или нет?Если твое имя не упоминается в интернете - значит, ты уже мертв. Виртуальная "Эго-машина", созданная американским художником-постмодернистом Дэвидом Салливаном (David Sullivan), в интерактивном режиме следит за тем, в какой степени вы еще живы. По мнению Салливана, жизнь современного человека все меньше остается связанной с плотью и кровью, и все больше - с цифровыми потоками. Более того, не клонирование, не криоген, не кибернетика, а именно интернет дает человеку шанс на бессмертие. Трансгуманистическая идея воплотить свой дух в виде битов предоставляется каждому, кто решит соорудить свою могилу наподобие той, что сделал Дэвид Салливан. "Эго-машина" Салливана работает подобно поисковому роботу, который бороздит Сеть в поисках упоминаний имени своего хозяина. Только программа, написанная на Perl, сама не исследует Сеть, а отправляет поисковые запросы к Google и заносит всю найденную информацию в базу данных mySQL. Собранная информация непосредственным образом влияет на лицо Салливана. Если число упоминаний его имени становится больше, то лицо молодеет. Если меньше - лицо стареет. Если же упоминаемость приближается к нулю, то старческое лицо превращается в череп и, в конце концов, рассыпается в прах. Идея имеет глубинный смысл. Если вы живы, то ваше имя регулярно появляется на интернет-форумах и в блогах. Чем больше этих упоминаний - тем больше в вас жизненной силы. Если же следов вашего существования в интернете становится все меньше и меньше - значит, вы действительно умираете. Демо-версия "Эго-машины" не подключена к базе данных, а наблюдать за трансформацией лица Салливана можно с помощью нажатия кнопок "плюс" и "минус". И пара полезных линков для начинающих и не очень.HTML теги - даже, если ты просто супер кодер, если ночью тебе приходят в голову самые офигительные алгоритмы, то это не означает, что твои творения должны быть офрмлены как использованная туалетная бумага! Данная ссылка для тебя - все помнить не реально, а с этим подробнейшим манном у тебя всегда будет возможность "вспомнить все". Букварь по PHP - это вообще без комментариев. Ведь мы же веб-кодеры. Как ты еще читаешь эти строки? Какать! Качать, и будет тебе шшастье! В следующем выпуске.Некоторые люди наверняка уже заметили несоответствие наших содержания анонса этого выпуска и его содержания. В этом выпуске нет той самой долгожданной статьи про "PHP статистику". Могу сказать одно - это исключительно техническая проблема, обусловленная глюками компов. Мы исправимся чесслово! А в следующем выпуске помимо традиционного стеба и линков вас будет ждать именно, та статья про логи. |
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.phpwars |
Отписаться |
В избранное | ||