Как отправить данные в ранее включенный файл PHP? - PullRequest
0 голосов
/ 13 августа 2011

У меня есть header.php и footer.php файл.Мой HTML-заголовок находится в header.php , и у меня есть файл index.php .

Я использую так ( index.php ):

require 'header.php';

$example_code = 'example';

︙

require 'footer.php';

И мой header.php :

<html>
 <head>
  <title>
     ???
  <title>
  <meta name="description" content="???" /> 
   <meta name="keywords" content="???" /> 
 </head>
<body>
︙

Я хочу отправить некоторые данные из index.php в header.php , чтобы распечатать их там (см. ???).Я думаю о функции header(), но я не вижу ни одного примера в руководстве по PHP.

Ответы [ 4 ]

3 голосов
/ 13 августа 2011

Лучшее, что вы можете сделать, это отделить логику от представления. Использование подхода MVC, когда вы заботитесь обо всей логике в одном файле, а затем отображаете результат того, что вы сделали в слое только для презентации.

Кроме того, если вы хотите сохранить свой подход, вам просто нужно выполнить назначения до того, как header.php будет включен . Итак, предположим, что вы хотите изменить заголовок своей страницы, это то, что вам нужно сделать:

index.php

<?php
$title = 'My Page Title';
$description = 'My meta description';
$keywords = 'keyword list';
include('header.php');

?>

header.php

<html>
 <head>
  <title>
     <?php echo $title; ?>
  <title>
  <meta name="description" content="<?php echo $description; ?>" /> 
   <meta name="keywords" content="<?php echo $keywords; ?>" /> 
 </head>
<body>

Это так просто. Просто имейте в виду, Вы не можете назначать задания странице / сценарию, ПОСЛЕ того, что было включено

Опять же, я пытаюсь вам ответить, не обязательно предлагая такой подход. Если в вашем приложении всего пара страниц, это нормально. Если он больше (или будет), то что-то вроде шаблона MVC (шаблон двухэтапного просмотра) будет лучшей альтернативой IMHO.

1 голос
/ 13 августа 2011

Функция заголовка php не имеет ничего общего с html-тегом "head".

1 голос
/ 13 августа 2011

Функция header() не подходит для того, что вы хотели бы сделать.Вы просто ищете переменную:

index.php:

$title = 'My Page Title!';
$description = 'This is how I describe it.';
$keywords = 'page, title, describe';

header.php:

   <title>
      <?php echo htmlspecialchars($title); ?>
   <title>
   <meta name="description" content="<?php echo htmlspecialchars($description); ?>" /> 
   <meta name="keywords" content="<?php echo htmlspecialchars($keywords); ?>" /> 
1 голос
/ 13 августа 2011
<?php

 $tpTitle="Helping you to improve your web site";

  $pgHeading="Site-Report.com - Helping you to improve your web site";

  $pgDesc="Helping you to improve your web site";

 $pgKeywords="site-report";

  ?>


<head>

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>

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

 <meta name="description" content="<?php echo $pgDesc ?>"></meta>

 <meta name="keywords" content="<?php echo $pgKeywords ?>"></meta>

</head>



 http://www.cre8asiteforums.com/forums/index.php?showtopic=4558
...