使用PHP,我将如何在内容模板中加载锚定部分,从文件名中读取基于ID的读取



所以这是我的布局:

    randompagenumber.php
             |
             |
           / | header.php
php include -| content.php
            | footer.php

页脚具有一个php脚本,该脚本称为randompagenumer.php的文件名,将其延长删除,并以其名称的冲刺,并输出该文件名作为底角的PageNumber。(左右,取决于该数字是偶数还是奇怪)。

我有几页(目前为10),我给他们打电话-1.php,-2.php,-3.php,-4.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>

因此,具有ID" <?=$footlr?> "的div在验证均匀或奇数时会更改名称,因此将读取另一种CSS样式(#footerlinks和#footerrechts)。

现在我尝试完成的工作与content.php有关我从HTML知道可以链接到其自己的文件中的锚点,因此我尝试使用PHP的s稍有相同的结果,但是我只需要管理它以使PHP页面加载,但是它输出了整个content.php。

基本上,我想实现,如果randompagenumber.php读取其文件名(通过footer.php),它将加载来自某个部分的内容,其中具有与该页码相对应的ID。

这就是我的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的新字符串,该字符串调用了从footer.php计算的pagenr字符串,并让它回声为PHP页面,以加载 <?php include("templates/content.php$PageName"); ?>

只是发现它实际上是在加载整个页面,而不仅仅是我命名了ID的内容。

因此,知道php脚本将文件名从006.php更改为简单的数字6,然后将6个更改为#p6(因为ID不能以数字开头,然后我先用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>

用解决方案

更新

所以我把它上班了!

首先是我的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]; ?>

相关内容

  • 没有找到相关文章

最新更新