我可以提取php包含的部分内容吗?

时间:2014-01-08 07:07:18

标签: php css

我仍在学习php,所以这可能只是我还没有达到的目标,但这是构建我的个人网站的下一个障碍。我对包括诸如链接之类的内容有基本的了解:

<a href="art.php?id=image id&name=This is my title&menu=side-menu-portfolio">

拉我的包括,但我遇到一个小问题,因为我的通用艺术画廊页面需要在'组合'标题和'艺术品'标题之间切换。所以我想我可以构建“ art-gallery.php ”和“ port-gallery.php ”然后返回并重新链接所有内容或者只是让它成为当你像上面的代码一样调用链接我只是指定哪个标头随之而来。不幸的是,这还需要返回并更改每个链接。但我注意到我确实说过:

...&menu=side-menu-portfolio...

并且这些页面已经调用了side-menu-artwork或side-menu-portfolio,所以如果我可以在菜单中调用并抛弃'side-menu-'部分,那么它只会使用艺术作品或作品集并调用正确的标题。不幸的是,这是我对PHP和语法的有限知识的来源。我试图根据我的php和js理解产生以下代码:

<?php include("headlines/headline-" . $_GET[menu - "side-menu-" ]  . ".php"); ?>

但是我不知道我的语法是错误的还是我想要做的事情是不可能开始的。请注意,当我尝试这个时,我得到了

   功能包含错误“警告:include(标题/标题-.php)”

因此看起来其他所有内容都正确读取,我只是不知道是否或如何从菜单名称的其余部分提取我想要的单词。

7 个答案:

答案 0 :(得分:1)

应该是,假设您所包含的文件名是headline-side-menu-portfolio.php

 <?php 
     $filename = str_replace("side-menu-", "", $_GET['menu']); // headline-portfolio
    include("headlines/headline-" .  $filename  . ".php"); // headline-portfolio.php
 ?>

答案 1 :(得分:0)

好吧....你几乎就在那里......只有quotes include include("headlines/headline-.php"); /* notice the quotes*/ 语法错过...它应该是

<?php include("headlines/headline-" .$_GET['menu'].".php"); ?>

所以它应该是

$_GET['menu']

其中art.php?id=image id&name=This-is-my-title&menu=side-menu-portfolio应位于网址中,例如:

<?php include("headlines/headline-" .$_GET['menu'].".php"); ?>

所以发生了什么事?

执行该行:

$_GET

header从网址中提取并替换为header代码,现在<?php include("headlines/headline-"."side-menu-portfolio".".php"); ?>代码变为:

<?php include("headlines/headline-side-menu-portfolio.php"); ?> =&gt;
<a href="art.php?id=image id&name=This is my title&menu=side-menu-portfolio">

另外。我可以建议:

space

请勿在网址中使用-,请将其替换为_或{{1}}

答案 2 :(得分:0)

这样的事情:

<?php include("headlines/headline-" . $_GET["menu"].".php"); ?>
<!--gives include("headlines/headline-side-menu-portfolio.php")-->

其中

$_GET["menu"] = 'side-menu-portfolio'

答案 3 :(得分:0)

试试这个:

<?php include("headlines/headline-" . $_GET['menu']  . ".php"); ?>

答案 4 :(得分:0)

你的代码错了。

而不是

<?php include("headlines/headline-" . $_GET[menu - "side-menu-" ] . ".php"); ?>

<?php include("headlines/headline-" . $_GET['menu'] . ".php"); ?>

在尝试包含该文件之前,您应该检查该文件是否存在。

if (file_exists($filesrc)) { ... }

更好但不要让用户通过$_GET变量更改菜单。而是链接到特定页面或传递变量然后决定要获取的菜单。像

switch ($_GET['menu']) {
    case 'side-menu':
        include("headlines/headline-side-menu.php");
        break;
}

答案 5 :(得分:0)

只需使用

$_GET['menu']

,“side-menu-”部分已经在作为参数传递的变量的内容中。

答案 6 :(得分:0)

您可能希望执行if .... else,以便根据$ _GET变量menu包含一个或另一个标头。

所以像这样的事情会这样做:

if($_GET['menu'] == 'side-menu-portfolio') {
    include 'headliens/side-menu-portfolio.php';
} elseif($_GET['menu'] == 'side-menu-other') {
    include 'headliens/side-menu-other.php';
}