ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

PHP. Эффективность и отладка. Часть Пятнадцатая.


19-07-2015

28.17. По возможности не пользуйтесь командами exec, system и обратными кавычками
Очень распространенной ошибкой программистов, работающих с PHP, является использование внешних процессов для решения задач, которые вполне могут быть решены средствами встроенных функций PHP. Например, функцию exec("/bin/ls -a $dirname", $files), использующую внешнюю программу /bin/ls, вполне можно заменить кодом из листинга 28.11.
Несмотря на то что фрагмент программного кода, представленный в листинге 28.11, насчитывает немного больше строк, он работает значительно быстрее, а кроме того, надежнее с точки зрения безопасности. Версия exec требует от вас большей уверенности в том, что dirname не имеет переключений или кода, сделанных по злому умыслу и которые могут привести к свершению действий, которые программист совсем не имел в виду.
И, если в программном коде используются команды exec, system или обратные одинарные кавычки, следует подумать о возможности усовершенствования этого кода и замене этих функций за счет внутренних возможностей PHP. Вообще, при проектировании PHP-сценариев следует пользоваться правилом максимального использования внутреннего PHP-кода. 
I Листинг 28.11. Как избежать использования внешних процессов
<?php
$dir = opendir($dirname); while($entry = readdir($dir)) {
$files[] = $entry;
}

28.18. Используйте конфигурационный файл
php.ini-recommended
В дистрибутив PHP вместе со стандартным конфигурационным файлом php.ini-dist всегда включается файл php.ini-recommended. В отличие от php.ini-dist он настроен под стандартные установки PHP и содержит перечень нестандартных установок, которые улучшают возможности PHP с точки зрения безопасности и эффективности. В теле конфигурационного файла php.ini-recommended подробно документированы все нестандартные настройки с описаниями последствия активизации, а также категории улучшения, к которой имеет отношение данная настройка, например эффективности или безопасности. Во время первой установки PHP или при настройке эффективной работы PHP-сервера старайтесь использовать конфигурационный файл php.ini-recommended.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Эффективность и отладка. Часть Четырнадцатая. PHP. Эффективность и отладка. Часть Шестнадцатая.