Замена Title на PHP

(Ответов: 5, Просмотров: 2636)
  1. Студент Аватар для CaHbKa
    • Регистрация: 05.09.2009
    • Сообщений: 40
    • Репутация: 6
    • Webmoney BL: ?
    Для одного сайта понадобилось изменять Titile страницы, так как по всему CMS у него один и тот же Titile практически.

    Нашел в сети код:

    PHP код:
    <?php 
    $content 
    = ob_get_contents();  
    ob_end_clean();
    preg_match ( "/<h1>(.*)<\/h1>/i", $content, $matches);
    $content = preg_replace ( "/<title>(.*)<\/title>/i", '<title>' . strip_tags($matches[1]) . '</title>', $content);  
    echo 
    $content;
    ?>
    Который без проблем заменяет title на текст из H1.

    Но, если на странице нет тега H1 то он заменяет его на пустоту

    Подскажите, как сделать так чтобы на странице если нету тега H1, то он не заменял Titile страницы и наоборот?

    Спасибо заранее!
    • 0
  2. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    PHP код:
    <?php  
    $content 
    = ob_get_contents();
    ob_end_clean(); 
    preg_match ( "/<h1>(.*)<\/h1>/i", $content, $matches); 
    if(!empty(
    strip_tags($matches[1])) $content = preg_replace ( "/<title>(.*)<\/title>/i", '<title>' . strip_tags($matches[1]) . '</title>', $content);
    echo 
    $content; 
    ?>
    Если то, на что хотите заменить, не пустое - произойдет замена. Если пустое - title останется без изменений
    • 1

    Спасибо сказали:

    CaHbKa(04.04.2013),
  3. Студент Аватар для CaHbKa
    • Регистрация: 05.09.2009
    • Сообщений: 40
    • Репутация: 6
    • Webmoney BL: ?
    Вылезла такая ошибка:

    Fatal error: Can't use function return value in write context in

    PHP код:
    if(!empty(strip_tags($matches[1])) $content = preg_replace ( "/<title>(.*)<\/title>/i", '<title>' . strip_tags($matches[1]) . '</title>', $content); 
    • 0
  4. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    Щас, я у себя на тестовом сайте попробую:) Сам начинающий, поэтому сходу правильно не всегда получается)

    ----------------

    Вот это у меня работает

    PHP код:
    <?php  
    $content 
    = ob_get_contents();
    ob_end_clean(); 
    preg_match ( "/<h1>(.*)<\/h1>/i", $content, $matches); 
    if(!empty(
    $matches)) $content = preg_replace ( "/<title>(.*)<\/title>/i", '<title>' . strip_tags($matches[1]) . '</title>', $content);
    echo 
    $content; 
    ?>
    Последний раз редактировалось OKyJIucT; 04.04.2013 в 15:17.
    • 1

    Спасибо сказали:

    CaHbKa(04.04.2013),
  5. Студент Аватар для CaHbKa
    • Регистрация: 05.09.2009
    • Сообщений: 40
    • Репутация: 6
    • Webmoney BL: ?
    OKyJIucT, большое спасибо! То что нужно!!!!
    • 1

    Спасибо сказали:

    OKyJIucT(04.04.2013),
  6. Опытный Аватар для madcap
    • Регистрация: 30.01.2013
    • Сообщений: 312
    • Репутация: 45
    • Webmoney BL: ?
    М-м-м.... Делать title из H1 - думаю это плохая идея. Как в плане оптимизации, так и гибкости.
    Идеальным была бы возможность настраивать эти теги по отдельности.
    Если движок не слишком навороченный. То возможно имеет смысл добавить ещё поля в базу данных, отвечающие за эти теги. А в самом двиге задать их вывод и редактирование в админке - взяв в качестве примера куски кода из этого двига, которые отвечают за другие поля в материалах.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Замена плагинов на код
WordPress 6 13.01.2013 20:18
Автоматическая замена букв
Софт, скрипты, сервисы 9 14.10.2011 23:35
Есть замена All in One SEO Pack?
Вопросы от новичков 4 21.01.2011 03:07
замена строк
Софт, скрипты, сервисы 1 26.01.2010 01:25

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры