Форум фанов Prodigy  |  Разное  |  Hard & Soft (Модератор: ch.a.sh)

Тема: Как динамически генерить title на php ?



АКТУАЛЬНЫЕ ТЕМЫ:
Последний автор: chega93
Страницы: [1] Ответ | Уведомлять об ответах
   Автор  Тема: Как динамически генерить title на php ?  (Просмотрено 1227 раз)
m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
#
Процитировать |

Итак вопрос : как динамически генерить title на php ?
К примеру : при переходе по ссылке заголовок странички меняется. Ну прям как на prodigy.ru.

почитал примеры в инете, слишком сжато там всё написанно. Попробывал некоторые - нихрена не работает.
А мне это очень нада, так как поисковики на них большое внимание обращают.

Вот как у меня генерятся странички :

<?php include('connect.php') ?>
<?php include('common.php') ?>
<?php include('шапка.html') ?>
<?php include('тело.html') ?>
<?php include('подвал.html') ?>

В данный момент у меня все странички имеют один и тот же <title>. Так как он прописан в шапка.html.

Научите как это побороть. Так как это плохо сказывается на работе сайта, точнее от него толку мало.

Иридий
Jewish Power
Бог Форума
*****
Рейтинг: 575

[Заценки]
[Комментарии]





Город:
Пол: Мужчина
Сообщений: 2966

Как динамически генерить title на php ?
Ответ #1
Процитировать |

допустим, id страницы задается get-переменной page, тогда до подключения шапки вставляем подобный код:

Код:
<?php

$titles = array(
'id страницы' => 'заголовок страницы',
'id страницы1' => 'заголовок страницы1',
'id страницы2' => 'заголовок страницы2',
'id страницы3' => 'заголовок страницы3',
'id страницы4' => 'заголовок страницы4',
'id страницы5' => 'заголовок страницы5',
'id страницы6' => 'заголовок страницы6',
'id страницы7' => 'заголовок страницы7',
'id страницы8' => 'заголовок страницы8'
);

if (in_array($_GET['page'], $titles))
{
    $title = $titles[$_GET['page']];
}

?>


а в файле шапки -- такой:

Код:
<title><?=$title?></title>

m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
Ответ #2
Процитировать |

+1, всё равно ничего не понял. Я тебе если что в личку отпишку, поднатаскаешь ?
ОК ?

Android
accedas ad curiam
Бог Форума
*****
Рейтинг: 1721

[Заценки]
[Комментарии]



My mind is glowing...

http://andr0id.blogspot.com 125149210
Город:
Пол: Женщина
Сообщений: 15251

Как динамически генерить title на php ?
Ответ #3
Процитировать |

Ириидй, ты что - программист чтоли?

Иридий
Jewish Power
Бог Форума
*****
Рейтинг: 575

[Заценки]
[Комментарии]





Город:
Пол: Мужчина
Сообщений: 2966

Как динамически генерить title на php ?
Ответ #4
Процитировать |


я могу то же самое написать более простыми словами.

нет, у меня в подвале есть два десятка способных китайцев с лаптопами

m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
Ответ #5
Процитировать |

2 Иридий

Итак, по порядку. К примеру я создаю файл generation_title.php
В него пихаю этот код :
===============================================
<?php

$titles = array(
'id index.php' => 'заголовок страницы индекса',
);

if (in_array($_GET['page'], $titles))
{
    $title = $titles[$_GET['page'];
}

?>

===============================================
потом естественно вставляю полученный файл в генерацию самой странички (к примеру для index.php):

<?php include('connect.php') ?>
<?php include('common.php') ?>
<?php include('generation_title.php') ?>
<?php include('шапка.html') ?>
<?php include('тело.html') ?>
<?php include('подвал.html') ?>

в 'шапка.html' вписываю это <title><?=$title?></title>

Всё это сделал, вот что пишет браузер :

Parse error: syntax error, unexpected ';', expecting ']' in /home/site/public_html/generation_title.php on line 17


В чём засада ?

Иридий
Jewish Power
Бог Форума
*****
Рейтинг: 575

[Заценки]
[Комментарии]





Город:
Пол: Мужчина
Сообщений: 2966

Как динамически генерить title на php ?
Ответ #6
Процитировать |

только вернулся с phpconf 2008, и тут на тебе

во-первых, у тебя же написано, что за ошибка и где она находится (пропущена закрывающая квадратная скобка в препоследней строке кода). чтобы легко находить синтаксические ошибки и быстро писать php-код, скачай себе zend studio.

во-вторых, эта самая строчка кода в принципе не имеет смысла
ведь функция in_array проверяет наличие в значениях массива, а переменная $_GET['page'] должна присутствовать в его ключах. id страниц являются в этом массиве именно ключами. поэтому здесь надо использовать функцию array_key_exists

в-третьих, что у тебя id-то такие идиотские?

в-четвертых, где блок else для if'а?

m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
Ответ #7
Процитировать |

+1

Раз 20 прочитал твой ответ - я ни бум-бум.;)
Слушай, раз ты посещаешь такие мероприятия как phpconf 2008 - значит ты монстр в этом деле.
Чесно я в php - мало чего понимаю. Пользоваться готовыми шаблонами это одно, а вот что б вот так вот взять и самому написать код, это мне не под силу. Последнее на чём я програмировал это был Бейсик, да и то во времена ZX Specturm.
Мож поможешь с кодом ? Как он правильно должен быть написан в моём случае ?

P.S. zend studio - там кокой релиз то качать ?

Иридий
Jewish Power
Бог Форума
*****
Рейтинг: 575

[Заценки]
[Комментарии]





Город:
Пол: Мужчина
Сообщений: 2966

Как динамически генерить title на php ?
Ответ #8
Процитировать |

короче
поменяй код на это:

Код:
<?php

$titles = array(
'page1' => 'заголовок страницы один'
);

if (array_key_exists($_GET['page'], $titles));
{
    $title = $titles[$_GET['page']];
}
else
{
    $title = 'заголовок страницы индекса';
}

?>


и попробуй зайти на http://твойсайт/?page=page1

zend studio надо качать версии 5.5

m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
Ответ #9
Процитировать |

Иридий ! Я всётаки асилил динамический title. Делал по одному примеру из инета.

Суть :
к примеру в файл index.php (так придётся поступить со всему php'шками) инклудим файл dinamic_tittle.php

Код:
<?php include('connect.php') ?>
<?php include('common.php') ?>
<?php include('dinamic_tittle.php'); echo("Название компании"); ?></title>
<?php include('шапка.html') ?>
<?php include('тело.html') ?>
<?php include('подвал.html') ?>


далее пихаем код в собственно сам dinamic_tittle.php

Код:
<?

if($_SERVER['REQUEST_URI']=="/index.php")              echo "<title>Ля-ля-ля-ля 1 ";
elseif($_SERVER['REQUEST_URI']=="/и так далее.php")      echo "<title>Ля-ля-ля-ля 2 ";

else echo "<title>Для всех остальных страниц ";

?>


После обработки браузером титл выглядит так : "Ля-ля-ля-ля Название компании"

Всё работает ! Я сам в ахуе......

Вопрос № 1 : как поступить по аналогии с keywords и description ?
Вопрос № 2 : а стоит ли это делать ? Помоему поисковикам пох на эти теги.
Вопрос № 3 : чем больше вот таких вот генираций, тем дольше будет грузицца страница ? Нежели это всё прописать явным образом ?

Иридий
Jewish Power
Бог Форума
*****
Рейтинг: 575

[Заценки]
[Комментарии]





Город:
Пол: Мужчина
Сообщений: 2966

Как динамически генерить title на php ?
Ответ #10
Процитировать |



за такой код тебя следует сжечь живьем или направить на работу в индию, как наследника тамошних традиций





Код:
<?php
require_once('connect.php');
require_once('common.php');
require_once('dynamic_title.php');
?>
<head>
<title>Название компании: <?=$title?></title>
<meta name="description" content="<?=$description?>" />
<meta name="keywords" content="<?=$keywords?>" />
<?php
require_once('шапка.html');
require_once('тело.html');
require_once('подвал.html');
?>

dynamic_title.php:
Код:
<?

switch ($_SERVER['REQUEST_URI'])
{
    case '/index.php':
    $title = 'Ля-ля-ля-ля 1';
    $description = 'тополя1';
    $keywords = 'тратата1';
    break;
   
    case '/и так далее.php':
    $title = 'Ля-ля-ля-ля 1';
    $description = 'тополя1';
    $keywords = 'тратата1';
    break;

    default:
    break;
}

?>




если страницы различаются по этим параметрам -- стоит.



да, на несколько миллисекунд.

m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
Ответ #11
Процитировать |

+ 100
Спасибо дружищще ! Буду вникать в суть.....

Тааааааааакккк.....смотря по диаганали кое что понятно, кое что нет :

1) В чём различия require_once('connect.php');    от <?php include('connect.php') ?>
у меня тело.html всё время разное, в зависимости от страниц.

2) как в dynamic_title.php дописать алгоритм для тех страниц, которые там не перечислены, что б тоже что нить прописывалось в титл данных страниц?

Иридий
Jewish Power
Бог Форума
*****
Рейтинг: 575

[Заценки]
[Комментарии]





Город:
Пол: Мужчина
Сообщений: 2966

Как динамически генерить title на php ?
Ответ #12
Процитировать |


require_once отличается от include тем, что не включает файл, если его уже включили.

и?

добавить по кейсу для каждой страницы.

m.d.3d
КиямотоНахерЧаки
Бог Форума
*****
Рейтинг: 125

[Заценки]
[Комментарии]



I'm a Firestarter

3D модели из кинофильмов 194760895
Город:
Пол: Мужчина
Сообщений: 1088

Как динамически генерить title на php ?
Ответ #13
Процитировать |

Обкотал твой метод. Работает !!! 


Громадный, громадный тебе риспект !

Страницы: [1] Ответ | Уведомлять об ответах 
Показать последних комментариев к сообщениям в теме загрузить

Форум фанов Prodigy  |  Разное  |  Hard & Soft (Модератор: ch.a.sh)

Тема: Как динамически генерить title на php ?