2014-04-10 42 views
0

在我的文件index.php我已经从另一个文件中包含此文本。PHP - 如何包含php脚本,但没有运行它之前包括

<title> 
    <?php 

    $title = ""; 
    if (basename(__FILE__, ".php") == "index") { 
    $title = "Home"; 
    } else { 
    $title = ucfirst(basename(__FILE__, ".php")); 
    } 

    echo $title; 
    ?> 
</title> 

我想你可以看到我做了什么,如果没有,那么它应该将标题设置为文件的基本名称。所以说你有一个文件叫downloads.php,那么这个脚本的标题就是下载。但我有这个问题,我不知道如何过去。当我通过文本包含。

<head> 
    include "filename.php"; 
</head> 

而我的问题是当我包含文本时,'脚本'在它包含之前运行。说,如果你包含的文件的名称是filename.php以及您已经包含了文本的主要页面main.php,头会而不是主要。我之所以要包含文本,而不是直接粘贴到main.php是因为如果您有多个文件需要完全相同的代码,编辑起来会更容易。

我希望你明白我在问什么,并且你能帮助我。

+0

这几乎是PHP的整点包括。 –

回答

0

它看起来像你试图建立一个简单的系统,把你的网页分成“子页面”。好主意。但不是依赖文件名,为什么不设置变量?例如:

page_title.php

<?php 
echo "<title>" . $title . "</title>"; 

index.php

<?php $title = "Home"; ?> 
<head> 
    <?php include "page_title.php"; ?> 
</head> 

some_other_page.php

<?php $title = "Some Other Page"; ?> 
<head> 
    <?php include "page_title.php"; ?> 
</head> 

与同为你想要的任何其他网页...

实际上,您可能想要封装页面的整个<head></head>部分。最后,您可能需要查看PHP中的某些模板引擎,而不是重新发明轮子。我喜欢Smarty,但也有其他人。这些模板引擎可以编写模板文件(如果需要,还可以包括其他模板),并且可以简单地将变量传递给模板&呈现您的HTML。

+0

重点在于使其自动化,所以每次创建新页面时我都不必自己做。但是,无论如何,我会考虑这些引擎。听起来是一个好主意。 – Phoenix1355

1

尝试$_SERVER['SCRIPT_NAME']

if (basename($_SERVER['SCRIPT_NAME'], ".php") == "index") { 
    $title = "Home"; 
    } else { 
    $title = ucfirst(basename($_SERVER['SCRIPT_NAME'], ".php")); 
} 
+0

这工作!感谢:D – Phoenix1355