Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Robson Barros da Rocha

PHP que cria tag title no site?

Recommended Posts

Boa noite pessoal! :D

 

Como sabem, já sou bem conhecido pelas minhas perguntas sem noção sobre o PHP. De fato, antes de vir questionar aqui sempre dou uma pesquisada no manual do PHP, mas desta vez não encontrei o que precisava. Por tanto, sem muita alternativa e sem sucesso nas minhas meras buscas no Google, eu gostaria de ajuda de vocês para uma questão referente à criação de HTML com o PHP.

 

Bem, falei tudo e não expliquei nada néh? Estou montando um site no meu PC, algo bem natural que é para aprender também, mas, eu criei um arquivo header.php que está dentro de uma pasta chamada "templates". Dentro do header.php eu tenho a estrutura HTML de uma página tradicional, principalmente o <title></title>, porém, a dúvida está aí mesmo! Ao usar o php:

include('./header.php');

Eu tenho toda a estrutura do HTML, e dentro do arquivo que estou fazendo eu só dou seguimento a página. :D Agora, o meu problema é com o <title>! Toda vez que acesso a página... por exemplo, a página que deveria ter o título de: "meus projetos pessoais", fica nomeado com o título que coloquei no header.php! :(

 

A questão é: Tem alguma maneira de criar dentro do novo arquivo que fiz, usando o include ou o include_once de trocar o título sem alterar no header.php ?

 

Se sim, fico grato se alguém puder me mostrar ou me indicar o local para que eu aprenda isso. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não entendi muito bem. Se tem um title no header e outro em outra parte da página final, sempre terá mais de um title e um sempre sobreporá o outro. Talvez seja o caso de estudar uma forma de passar o title por variável:

echo "<title>" . $var_name . "</title>";

A forma como isso será feita irá depender de sua real necessidade. Veja se consegue clarear alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No header.php eu tenho o <title>Página inicial</title>, ao acessar a página projetos.php eu não tenho um título, por tanto, eu terei ainda o título <title>Página inicial</title>. O que precisamente queria saber, é se com o PHP eu posso dinamicamente ao acessar outra página que não seja a "Página inicial", trocar o título do header.php sem modificar o arquivo.

Acho que não entendi muito bem. Se tem um title no header e outro em outra parte da página final, sempre terá mais de um title e um sempre sobreporá o outro. Talvez seja o caso de estudar uma forma de passar o title por variável:

echo "<title>" . $var_name . "</title>";

A forma como isso será feita irá depender de sua real necessidade. Veja se consegue clarear alguma coisa.

Hum... No header.php então, eu coloco:

<title><?php echo $title ?></title>

E no arquivo projetos.php eu coloco:

<?php $title = "Meus projetos"; ?>

Mas... Se eu fizer assim, vai causar um erro. Nem testei ainda, mas sei que vai dar um erro. Que erro? Bem, para que uma variável possa emitir um resultado (um true), é preciso que deixemos um valor para ela, certo? Exemplo:

$my_txt = 'Meu texto';

 

Se eu colocar o <?php echo $title; ?> na página principal, ele vai me dizer que não há um valor específico para title, pois, o php do projetos.php não será executado primeiro, não é?

 

Nossa, que confusão! kkkkk

 

Obrigado amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma ideia pode ser criar uma array no header com os nomes das páginas e os títulos e colocar no title o título referente ao nome da página que está na barra de endereços do browser. Algo como:

<?php
$arrTitle = array("page1.php" => "Página principal", "page2.php" => "Título para a página 2");
$page = str_replace("/","",explode(".php",$_SERVER["REQUEST_URI"])[0]).".php";
?>
<title><?php echo $page ?></title>

Veja se consegue adaptar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O post de cima não está bem correto e está sem opção de editar aqui. Então mando ele atualizado aqui:

$arrTitle = array("page1.php" => "Página principal", "page2.php" => "Título para a página 2");
$page = explode("/", $_SERVER["REQUEST_URI"]);
$title = $page[count($page) - 1];
echo "<title>" . $arrTitle[$title] . "</title>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

No header.php eu tenho o <title>Página inicial</title>, ao acessar a página projetos.php eu não tenho um título, por tanto, eu terei ainda o título <title>Página inicial</title>. O que precisamente queria saber, é se com o PHP eu posso dinamicamente ao acessar outra página que não seja a "Página inicial", trocar o título do header.php sem modificar o arquivo.

Hum... No header.php então, eu coloco:

<title><?php echo $title ?></title>

E no arquivo projetos.php eu coloco:

<?php $title = "Meus projetos"; ?>

Mas... Se eu fizer assim, vai causar um erro. Nem testei ainda, mas sei que vai dar um erro. Que erro? Bem, para que uma variável possa emitir um resultado (um true), é preciso que deixemos um valor para ela, certo? Exemplo:

Se eu colocar o <?php echo $title; ?> na página principal, ele vai me dizer que não há um valor específico para title, pois, o php do projetos.php não será executado primeiro, não é?

 

Nossa, que confusão! kkkkk

 

Obrigado amigo.

Se setar a variável antes de incluir a header.php elimina esse problema, por exemplo

 

<!--Pagina de projetos-->
<?php
$title ='Meus Projetos';
include 'header.php' 
 ?>
<!--/Pagina de projetos-->

 <!-- Pagina header-->
 <!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title><?php echo $title; ?></title>
</head>
<body>
 <!-- /Pagina header-->

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Criquio, o método que apresentou é muito bom, mas o problema é adicionar toda hora uma nova página. Sem contar que, se por ventura eu tiver neste site, por exemplo, uma notícia de URL /noticia/1 ou noticia/1.html infelizmente não consigo nomeá-las, visto que, a cada nova notícia muda o número da mesma.

 

Eu pensei em criar uma outra variável para pegar o valor do ID, mas, eu não consigo imaginar como fazer isso. Por exemplo:

$id_noticia = $_GET['idnoticia'];
$arrTitle = array("noticia.php" => "Notícia do site";
$page = explode("/", $_SERVER["REQUEST_URI"],$id_noticia);
$title = $page[count($page) - 1];
echo "<title>" . $arrTitle[$title] . "</title>";

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei usar o método acima, mas, não deu certo. Alguém saberia me indicar uma forma?

 

Digamos assim que o método GET busca o que tem o nome niticianame certo? Por exemplo, um H3:

<h3 name="noticianame"></h3>

Daí... Será que o GET consegue pegar o noticianame?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<!--Pagina de projetos-->
<?php
$title ='Meus Projetos';
include 'header.php' 
 ?>
<!--/Pagina de projetos-->

 <!-- Pagina header-->
 <!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title><?php echo isset($title) ? $title : "Título padrão" ?></title>
</head>
<body>
 <!-- /Pagina header-->

Nesse caso se não existir a variavel $title no inicio do *.php, o title irá receber "Título Padrão", do contrario irá imprimir o conteúdo da variavel $title

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.