#php #include-path
#php #включить-path
Вопрос:
Итак, вот мой макет:
randompagenumber.php
|
|
/ | header.php
php include -| content.php
| footer.php
В нижнем колонтитуле есть php-скрипт, который вызывает имя файла randompagenumer.php удаляет его расширение и тире в его имени и выводит этот номер имени файла в виде номера страницы в нижнем углу.
(слева или справа, в зависимости от того, четное это число или нечетное).
У меня есть пара страниц (на данный момент 10), я назвал их —1.php, —2.php, —3.php, —4.php, —5.php, —6.php, —7.php, —8.php, —9.php, -10.php, …
Таким образом, скрипт просто превращает их в 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …
Код, который у меня есть для нижнего колонтитула:
<?php
$pagenr = basename($_SERVER['PHP_SELF']);
$pagenr = str_replace( array( '.php', '.htm', '.html', '-', '_' ), '', $pagenr ); // Remove extensions and spaces in filename
if ($pagenr % 2 == 0) {
$footlr = "footerlinks";
$pcontainer = "pcontainerl";
} else{
$footlr = "footerrechts";
$pcontainer = "pcontainerr";
}
?>
<div id="<?=$footlr?>">
<div id="pnummer" class="pcontainer"><?=$pagenr?></div>
Таким образом, div с идентификатором « <?=$footlr?>
» изменил бы имя при проверке четного или нечетного числа и, таким образом, прочитал бы другой стиль css ( #footerlinks и #footerrechts ).
Теперь то, что я пытался выполнить, связано с content.php Я знаю из html, что можно ссылаться на привязки в его собственном файле, и поэтому я попытался получить примерно такой же результат с php, но мне нужно управлять им только для загрузки страницы php, но он выводит весь content.php
Итак, в основном я хотел бы добиться этого, если randompagenumber.php считывает его имя файла (через footer.php ), он загружает содержимое из определенного раздела с идентификатором, соответствующим номеру страницы.
Вот как я мой randompagenumber.php на данный момент выглядит так:
<?php
$PageName = str_replace( array( $PageName ), '#p', $pagenr, $PageName );
?>
<!DOCTYPE html>
<html>
<?php include('templates/pheaderhst.php'); ?>
<?php include("templates/content.php$PageName"); ?>
<?php include('templates/pfooter.php'); ?>
Итак, что я здесь сделал, это создаю новую строку с именем PageName, которая вызывает строку pagenr, вычисляемую из footer.php и пусть это повторяется как страница php для загрузки <?php include("templates/content.php$PageName"); ?>
Просто чтобы обнаружить, что на самом деле загружается вся страница, а не только содержимое того, что я назвал идентификаторами раздела.
Итак, зная, что php-скрипт изменяет имя файла из 006.php чтобы просто ввести число 6, затем измените 6 на #p6 (поскольку идентификатор не может начинаться с числа, я назвал его сначала с помощью p).. Как получилось, что он загружает всю страницу, а не только содержимое моей <section id="p6">content of page 6</section>
?
Для тех, кому интересно, вот как content.php выглядит так;
<?php
?>
<section id="p1">
<div id="contentwrapperpaginas"><?php echo 'Content from page 1' ?></div>
</section>
<section id="p2">
<div id="contentwrapperpaginas"><?php echo 'Content from page 2' ?></div>
</section>
<section id="p3">
<div id="contentwrapperpaginas"><?php echo 'Content from page 3' ?></div>
</section>
<section id="p4">
<div id="contentwrapperpaginas"><?php echo 'Content from page 4' ?></div>
</section>
<section id="p5">
<div id="contentwrapperpaginas"><?php echo 'Content from page 5' ?></div>
</section>
<section id="p6">
<div id="contentwrapperpaginas"><?php echo 'Content from page 6' ?></div>
</section>
Комментарии:
1. Он всегда будет загружать всю страницу, привязка используется для «перехода» к указанному вами разделу
2. Спасибо за быстрый ответ, @RomainB. есть ли способ перечислить только желаемый привязанный элемент при загрузке страницы после вычисления randompagenumber.php число?
Ответ №1:
ОБНОВЛЕНИЕ с решением
Итак, я заставил это работать!
Сначала мой content.php:
<?php
?>
...some div's with page id's here...
<div id="p5">
<div id="contentwrapperpaginas">Content from page 5</div>
</div>
<div id="p6">
<div id="contentwrapperpaginas"><p style="color:yellow;margin-left:-25px;">Content from page 6</p></div>
</div>
...some more div's with page id's here...
Итак, с помощью следующего скрипта я получил возможность загружать только один div и его элементы внутри. Примером, используемым в моем копировании / вставке, будет загрузка <div id="p6">
. Скрипт находится внутри index.php и загружается с помощью <?php echo $content_div[0]; ?>
. :
$url = 'templates/content.php';
$content = file_get_contents($url);
$first_step = explode( '<div id="p6">' , $content );
$content_div = explode("</div>" , $first_step[1] );
Решением было изменение <?php include("templates/content.php$pagenr"); ?>
на <?php echo $content_div[0]; ?>