Criei 3 ficheiros php que são incluídos num quarto ficheiro através da função include. É possível ao incluir determinado ficheiro php passar lá para dentro valores e eles serem utilizados no momento da criação da página?
Qual é o objectivo:
Criei um ficheiro com os parâmetros head, que chamei head.php (faz parte do conjunto de três ficheiros que falei à pouco). Pretendo utiliza-lo para todo o site, mas preciso de alterar o valor do title.
Se já existir um tópico com o assunto, peço desculpas, procurei e não achei, vamos lá...
A estrutura básica do meu site é a seguinte:
index:
<head>
<title>Jogos Grátis Online - GratisGames.com.br</title>
</head>
<body>
<table width="100%" border="0">
<tr>
<td><a href="index.php?pagina=pages/page-tiro/tiro">Tiro</a></td>
</tr>
<tr>
<td> <!--abaixo o include que carrega a página conteudo.php-->
<?php
foreach ($_REQUEST as $__opt => $__val) {
$$__opt = $__val;
}
if(empty($pagina)) {
include("pages/page-conteudo/conteudo.php");
}
elseif(substr($pagina, 0, 4)=='http' or substr($pagina,
0, 1)=="/" or substr($pagina, 0, 1)==".")
{
echo '<br><font face=arial size=11px><br<b>A página não pode ser exibida </br></b>';
}
else {
include("$pagina.php");
}
?>
</td>
</tr>
<tr>
<td>rodapé</td>
</tr>
</table>
</body>
Ao clicar no link "Tiro" mantem-se o cabeçalho e rodapé e carrega a página conteúdo no meio, porém o title não muda, que é meu objetivo, para o especificado no arquivo "conteudo.php", pois, continuamos na index. Usei o seguinte comando PHP na index:
...
<title><?php print $cabecalho_title; ?></title>
...
...
$cabecalho_title = "Título do Conteúdo";
include("pages/page-conteudo/conteudo.php");
...
Nesse caso não vai funcionar devido a estrutura das páginas e a ordem dos comandos, se eu colocar a tag title após o include funciona, se colocar depois da tag body por exemplo, porém, não sei se é recomendável, pois ficaria fora da tag head. Esse problema eu resolvi da seguinte forma:
Criei um arquivo no mesmo diretório do conteudo.php com o nome de title.php com o seguinte código:
<?php $cabecalho_title = "Jogos online grátis - Jogos grátis - Jogos online"; ?>
ficando o código da index assim:
...
include("pages/page-conteudo/title.php");
<title><?php print $cabecalho_title; ?></title>
...
Depois de muito pesquisar, essa foi a solução mais viável que encontrei, porém achei meio que uma gambiarra, pois, sempre que for linkar algo que eu queira mudar o title da página de destino, terei que criar um arquivo title. Existe alguma forma mais simples de fazer essa mudança?