Функции Язык программирования PHP

array_sum

(PHP 4 >= 4.0.4)

array_sum - высчитывает сумму значений массива.

Описание

mixed array_sum (array array)

array_sum() возвращает сумму значений массива как integer или float.

Пример 1. array_sum()
$a 
= array(2, 4, 6, 8); echo "sum(a) = ".array_sum($a)."\n"; $b = array("a"=>1.2,"b"=>2.3,"c"=>3.4); 
echo "sum(b) = ".array_sum($b)."\n";

Вывод программы будет:
sum(a) 
= 20 sum(b) = 6.9

Примечание: версии PHP до 4.0.6 модифицировали сам передаваемый массив и конвертировали строки в числа (что в большинстве случаев давало конвертацию в нуль, в зависимости от значений).

Apache-модуль

Когда PHP используется как Apache-модуль, он наследует пользовательские права доступа Apache'а (обычно это пользователь "nobody"). Это оказывает влияние на обеспечение безопасности и авторизации. Например, если вы используете PHP для доступа к базе данных, и если эта БД не имеет встроенного контроля доступа, вы должны будете обеспечить доступ к этой БД для пользователя "nobody". В этом случае зловредный скрипт может получить доступ к БД и изменить её, даже не имея имени и пароля. Тогда хакер сможет получить доступ к web-странице администратора БД и уничтожить все ваши БД. Защититься от этого можно с помощью авторизации Apache, или разработав вашу собственную модель доступа с использованием LDAP, .htaccess-файлы, etc. и включив этот код как часть ваших PHP-скриптов.

Часто, когда безопасность установлена на таком уровне, где PHP-пользователь (в данном случае - пользователь Аpache) имеет минимальный риск вторжения, обнаруживается, что у PHP отсутствует возможность записывать в любые файлы пользовательских директорий. Или, возможно, отсутствует возможность доступа к, или изменения, БД. Поставлена защита от записи как "хороших", так и "плохих" файлов, или выполнения как "хороших", так и "плохих" транзакций.

Обычной ошибкой бывает в этом случае предоставление доступа apache root или расширение возможностей Аpache'а каким-нибудь другим способом.

Увеличение пользовательского доступа Apache'а к корневой директории/root очень опасно и может завалить всю систему, поэтому sudo, chroot или другой подобный запуск как root не должен выполняться теми, кто не считает себя профессионалами в вопросах безопасности.

Есть несколько простых решений. Используя open_basedir, вы можете управлять ограничением количества директорий, которые могут использоваться PHP. Вы можете также установить области apache-only, ограничив web-активность не-пользовательскими или не-системными файлами.