Говорят, что создание сайта - очень длительный и трудоемкий процесс. Мы скажем - НЕТ! Ведь с новыми технологиями, такими как HTML5, CSS3, PHP и MySql можно быстро и легко научиться создавать сайты любой сложности.
Два сумасшедших веб-мастера покажут где что лежит и как этим пользоваться.
Авторизация
Новый
Забыл
Пожалуйста, заполните поля выше. Это нужно сделать обязательно, иначе ничего не получится.
PHP Статейки /

Советы и трюки по PHP

  • Понедельник, 8 ноября 2011, 02:13 |
  • Автор: karpovi4 |
  • Просмотров: 2904 |
  • Комментарии: 2 |
  • В закладки:
Советы и трюки по PHPВ продолжение темы "Трюки с textarea", покажу вам еще несколько интересных трюков, но уже с php.






1. Никогда без надобности не используйте регулярные выражения

В некоторых случаях для экономии ресурсов сервера, рациональнее использовать стандартные функции обработки текста в php. Их там для этих целей предостаточно!!) Пример:
Неправильно: <? $new = ereg_replace("-","_",$str); ?> 
Правильно: <? $new = str_replace("-","_",$str); ?>
Неправильно: <? preg_match("/(\..*?)$/",$str,$reg); ?>
Правильно: <? substr($str,strrpos($str,)); ?>


2. Используешь MySQL? Проверь mysql_unbuffered_query()

Функция mysql_unbuffered_query() используется для выполнения небуферизированных запросов к БД. Разница заключается в том, что вместо того, чтобы ожидать полного окончания запроса сохранить результат в клиентском API, небуферизированный запрос делает доступными результаты своего выполнения как можно скорее, минуя буферизацию в клиентском API. Таким образом Вы получаете боле быстрый доступ к данным с меньшими затратами памяти. Недостатком использования такого типа запросов является невозможность узнать количество полученных срок, т.е. использование функции mysql_num_rows().

3. Используйте ссылки при обработке больших массивов данных для экономии памяти сервера

Решайте сами, запасы каких ресурсов для вас более рационально использовать - процессора или памяти. Работа со ссылками (references) является более приемлемой при обработке больших объемов информации, хотя и немного медленней, чем работа с копией, но использует меньший объем памяти. Поэтому решать вам..

4. Постоянные (persistent) соединения с БД

В некоторых БД очень долго проходит процесс создания нового подключения к ним. Именно поэтому имеет смысл использовать постоянное соединение с БД. Но учтите, что постоянные соединения связывают и используют ресурсы сервера, даже тогда, когда эти соединения простаивают.
В PHP реализована функция отключения постоянных соединений, поэтому если у провайдера в конфигурации PHP установлена директива mysql.allow_persistent = Off, то соединения вызываемые функцией mysql_pconnect() будут обрабатываться как mysql_connect(). !Имейте это ввиду!

Некоторые умники советуют не использовать постоянные соединения с БД. Мол связано это в первую очередь с тем, что многопоточные веб-сервера, к которым относится и Apache, не могут разделить со своими потомками соединение с БД. И если следующий запрос приходит на другого потомка, то он создает новое постоянное соединение, что в свою очередь приводит к переполнению лимита max_connections в MySQL.

Помимо всего этого существуют еще некоторые проблемы постоянных соединений с транзакциями и блокировками таблиц. Так, если таблица блокируется запросом на транзакцию или LOCK TABLE и при этом скрипт заканчивает свое выполнение до завершения транзакции или выполнения разблокировки таблицы UNLOCK TABLE соответственно, то вторичная попытка доступа к таблице через это же постоянное соединение будет отклонена. При использовании непостоянного соединения с БД, при завершении скрипта соединение закрывается автоматически и при этом снимает блокировку со всех таблиц и завершает все транзакции. Решением этой проблемы есть регистрации функции register_shutdown_function() которая бы по завершению скрипта снимала блокировку с таблиц и завершала транзакции.
Так что...

Решать вам)

Неплохая статья у нас ещё и о клавиатурных сокращениях в javascript
  • Тэги публикацииPHP
  • Пишет: Tetyana (Гости) |
  • Сообщений: 0 |
  • 22 сентября, 09:09
  • #1
Thanks for that! It's just the answer I neeedd.
Добавить комментарий