Чад Бёрч уже ответил на мой вопрос (мое первоначальное замешательство было связано с непониманием того, что $ var [n] можно использовать для нахождения n th символа строки. ), но на тот случай, если другие задаются вопросом, вот объяснение того, что эти функции пытаются выполнить:
MeioUpload - это поведение загрузки файла / изображения для CakePHP. Используя его, вы можете настроить любое поле в вашей модели так, чтобы оно действовало как поле загрузки, например:
var $actsAs = array(
'MeioUpload' => array(
'picture' => array(
'dir' => 'img{DS}{model}{DS}{field}',
'create_directory' => true,
'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
'allowed_ext' => array('.jpg', '.jpeg', '.png'),
'thumbsizes' => array(
'normal' => array('width'=>180, 'height'=>180),
'small' => array('width'=>72, 'height'=>72)
),
'default' => 'default.png'
)
)
);
В приведенном выше примере MeioUpload будет обрабатывать поле с именем «picture» как поле загрузки. Эта модель называется « product », поэтому каталог для загрузки будет « / img / product / picture / ». Вышеуказанные конфигурации также указывают, что 2 эскиза должны быть сгенерированы. Поэтому, если бы я должен был загрузить изображение с именем « foo.png », на сервере были бы сохранены следующие файлы:
/img/product/picture/foo.png
/img/product/picture/thumb.foo.png *
/img/product/picture/thumb.small.foo.png
* - для больших размеров, помеченных как «нормальные», ключ не добавляется к именам файлов
Кроме того, изображения по умолчанию также хранятся в том же каталоге:
/img/product/picture/default.png
/img/product/picture/thumb.default.png
/img/product/picture/thumb.small.default.png
Но поскольку мы не хотим, чтобы загруженные пользователем изображения, изображения по умолчанию или автоматически созданные эскизы перезаписывали друг друга, автор создал следующую пару массивов:
var $patterns = array(
"thumb",
"default"
);
var $replacements = array(
"t_umb",
"d_fault"
);
, которые используются для предотвращения конфликтов имен файлов при сохранении загруженных файлов:
$filename = str_replace($this->patterns,$this->replacements,$filename);
_includeDefaultReplacement () используется для добавления новых зарезервированных слов, когда изображение по умолчанию именуется как-то иначе.