Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2023, 12:03   #1
vihtor
Пользователь
 
Аватар для vihtor
 
Регистрация: 06.06.2014
Сообщений: 78
По умолчанию Мета-тег <meta name="description" content="">

Здравствуйте.
Этот php-скрипт должен сканировать первые строки контента и прописывать <meta name="description" content=""> в html-коде.
Но:
Предупреждение : неожиданный символ во входных данных: '\' (ASCII=92) состояние=1 в строке 8
Ошибка анализа : синтаксическая ошибка, непредвиденный '.' в строке 8
Как исправить?

Код:
<?php
$dir   = 'home\n.ru\www\';
$files = scandir($dir);
$cnt   = 0;
$lists = array();
foreach ($files as $file)
{
    if (preg_match('/\.(html|php)/', $file) && $file != basename(__FILE__))
    {
        $html = file_get_contents($dir . '\' . $file);
        if (preg_match('|<body>|', $html))
        {
            $cnt++;
            preg_match('|<body>(.*?)</body>|su', $html, $body);
            $description = preg_replace('|<h1>(.*?)</h1>|su', '', $body[1]);
	        $description = strip_tags($description);
            $description = str_replace(array("\r\n", "\r", "\n"), ' ', $description);
            $description = str_replace(array('“', '”', '"', '«', '»', '&(.*?);'), '',       $description);
            $description = trim($description);
            $description = preg_replace('|( ){2,}|', '$1', $description);
            $description = mb_substr($description, 0, mb_strrpos(mb_substr($description, 0, 300), ' '));
            $content     = '</title>' . "\n" . '<meta name="description" content="' . $description . '...">';
            $html = preg_replace('|</title>|u', $content, $html);

            $fopen = fopen($dir . '/' . $file, 'w');
            $write = fwrite($fopen, $html);
            fclose($fopen);

            $lists[] = 'Описание в файле: <strong>' . $file . '</strong>: ' . $description . '<br />';
        }
    }
}

echo 'Всего файлов: <strong>' . $cnt . '</strong><br />';
foreach ($lists as $list)
{
    echo $list;
}
Файлы на компьютере. Тестирую на Денвере.
vihtor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо написать "таймер", который будет запускаться при нажатии кнопки "Start", приостанавливаться на "Pause", и сбрасываться на "Reset" billiejean78 JavaScript, Ajax 1 03.09.2021 08:58
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 12:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23