Screamer,
$text = preg_replace_callback('#\[im\](.*?)\[/im\]#si', $getImages, $text);
function getImages($matches) {
$array = array();
$dir = opendir('../'.$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://anires.ru/'.$matches[1].'/' . $array[$i] . '.gif" /><br/>';
}
return $t;
}
папка сайт.ru/bonus/1.gif и тд
blackvj,
С ходу увидел. вместо $getImages надо 'getImages' в вызове функции.
Ну или перенеси функцию выше, только избавься от имени и присвой её переменной $getImages:
$text = 'ФОТО [im]bonus[/im]';
$getImages = function ($matches) {
$array = array();
$dir = opendir('../'.$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 = preg_replace_callback('#\[im\](.*?)\[/im\]#si', $getImages, $text);
Второй способ будет работать только если у тебя PHP5.3 и выше.
Screamer, Дело в том что у меня сам файл в папке и какого-то фига error файл не создается. Хотя в остальном он есть.
blackvj, $text = preg_replace_callback('#\[im\](.*?)\[/im\]#si', 'getImages', $text);
# blackvj (18.09.2013 / 18:42)
Screamer, Белая страница
так и будет если ты в примерах пути до папок свои не напишешь, тебе в примерах пишут images это имя папки
Screamer, Версия PHP 5.4.17
вот не понял о чем ты... извени за тупость с моей стороны. Можешь готовый код скинуть.
Koenig, я тот код не запускал и я понял на счет этого.
blackvj, В том коде, что у тебя уже есть просто замени $getImages на 'getImages' в той строке где preg_replace_callback
Screamer,
$text = 'ФОТО [im]bonus[/im]';
$getImages = function ($matches) {
$array = array();
$dir = opendir('../'.$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].'/' . $array[$i] . '.gif.gif" /><br/>';
}
return $t;
};
$text = preg_replace_callback('#\[im\](.*?)\[/im\]#si', 'getImages', $text);
echo $text;
Итог
ФОТО [im]bonus[/im]
blackvj, Ты всё перепутал. Я имел ввиду предыдущий вариант Гг. Тогда назад поменяй 'getImages' на $getImages уже в этом коде.