Динамический сайт, используя include для получения контента в конкретном div, как? - PullRequest
2 голосов
/ 05 апреля 2011

Я хочу использовать php, чтобы легко поддерживать свой веб-сайт, но я просто не могу разобраться с языком - я нашел несколько ссылок в Интернете и некоторые другие вопросы здесь, но ни один не помог мне.

Я разделил свой сайт на несколько файлов .php, верхний / нижний колонтитулы и тому подобное - и использую отлично работает ..

Теперь я хочу, чтобы содержимое моего сайта обновлялось в соответствии с тем, какое меню я нажимаю на своем сайте.

http://dawtano.com/pp/

Если я нажму на "about", я хочу, чтобы "Hello World" открылся внутри моего содержимого div, но я не могу получить правильный php-код для этого.

Ответы [ 5 ]

1 голос
/ 05 апреля 2011

Я думаю, вы должны сделать это ---

Примечание. Это будет работать только в том случае, если стиль CSS находится в текущем каталоге!()

<div>
<?php
    $html_page = implode('', file('http://dawtano.com/pp/'));
    echo $html;
?>
</div>

Надеюсь, это поможет!

0 голосов
/ 05 апреля 2011

Лучше всего было бы использовать оператор switch:

http://php.net/manual/en/control-structures.switch.php

Примерно так:

<?php

include("header.php");
$page = $_GET['page'];

switch($page)
{
  case "about":
     include "about.php";
  break;

  case "faq":
     include "faq.php";
  break;

  case "help":
     include "help.php";
  break;

  default:
     include "home.php";
}

include("footer.php);

?>

Тогда просто сделайте так, чтобы все ссылки выгляделикак это: http://www.example.com/index.php?page=home

Просто замените home правильной страницей.

0 голосов
/ 05 апреля 2011

Возможно, вы ищете какой-то движок шаблонов, который позволяет создавать ваши страницы из переменных частей. Вы можете взглянуть на TBS , что более или менее соответствует названию. Но есть целый намного больше двигателей , которые могли бы сделать работу.

Если это уже слишком, возможно, Apache SSI (включая серверную часть) - это попытка для вас.

Небольшое предложение с моей стороны, я часто использую Apaches mod_rewrite в связи с одним файлом controller.php. Затем Apache mod_rewrite отправит весь запрос в controller.php, который будет извлекать соответствующие части страницы для запрашиваемой страницы, используя TBS, и возвращает соответствующую страницу. Таким образом, у вас есть контроль над страницей только в одном месте.

На ваш оригинальный вопрос about.php может выглядеть так:

<?php
  include('header.php');
?>

  // original page content as html for about.php
  // assuming header ends with the starting div <div> where you like the content to appear
  // and footer starts with the closing div </div>
  // if you need variable content here, simply use <?php echo $your_variable ?>

<?php
  include('footer.php');
?>
0 голосов
/ 05 апреля 2011

Один из популярных способов создать сайт - это создать один скрипт php, который отображает контент на основе переменной $ _GET, такой как «page» или «content», а затем создает ссылку как:

'http://dawtano.com/pp/index.php?page=helloworldcontent'

Используя этот метод, вам нужно проверить, установлена ​​ли переменная ($ _GET ['page']) с помощью isset (), а затем убедиться, что строка безопасна ... так как любой, у кого есть браузер, может просто напечатать в каком-нибудь мумбо-магическом сценарии и взломайте ваш сайт:

'http://dawtano.com/pp/index.php?page=somecleaverlycraftedhax'

Как только он существует и станет безопасным, добавьте «.php» к имени файла и включите этот файл ... если он существует! Если он не существует, вам понадобится некоторый код для его обработки, возможно, путем отображения сообщения «Файл не найден», или перенаправления домой, или чего-то еще.

Я предпочитаю не делать этого, потому что это безопасно, и я чувствую, что это довольно уродливо. Вместо этого я помещаю все сценарии header / footer / navbar / titlebar в отдельные функции 'display' и помещаю их в другой файл.

Затем включите этот файл с определениями функций и вызовите все функции «отображения» для настройки страницы. Поэтому каждый php-скрипт на вашем сайте может выглядеть так:

<?php
  include 'html_display_functions.php';

  /* put lines here to parse $_GET and $_POST, session_start()/$_SESSION, etc... */

  print_html_pre_content();
  print '<p>Hello, world!</p>';
  print_html_post_content();
?>

Поскольку каждый скрипт будет иметь такую ​​структуру, вы можете просто создать файл шаблона один раз. Если вы хотите создать новую страницу для своего сайта, скопируйте шаблон, переименуйте копию в нужное имя файла php и добавьте содержимое между двумя функциями печати. ​​

Вы также сохраняете возможность изменять заголовок / нижний колонтитул / панель навигации / заголовок для всего сайта в центральном местоположении, а именно включенный файл с функциями.

0 голосов
/ 05 апреля 2011

ну в настоящее время ваши ссылки выводят вас на отдельную страницу целиком. Так почему бы просто не закодировать его так, чтобы ваш включаемый файл относился к странице. т.е. на about.php используйте что-то вроде

include 'about_content.php

в твоем контексте div.

Если вы ищете, чтобы ваш контент динамически загружался в div контента, вам нужно использовать ajax для извлечения страниц контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...