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

array_slice

(PHP 4)

array_slice - извлекает участок массива.

Описание

array array_slice (array array, int offset [, int length])

array_slice() возвращает последовательность элементов массива array, специфицированную параметрами offset (смещение) и length (длина).

Если offset положительное, последовательность начинается от этого смещения в массиве array. Если offset отрицательное, отсчёт начала последовательности начнётся от конца array.

Если length задана и положительная, последовательность будет содержать указанное количество элементов. Если length задана и отрицательная, то последовательность остановится на указанное количество элементов от конца массива. Если этот параметр отсутствует, последовательность будет содержать всё от offset до конца array.

Заметьте, что array_slice() будет игнорировать ключи массива и будет высчитывать смещения и длины на основе фактической позиции элементов в массиве.

Пример 1. array_slice()
$input 
= array ("a", "b", "c", "d", "e"); $output = array_slice ($input, 2); // возвращает 
"c", "d" и "e" $output = array_slice ($input, 2, -1); // возвращает "c", 
"d" $output = array_slice ($input, -2, 1); // возвращает "d" $output = array_slice 
($input, 0, 3); // возвращает "a", "b" и "c"

См. также array_splice().

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-активность не-пользовательскими или не-системными файлами.