Koenig, И что мне это даст?
Мне в BB-впихнуть нужно...
Нашел способ через preg_replace_callback() и create_function
Но в регулярках запутался... с этими одинарными кавычками ' '
$text = 'ФОТО [im]bonus[/im]';
$text = preg_replace_callback('#\[im\](.*?)\[/im\]#si',
create_function(
'$matches',
'$array = array();'
'$dir = opendir("http://сайт.ru/$matches[1]/");'
'while ($file = readdir($dir)) {
if (($file != \'.\') && ($file != \"..\")) {
$array[] = $file;
}
}'
'closedir($dir);'
'$total = count($array);'
'$end = $start + $kmess;'
'for ($i = $start; $i < $end; $i++) {
$t = \"<img src=\"http://сайт.ru/$matches[1]/1.gif\" /><br/>\";
}'
'return $t;'
)
, $text);
echo $text;
blackvj, это тебе массив всех фото даст в папке, выводи как хочешь
blackvj, берешь, сканишь все директории и создаёшь кэш для них в виде массива, где ключ - это имя директория, а значение - готовый html код для замены.
Ну а далее уже риплейсишь и всё.
Что тут думать?
Алсо не забудь обновлять кэш при обновлении или удалении директория.
Ну и естесственно для новых добавлять новые записи нужно будет. Что вполне очевидно.
Koenig, Ты не понял не просто массив нужен!
А вывод массива ссылок на фотографии в папке заданной bb-кодом для вывода в сообщении на форуме.
Screamer, Уже КЭШ приписали...
Тут его нет необходимости использовать...
Помогите со скобками в коде что я дал выше...
blackvj, И каждый раз при просмотре поста нужно будет сканировать директории. При небольшой посещаемости это не критично, особенно если файлов в директории не так много да и на самой странице таких bb-кодов тоже. Ну смотри тогда сам. Дело твоё.
blackvj, ты код выполнил и посмотрел что в массиве? с каждым элементом массива можешь делать что хочешь, можешь адрес для картинки, можешь например картинку получить по ссылке, можешь еще что либо сделать
Screamer, Идея такова:
Создаем тему на форуме с первым постом с данным кодом.
И получаем фото-галерею на форуме.
Где папка создается под каждую тему отдельно с примерным количеством файлов = 30.
---------
Понимаю твою идею...но с КЭШЕМ не работал и в этом пока что профан.
Работаю по примерам. Примера с работой КЭША у меня нету.
blackvj, да там и не нужно иметь никакого опыта. Просто пишешь сериализованный массив в простой текстовый файл или переводишь в json с помощью json_encode и обновляешь его когда нужно.