[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужен совет по использованию preg_match
Страницы: 1, 2
walerus
Цитата
и в sitemap.php отображается только название файла
А что конкретно он должен отображать ?...

Во первых в sitemap - куча ошибок, и страшная функция рекурсивного поиска... :blink:
Во вторых, поясните логику Вашего скрипта в общем..., например:
Есть папки в них лежат "страницы" сайта, которые выглядят -" так то ", мне нужно, что бы файл sitemap.php прошелся по всем папкам и выдал мне... - ??? что он должен Вам вернуть? и в каком виде?, папки, файлы, активные ссылки с ведущие на найденные страницы, с в виде тайтлов страниц...

При всем при том, если каждый раз - дергать sitemap.php, то это будет жесть, каждый раз пересканировать весь сервер в поисках новых файлов, не проще сделать его статически?, т.е. написать обработчик, который будет собирать все страницы раз в день допустим, и генерировать sitemap.txt/xml/html ... по желанию...

$title = get_title("$root$dir1$sfiles[$y]");
Это жесть...
AlexGy
Я считал, что логика простая - Есть папки в них лежат "страницы" сайта, которые выглядят -" так то ", мне нужно, что бы файл sitemap.php прошелся по всем файлам и выдал мне... значение переменной $page_title (прописано в каждом файле вручную) в виде линка на страницу.
walerus
Цитата
Есть папки в них лежат "страницы" сайта, которые выглядят -" так то "
Зачетное пояснение... так-то ... это как? - page.html, index.php, page.php ???

for($z = 1; $z <= $count; $z++)
echo "<img align=\"absmiddle\" src=\"img/vertical.gif\"> ";
if($y == ($sizeof-1))
echo "<img align=\"absmiddle\" src=\"img/verhor1.gif\">";
else
echo "<img align=\"absmiddle\" src=\"img/verhor.gif\">";
это что за кусок кода?, картинки к чему относятся?, какая их зависимость?

if($showsize == 1) {
$fsize = @filesize($sfiles[$y])/1024;
printf(" (%.2f kB)", $fsize);
}
Это что?, к чему выясняется размер файла и его вывод??
walerus
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
head>
<
title></title>

<?php
error_reporting(E_ALL);

set_time_limit(0);
define( 'ROOT', dirname(__FILE__) . '/' );

## Рекурсивный парсинг директорий, с учетом пути и без учета
function parseDir( $directory, $includePath = false, $recurce = false )
{
$result = array();
if (substr($directory, -1)=="/")
$directory = substr($directory, 0, -1);

if ($dh = opendir($directory))
{
while (($file=readdir($dh))!==false)
{
if (($file=='.') || ($file=='..')) continue;

if (is_dir($directory."/".$file))
{
if ($recurce)
$result = array_values(array_merge($result, parseDir($directory."/".$file, $includePath, $recurce)));
}
else
array_push($result, ($includePath)? $directory."/".$file : $file);
}
}

closedir($dh);
return $result;
}


$get_file_name = parseDir( ROOT, 1, 1 );

## Если есть хоть какие то файлы
if ( count( $get_file_name ) )
{
$site_map_links = array();
foreach( $get_file_name as $get_file_name_line )
{
## Ищем совпадение по $page_title = 'Title';

$tmp_data = file_get_contents( $get_file_name_line );

if ( preg_match( '~\$page_title = \'~', $tmp_data ) )
{
preg_match( '~\$page_title = \'(.*)\';~', $tmp_data, $match );


if ( isset( $match[1] ) && trim( $match[1] ) != '' )
{
$site_map_links[] = array(
'title' => trim( $match[1] ),
'url' => $get_file_name_line,
);

}
}
}
}



## Выводим
if ( !empty( $site_map_links ) )
{
foreach( $site_map_links as $site_map_links_key => $site_map_links_line )
{
echo ( $site_map_links_key + 1 ) . ") <a target=\"_blank\" href=\"" . $site_map_links_line['url'] . "\">" . $site_map_links_line['title'] . "</a><br>\n";
}
}



?>
</body>
</
html>
Вот краткий вывод и рекурсивная функция поменьше..., доделывай под свои условия.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.