Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Просьба скриптик доработать
цитата
13/10/14 в 07:46
 drongo
Приветствую
Есть похожий скриптик: из папки берет случайный файл и выводит случайную строку.



<?
    $nDir = '/home/user/public_html/files/links/';
    $nTpl = '<a href="#URL#" target=_blank><b>#TITLE#</b></a>';
   
    $nFiles = nGetFilesList($nDir);
    shuffle($nFiles);
    preg_match_all("/url=([^\]]+)]([^\[]+)/si", file_get_contents($nDir.$nFiles[0]), $nMatches);
    foreach($nMatches[1] as $nKey => $nUrl)
    {
        $nString = str_replace('#URL#', $nUrl, $nTpl);
        $nString = str_replace('#TITLE#', $nMatches[2][$nKey], $nString);
        $nArr[] = $nString;
    }
shuffle($nArr);
function nGetFilesList($DirName, $rxp = '.*')
    {
        $Files = Array();
        $handle = @opendir($DirName);
        if (!$handle) return false;
        while($file = readdir($handle)) if (!is_dir($DirName.$file) && eregi($rxp, $file)) $Files[] = $file;
        closedir($handle);
        return $Files;
    }
?>



Но здесь темплейт, какие-то замены.. подстановки...
Мне нужно тупо из папки выбрать случайный файл и вывести из него случайную строку. Спасибо icon_smile.gif
цитата
13/10/14 в 09:01
 Alexandur
Ну, если тупо, то как-то так:


$nDir = '/home/user/public_html/files/links/';
$arrfile = glob($nDir .'*');

$rndfile = rand(0, count($arrfile)-1);

$arrstr = file($nDir . $arrfile[$rndfile]);

$rndstr = rand(0, count($arrstr)-1);

echo $arrstr[$rndstr];


Эта страница в полной версии