HEAD раздел в PHP включает

0

Я работаю с PHP, и мне нужно разместить информацию HEAD в одном из них. Возможно ли это, или я могу разместить секцию HEAD поверх индекса index.php?

Я спрашиваю об этом, потому что PHP включает в себя запросы, которые мне нужны, чтобы получить данные изображения OG (для социальных сетей) в голове. Например: у меня есть файл WEBSHOP.PHP, и в этом файле есть продукт с изображением. Я хочу, чтобы этот образ отображался на временной шкале в FaceBook.

Это пример моей (сокращенной версии) index.php:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
  </head>

  <body>
    <? include webshop.php; ?>
  </body>

Это пример моей (сокращенной версии) webshop.php:

<!-- some mysql query to get variables as $pic and $row->meta_title -->

<head>
  <meta property="og:image" content="http://forteuitgevers.nl/images/boeken/<? echo $pic; ?>" />
  <meta property="og:title" content="<? echo $row->meta_title;  ?>" />
  <meta property="og:description" content="<? echo $row->meta_des; ?>" />
  <meta property="og:url" content="http://<? echo $_SERVER['HTTP_HOST']; ?>/<? if (!empty($url_array[1])) { echo  $url_array[1]; echo '/' ; } ?><? if (!empty($url_array[2])) { echo  $url_array[2] ; } ?>" >
</head>

<!-- some code to view the webshop item -->
  • 0
    Вы можете поместить заголовки в любом месте, прежде чем содержание будет написано.
  • 0
    Покажите нам код. Что ты уже пробовал.
Показать ещё 7 комментариев
Теги:
head

2 ответа

1

Вам придется немного изменить структуру ваших файлов PHP, чтобы получить все теги заголовков в один раздел <head>. Если вы webshop.php файл webshop.php прежде чем приступать к генерации вывода HTML, вы можете получить доступ к переменным PHP при написании главы. Что-то вроде этого:

index.php:

<?php include webshop.php; ?>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    <meta property="og:title" content="<?php echo $row->meta_title;  ?>" />
    <!-- other meta tags using variables from webshop.php -->
</head>
<body>
    <!-- print out HTML code from webshop.php -->
    <?php echo $doc_body; ?>
</body>

Затем в webshop.php вам нужно будет сохранить любой вывод HTML с буферизацией вывода, чтобы вы могли добавить его в код HTML в нужном месте. Что-то вроде этого:

<?php
    // sql queries to get data

    ob_start();
?>
<!-- html code to show up in the body section to view webshop items -->
<?php
    $doc_body = ob_get_clean();
?>

Проверьте страницу PHP.net вручную на буферизации вывода для получения дополнительной информации о ob_start и ob_get_clean.

0

Да, ты можешь. Однако это плохой стиль. И вы ошибаетесь в своем HTML:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
</head>
<body>
    <? include webshop.php; ?>
</body>

это приведет к

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
</head>
<body>
    <head>
<meta property="og:image" content="http://forteuitgevers.nl/images/boeken/<? echo $pic; ?>" />
<meta property="og:title" content="<? echo $row->meta_title;  ?>" />
<meta property="og:description" content="<? echo $row->meta_des; ?>" />
<meta property="og:url" content="http://<? echo $_SERVER['HTTP_HOST']; ?>/<? if (!empty($url_array[1])) { echo  $url_array[1]; echo '/' ; } ?><? if (!empty($url_array[2])) { echo  $url_array[2] ; } ?>" >
</head>
</body>

Однако HTML не нравится, что тег заголовка находится внутри тега body. Но большинство браузеров все равно покажут это правильно. Чтобы убедиться: проверьте свой результат с помощью HTML Validator.

  • 0
    Это именно то, что я имею в виду: HTML-код неправильный, и Facebook этого не поймет. Поэтому я должен изменить это каким-то образом, чтобы заставить это работать в FaceBook.
  • 1
    Да, вы должны изменить свой звонок. В противном случае вы не можете присоединиться к нему с другими инструментами PHP. Измените ваш SHOP PHP, чтобы он не выводил свой собственный заголовок. Или разделите ваш PHP, один для заголовка и один для тега body.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню