Автоскример

1.04K
.
Screamer
$text = ''; // Insert text of post here ...
preg_replace_callback('#\[im\](.*?)\[/im\]#si', 'imagesList', $text);

function imagesList($matches) {
$dir = rtrim(dirname(__FILE__), '\/') . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . $matches[1] . DIRECTORY_SEPARATOR;
if (!is_file($dir . 'cache.json')) {
if (is_dir($dir)) {
$images = array_values(array_diff(scandir($dir), array('.', '..', '.htaccess'))));
// В этом месте можно добавить обработку массива. Например, запилить их в тег <img />
file_put_contents($dir . 'cache.json', json_encode($images));
}
} else {
$images = json_decode(file_get_contents($dir . 'cache.json'));
}
return isset($images) ? implode('<br />', $images) : 'No such file or directory "' . $matches[1] . '"';
}


http://pastebin.com/quNAEDFV
.
#805485
А конкатенация где?
.
# Screamer (18.09.2013 / 18:24)
#805485
А конкатенация где?
Что такое конкатенация?
.
blackvj
$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;
.
Оюъединение строк вроде как.

'$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;'

У тебя тут несколько строк. Их наверное же следует объеденить, разве не так? У тебя IDE разве ошибки не подцвечивает?
.
И вообще, зачем мучаешься с create_function, когда можно сразу определить её где-нибудь и всё?
Там у тебя еще В самой функции одинарные кавычки надо заэкранировать, либо заключить строку в ""
.
Screamer, Нет у меня стандартный редактор CPanel в данной ситуации
.
(\/)____o_O____(\/)
blackvj, ты в примерах пути к своим папкам пропиши, далее например галерею сделать так
echo '<table><tr>';
$i=1;
foreach ($arr as $img) {
echo '<td><img src="' . $dir . DIRECTORY_SEPARATOR . $img . '" alt="" /></td>;
if ($i%3==0) {
echo '</tr><tr>';
$i++;
}
echo '</tr></table>;
.
# Screamer (18.09.2013 / 18:30)
И вообще, зачем мучаешься с create_function, когда можно сразу определить её где-нибудь и всё?
Там у тебя еще В самой функции одинарные кавычки надо заэкранировать, либо заключить строку в ""
Это я уже дописал одинарные кавычки ибо как написано в мануале к финкции их нужно совать везде в каждой строке.

Код без кавычек которые нужно вставить.

$text = 'ФОТО [im]bonus[/im]';

$text = preg_replace_callback('#\[im\](.*?)\[/im\]#si', 





create_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);


echo $text;
.
Koenig, Спасибо за код и разьяснение. Но это не ТО.
Всего: 77