АКТУАЛЬНЫЕ ТЕМЫ:
|
|
|
|
|
Автор
|
Тема: Как динамически генерить title на php ? (Просмотрено 1227 раз)
|
|
|
|
Иридий
|
допустим, 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
|
+1, всё равно ничего не понял. Я тебе если что в личку отпишку, поднатаскаешь ?
ОК ?
|
|
|
|
Android
|
Ириидй, ты что - программист чтоли?
|
|
|
|
Иридий
|
+1, всё равно ничего не понял. Я тебе если что в личку отпишку, поднатаскаешь ?
ОК ?
|
|
я могу то же самое написать более простыми словами.
Ириидй, ты что - программист чтоли?
|
|
нет, у меня в подвале есть два десятка способных китайцев с лаптопами
|
|
|
|
m.d.3d
|
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
В чём засада ?
|
|
|
|
Иридий
|
только вернулся с phpconf 2008, и тут на тебе
во-первых, у тебя же написано, что за ошибка и где она находится (пропущена закрывающая квадратная скобка в препоследней строке кода). чтобы легко находить синтаксические ошибки и быстро писать php-код, скачай себе zend studio.
во-вторых, эта самая строчка кода в принципе не имеет смысла
ведь функция in_array проверяет наличие в значениях массива, а переменная $_GET['page'] должна присутствовать в его ключах. id страниц являются в этом массиве именно ключами. поэтому здесь надо использовать функцию array_key_exists
в-третьих, что у тебя id-то такие идиотские?
в-четвертых, где блок else для if'а?
|
|
|
|
m.d.3d
|
+1
Раз 20 прочитал твой ответ - я ни бум-бум.;)
Слушай, раз ты посещаешь такие мероприятия как phpconf 2008 - значит ты монстр в этом деле.
Чесно я в php - мало чего понимаю. Пользоваться готовыми шаблонами это одно, а вот что б вот так вот взять и самому написать код, это мне не под силу. Последнее на чём я програмировал это был Бейсик, да и то во времена ZX Specturm.
Мож поможешь с кодом ? Как он правильно должен быть написан в моём случае ?
P.S. zend studio - там кокой релиз то качать ?
|
|
|
|
Иридий
|
короче
поменяй код на это:
<?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
|
Иридий ! Я всётаки асилил динамический 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 : чем больше вот таких вот генираций, тем дольше будет грузицца страница ? Нежели это всё прописать явным образом ?
|
|
|
|
Иридий
|
Иридий ! Я всётаки асилил динамический 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 ?
|
|
<?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;
}
?> |
|
Вопрос № 2 : а стоит ли это делать ?
|
|
если страницы различаются по этим параметрам -- стоит.
Вопрос № 3 : чем больше вот таких вот генираций, тем дольше будет грузицца страница ?
|
|
да, на несколько миллисекунд.
|
|
|
|
m.d.3d
|
+ 100
Спасибо дружищще ! Буду вникать в суть.....
Тааааааааакккк.....смотря по диаганали кое что понятно, кое что нет :
1) В чём различия require_once('connect.php'); от <?php include('connect.php') ?>
у меня тело.html всё время разное, в зависимости от страниц.
2) как в dynamic_title.php дописать алгоритм для тех страниц, которые там не перечислены, что б тоже что нить прописывалось в титл данных страниц?
|
|
|
|
Иридий
|
1) В чём различия require_once('connect.php'); от <?php include('connect.php') ?>
|
|
require_once отличается от include тем, что не включает файл, если его уже включили.
у меня тело.html всё время разное, в зависимости от страниц.
|
|
и?
2) как в dynamic_title.php дописать алгоритм для тех страниц, которые там не перечислены, что б тоже что нить прописывалось в титл данных страниц?
|
|
добавить по кейсу для каждой страницы.
|
|
|
|
m.d.3d
|
Обкотал твой метод. Работает !!!
Громадный, громадный тебе риспект !
|
|
|
|
Показать последних комментариев к сообщениям в теме
|
|