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.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Эффективность и отладка. Часть Пятнадцатая.
19-07-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Эффективность и отладка. Часть Четырнадцатая. | PHP. Эффективность и отладка. Часть Шестнадцатая. |