Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Заметки Дизайнера" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Статья: Блок пост
Информационный Канал Subscribe.Ru |
PHP Wars: против целого мира - выпуск 7 | |
Вот и наступило время для седьмого выпуска нашей рассылки и прежде, чем начать непосредственно рассказывать вам о том, что же вы такого интересного сегодня прочитаете, я хотел бы заметить один радостный для меня как редактора рассылки факт: наша рассылка набрала за рекордное время - два дня - боле 400 подписчиков! Что ж, это говорит о нужности преподносимой нами информации. Как я уже говорил в прошлом выпуске - мы продолжаем готовить для вас серию статей о защите скриптов. Ну а пока, что б был понятен дальнейший материал, мы остановимся на некоторых важных моментах. Все это неоднократно пригодится вам в будущем, да и мы будем повсеместно использовать приемы описанные сейчас. Вникайте… Iprit, глав(в)ред рассылки.
Сегодня в выпуске.
Блок пост.Вы не знайте что это такое блокировка файла? Это мы сейчас исправим. Первый и главный вопрос: "Зачем нужна эта блокировка?". Если вам хочется, чтобы ваши скрипты работали с файлами нормальным образом, а не как попало, то она вам просто необходима.
Вот что говорит по этому поводу PHP Manual: Посмотрели, подумали. Мдааа... и как это все работает? Что ж, ничего не остается, как написать какой-нибудь глупый скрипт. Глупый скрипт:<?php if ($_GET['t']=='1') $data = 'one'; if ($_GET['t']=='2') $data = 'two'; if ($_GET['t']=='3') $data = 'three'; if (empty($_GET['t'])) $data = 'none'; $fname = "data.dat"; $fp = fopen($fname, "a+"); For ($j=0; $j < 20; $j++) { fputs($fp,$data."\n"); sleep(1); } fclose($fp); ?>[Базова работа с файлами описана тут: PHP для начинающих (часть 2)] Посмотрим, что получилось... Вбиваем последовательно в браузер: http://localhost/test.php?t=1 http://localhost/test.php?t=2 http://localhost/test.php?t=3[Установка локально сервера с php и mysql описана тут: PHP - руководство для начинающих. Часть 1] Нам по идее нужно глянуть, что получится, если одновременно запустят скрипт несколько человек. В общем, вбиваем в 3х окошках эти ссылки. Ждем у моря погоды. Идем к data.dat и смотрим, что же там получилось? Получилось не все так плохо, т.е. все перемешалось. А нам надо сначала записать 20 раз какую-либо одну строчку (либо one, либо two...), а получается все вперемешку. Теоретически, мог произойти худший вариант и все данные в data.dat потерялись бы (такого я не наблюдал, но это вполне возможно). Думаю, ответ на поставленный вопрос просто - блокировка нужна для корректной работы множества скриптов (или их копий) с одним файлом. Самое время исправить ситуацию: <?php if ($_GET['t']=='1') $data = 'one'; if ($_GET['t']=='2') $data = 'two'; if ($_GET['t']=='3') $data = 'three'; if (empty($_GET['t'])) $data = 'none'; $fname = "data.dat"; $fp = fopen($fname, "a+"); flock($fp, 2); For ($j=0; $j < 20; $j++) { fputs($fp,$data."\n"); sleep(1); } flock($fp, 3); fclose($fp); ?> Вроде жизнь наладилась и скрипт работает, как мы хотели. Но не тут то было. Дело в том, что есть такой замечательный файлик - php.ini и в нем не менее замечательная переменная max_execution_time = 30 (значение этого параметра можно увидеть через phpinfo()). <?php if ($_GET['t']=='1') $data = 'one'; if ($_GET['t']=='2') $data = 'two'; if ($_GET['t']=='3') $data = 'three'; if (empty($_GET['t'])) $data = 'none'; $fname = "data.dat"; $fp = fopen($fname, "a+"); while(!flock($fp,LOCK_EX+LOCK_NB) && $i<5) { echo "Пытаемся получить доступ к файлу Наконец-то совершилось чудо и мы увидели рабочий вариант. Вроде теперь то можно радоваться? Нет, пока еще рано. Нужно проследить, чтобы везде при обращении к этому файлу (чтение, запись) стояла блокировка. Иначе толку с вашей блокировки не будет. Другими словами, если вам надо вывести данные из файла в браузер, то нужно ставить блокировку на чтение. Не пугайтесь, файл будут читать сразу несколько человек (ожидания не будет). <?php $fname = "data.dat"; $fp = fopen($fname, "a+"); if (flock($fp,LOCK_SH)) { while (!feof($fp)) { $q[]=fgets($fp, 500); $n++; } flock($fp, LOCK_UN); } fclose($fp); for($i=0; $i<$n; $i++) { echo $q[$i]." Стоит так же упоминуть что, чем раньше уберем блокировку, тем всем от этого будет лучше. И так же стоит помнить, что чем больше нагрузка на скрипт (и чем дольше он выполняется), тем меньше мы должны "ожидать" (while(!flock($fp,LOCK_EX+LOCK_NB) && $i<5) {} ), т.к. скипту нужно время, чтобы выполнится _ПОЛНОСТЬЮ_ . (!)Так же хочу заметить, что на нашем сайте лежит не менее достойная статья о том, как правильно работать с файлами. Оба материала взаимно дополняют друг друга. Рекомендую ознакомится.
Новости из мира Интернет от Rynet@NewsПодробности об Internet Explorer 7Информация о том, что в новой версии самого популярного браузера появится множество изменений, появлялась уже не раз в интернет-СМИ. Делать догадки, какими они будут, проще простого - в "ослике" накопилось столько недостатков, по сравнению с конкурентами, так что добавление в него самых распространенных функций (браузеринг во вкладках, мышиные жесты), давно реализованных во множестве "надстроек" (MyIE и т.д.), уже делало бы новую версию революционной. Однако до недавнего времени подобные новости относились к категории слухов - не было ни одного официального сообщения или комментария разработчиков по поводу предстоящих изменений. И вот, пару дней назад, на официальном блоге один из членов группы разработчиков Microsoft Internet Explorer сообщил тот перечень изменений, которые планируется реализовать. Во-первых, будут закрыты многочисленные уязвимости в системе безопасности, из-за которых IE давно считается решетом. Во-вторых, будут поддерживаться ключевые элементы рекомендаций World Wide Web Consortium (W3C) - это Portable Network Graphics (PNG) и формат изображений и стандарта оформления веб-страниц Cascading Style Sheet (CSS). Ситуация, когда самый используемый браузер, мягко говоря, не соответствует утвержденным стандартам, заставляет web-разработчиков программировать страницы двух видов: для IE и для всех остальных. Подобные заявления, по мнению экспертов, не могут не радовать, однако опасения, что поддержка стандартов W3C останется на словах или будет реализована не в полном объеме, уже высказываются. Насколько они обоснованы, в ближайшее время поможет выявить один единственный факт: согласится ли Microsoft на предложение протестировать ее детище программой Acid, опубликованной на сайте Web Standards Project? Количество Spyware в Сети снижаетсяПо данным исследовательской компании Webroot, количество сайтов, использующих шпионское программное обеспечение для слежения за своими посетителями, снизилось почти на 50%, по сравнению с аналогичным кварталом прошлого года. Как пояснил директор Webroot, Ричард Стиннон (Richard Stiennon), в первую очередь, это связано с массовой компанией, проведенной в Сети по недопущению использования таких способов сбора информации о потенциальных клиентах, как индексация посещаемых ими страниц, сбор данных о вводимых запросах (key loggers) или подмены стартовой страницы. Пользователи стали больше обращать внимания на ПО, помогающее выявить и избавиться от spy или adware. Последние считаются меньшим злом и, по оценке Interactive Advertising Bureau, опубликовавшей отчет за 2004 год о суммах, вырученных посредством рекламы в Сети, приносят $2 млрд. (из общей суммы в $9,6 млрд.) своим хозяевам. В этой ситуации Ричард Стиннон прогнозирует, что примерно 12-18% сайтов в Сети не откажутся от порочной практики и будут продолжать использовать нежелательное ПО. Новости ПО от http://Ymt.pp.ru/Winamp 5.09Обновился популярный медиаплеер, обладающий широчайшим диапазоном возможностей. В отдельных представлениях и подробных описаниях функций эта программа не нуждается. Стоит сказать, что Winamp поддерживает большинство форматов аудио и видео-файлов, может конвертировать mp3 файлы из обычных музыкальных CD и записывать их на компьютер, может прожигать CD-диски на пишущем приводе и т.д. Плеер выпускается в трёх вариантах: Lite (облегчённая версия), Full (полная версия) и Pro (профессиональная, платная версия). Обратите внимание на то, что Lite-версия плеера не включает в себя модули визуализации (Visualization Studio) и поддержку Windows Media и M-Juice audio. В этой версии улучшена работа медиа-библиотеки (Media Library), появилась возможность воспроизводить WMA-файлы (для этого должен быть установлен плагин WaveOut), улучшено воспроизведение видео-файлов, исправлены ошибки, внесены другие изменения. Windows NT/2000/XP/2003 , Free, EN Скачать Full-версия [4720 Kb] Скачать Lite-версия [839 Kb] Telephone VOX recorder MP3 1.3Новая версия программы, предназначенной для записи и архивации в МР3 формате телефонных переговоров через компьютер. Средствами программы можно записать речь из любых речевых сообщений, с каналов телефонной связи, радиосвязи, устройств снятия речевой информации или микрофона с последующим воспроизведением в любое удобное время, в том числе и во время записи одновременно. Telephone VOX recorder умет включать запись автоматически при появлении звукового сигнала (разговора) на входе звуковой карты (система VOX) с последующим автоматическим отключением после завершения разговора. Программа содержит менеджер записанных с её помощью файлов для быстрого и удобного просмотра записей. Для сжатия в МР3 формат используется кодек Lame. Win9*/ME/NT/2K/XP, Free, RU Скачать [788 Kb] Netobjects Fusion 8.00.0000.5030Тем кто не хочет вникать в подробности HTML, а просто хочеть создать свой сайт своими руками за короткое время - NetObjects Fusion 8 идеальный инструмент для экспериментов. С каждой новой версией в программе появляються новые профессиональные возможности не только для создания, но и легкого управления сайтами. Скачиваем прогу, идем на сайт, у них заполняем анкету и на мыло прийдет ссылка для легализации проги Windows 95/98/NT/ME/2000/XP, Free/Shareware,EN Скачать Вход на сайт для регистрации (!)Картинки за "жЫсь" админа.
На сегодня это все. Очередной выпуск нашей рассылки ждите как обычно в следующее воскресенье. Продолжение неизбежно… |
© PHP Wars 2005, Все права на материалы принадлежат их авторам. Перепечатка или любое другое использование материалов рассылки разрешается только с письменного разрешения. |
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.phpwars |
Отписаться |
В избранное | ||