Т.е. greenwood из под role аккаунта рефов разводит? "Коля, пей чай, вчера на мейлах сидела жена, а сегодня посижу я", так? :D
Пофикшено с использованием strip_tags
$content = strip_tags(preg_replace("/^.+?<h1>(.*?)<\/h1>.+$/ism", "$1", file_get_contents($directory."/".$file)));
И то и другое, крайне странно :)
А чего в коде поменялось?
Кстати, результат, т.е. переменную $buffer можно струячить прямо в темплейт страницы, не обязательно только в новый файл.
Creeping Shadow, кошелек не нужно, я для души :)
Ну на доры есть технологии и понавороченнее. :)
Да, если в <h1>, то просто добавить в генерацию строчки вывода. Только я ее немного изменил.
Учитывая все пожелания, перепишу вместе с рандомом и кешированием.
Кешируется в любой файл, нужно указать имя в $html_file. Сам файл каждый раз перезаписывается.
Этот скриптик нужно поставить в crontab.
<? $buffer = "<ul>\n"; $directory = ""; // укажите тут директорию $path_to_web = "http://bla-bla.com"; // укажите тут URL и путь $html_file = "file.html"; // это имя html файла, в который будет писаться результат if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { // тут можно прописать еще файлов, которые надо исключить $content = preg_replace("/^.+?<h1>(.*?)<\/h1>.+$/ism", "$1", file_get_contents($directory."/".$file)); $output[] = "<li><a href=\"".$path_to_web."/".$file."\">".$content."</a></li> "; } } closedir($handle); } shuffle ($output); foreach ($output as $out_str) { $buffer .= $out_str."\n"; } $buffer .= "</ul>\n"; @unlink($html_file); $newfile = fopen($html_file,"a+"); fwrite ($newfile,"$buffer \n"); fclose ($newfile); chmod ($html_file, 0666); ?>
Да, в первом варианте баги были, пробуйте так:
<ul> <? $directory = ""; // укажите тут директорию $path_to_web = "http://bla-bla.com"; // укажите тут URL и путь if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { //тут можно прописать еще файлов, которые надо исключить $content = preg_replace("/^.+?<h1>(.*?)<\/h1>.+$/ism", "$1", file_get_contents($directory."/".$file)); ?> <li><a href="<?=$path_to_web?>/<?=$file?>"><?=$content?></a></li> <? } } closedir($handle); } ?> </ul>
Т.е. извлечь из каждого файла содержимое H1 и использовать как текст ссылки?
Creeping Shadow, тогда как-то так (оформлять на свой вкус):
<ul> <? $directory = "укажите тут директорию"; $path_to_web = "укажите тут URL и путь" if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { //тут можно прописать еще файлов, которые надо исключить ?> <li><?=$directory?>/<?=$file?></li> } } closedir($handle); } ?> </ul>
Nik_M, насколько я знаю - нет. Там все несложно, это же технический английский.