Php 显示包含require语句的页面代码

Php 显示包含require语句的页面代码,php,html,file,Php,Html,File,我试图将php文件的代码显示为纯html。这一切进展顺利,除了我希望它“打开”语句之外 到目前为止,我已经show_source($page)正常工作 它目前打印: <?php require 'Main_content_bar.php'; ?> <!-- Jumbotron --> <div class="jumbotron"> <h1>Property</h1> <p class="lead">Cra

我试图将php文件的代码显示为纯html。这一切进展顺利,除了我希望它“打开”
语句之外

到目前为止,我已经
show_source($page)正常工作

它目前打印:

<?php require 'Main_content_bar.php'; ?>

<!-- Jumbotron -->
<div class="jumbotron">
    <h1>Property</h1>

    <p class="lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus
        commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet.</p>

</div>


<div class="row">
    <div class="col-md-12">
        <h2>Current properties</h2>



    </div>
</div>


<div class="footer">
    <p><a href="Source_code.php" target="_blank"> <img src="Images/codebutton<?php echo $page_lower;?>.jpg" alt="<?php echo $page;?> Source"> </img>
        </a></p>

    <p>&copy; Robin B'stards Retail 2014</p>
</div>


</body>
</html>

财产

我是奥迪奥,我是艾格斯塔,我是埃格特码头。福斯·达皮布斯,泰勒斯·阿库斯 commodo,墨西哥玉米饼调味品nibh,但发酵剂massa只是一种调味品

当前属性

&抄袭;罗宾B’s标准零售2014

但是,正如我们所看到的,require语句的内容没有显示出来。我一辈子都不知道该怎么做

所以它最终会是这样的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">

    <script src="jquery-2.1.1.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<!--    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/css/bootstrapValidator.min.css"/>-->
<!--    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/js/bootstrapValidator.min.js"></script>-->
    <link href="justified-nav.css" rel="stylesheet">
    <script>
        $(function(){
            var url = window.location.href;
            var page = url.substr(url.lastIndexOf('/')+1);
            $('.nav a[href*="'+page+'"]').parent().addClass('active');
        });
    </script>
</head>
<body>
<div class="container" style="width: 1263px">

    <div class="masthead">
        <h3 class="text-muted">Ruthless Real Estate</h3>
        <ul class="nav nav-justified">
            <li class="menu"><a href="Property.php">Property</a></li>
            <li class="menu"><a href="Client.php">Client</a></li>
            <li class="menu"><a href="Type.php">Type</a></li>
            <li class="menu"><a href="Feature.php">Feature</a></li>
            <li class="menu"><a href="Multiple_properties.php">Multiple Properties</a></li>
            <li class="menu"><a href="Property_features.php">Property Features</a></li>
            <li class="menu"><a href="Images.php">Images</a></li>
        </ul>
    </div>
<!-- Jumbotron -->
<div class="jumbotron">
    <h1>Property</h1>

    <p class="lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus
        commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet.</p>

</div>


<div class="row">
    <div class="col-md-12">
        <h2>Current properties</h2>


    </div>
</div>


<div class="footer">
    <p><a href="Source_code.php" target="_blank"> <img src="Images/codebutton<?php echo $page_lower;?>.jpg" alt="<?php echo $page;?> Source"> </img>
        </a></p>

    <p>&copy; Robin B'stards Retail 2014</p>
</div>


</body>
</html>

$(函数(){
var url=window.location.href;
var page=url.substr(url.lastIndexOf('/')+1);
$('.nav a[href*=“'+page+''“]').parent().addClass('active');
});
无情的房地产
财产

我是奥迪奥,我是艾格斯塔,我是埃格特码头。福斯·达皮布斯,泰勒斯·阿库斯 commodo,墨西哥玉米饼调味品nibh,但发酵剂massa只是一种调味品

当前属性

&抄袭;罗宾B’s标准零售2014


请注意缺少require语句

您无法使用
show_source
来实现这一点,它只是“显示文件的一些代码源”

您需要创建自己的函数,该函数在参数中使用文件名,然后您必须像这样分析源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">

    <script src="jquery-2.1.1.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<!--    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/css/bootstrapValidator.min.css"/>-->
<!--    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/js/bootstrapValidator.min.js"></script>-->
    <link href="justified-nav.css" rel="stylesheet">
    <script>
        $(function(){
            var url = window.location.href;
            var page = url.substr(url.lastIndexOf('/')+1);
            $('.nav a[href*="'+page+'"]').parent().addClass('active');
        });
    </script>
</head>
<body>
<div class="container" style="width: 1263px">

    <div class="masthead">
        <h3 class="text-muted">Ruthless Real Estate</h3>
        <ul class="nav nav-justified">
            <li class="menu"><a href="Property.php">Property</a></li>
            <li class="menu"><a href="Client.php">Client</a></li>
            <li class="menu"><a href="Type.php">Type</a></li>
            <li class="menu"><a href="Feature.php">Feature</a></li>
            <li class="menu"><a href="Multiple_properties.php">Multiple Properties</a></li>
            <li class="menu"><a href="Property_features.php">Property Features</a></li>
            <li class="menu"><a href="Images.php">Images</a></li>
        </ul>
    </div>
<!-- Jumbotron -->
<div class="jumbotron">
    <h1>Property</h1>

    <p class="lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus
        commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet.</p>

</div>


<div class="row">
    <div class="col-md-12">
        <h2>Current properties</h2>


    </div>
</div>


<div class="footer">
    <p><a href="Source_code.php" target="_blank"> <img src="Images/codebutton<?php echo $page_lower;?>.jpg" alt="<?php echo $page;?> Source"> </img>
        </a></p>

    <p>&copy; Robin B'stards Retail 2014</p>
</div>


</body>
</html>
  • 将所有require/include/require\u once/include\u once(我忘了什么?)替换为它们自己的内容
  • 使函数递归(因为Main_content_bar.php中可以包含其他include)
  • 在函数末尾使用
编辑要搜索和替换,一种方法(有几种)是使用。这部分代码如下所示:

$new_content = file_get_contents('your-file.php');
$base_path   = __DIR__.'/';
// pattern to find require, require_once, include, include_once functions
// and catch their arguments
$pattern = "#<\?php (?:require|include(?:_once)?)\s*'(.*)'; \?>#u";
if (preg_match_all($pattern, $new_content, $matches))
{
  foreach($matches[0] as $pattern_index => $full_pattern)
  {
    $file = $matches[1][$pattern_index];
    $subcontent = file_get_contents($base_path.$matches[$pattern_index]);
    $new_content = str_replace($new_content, $full_pattern, $subcontent);
  }
}
highlight_string($new_content);
$new\u content=file\u get\u contents('your-file.php');
$base_path=_DIR__.'/';
//查找require、require\u once、include、include\u once函数的模式
//抓住他们的论点
$pattern=“##u”;
if(preg_match_all($pattern、$new_content、$matches))
{
foreach($pattern\u index=>$full\u pattern匹配[0]
{
$file=$matches[1][$pattern_index];
$subcent=file_get_contents($base_path.$matches[$pattern_index]);
$new_content=str_replace($new_content,$full_pattern,$subcent);
}
}
突出显示字符串($新内容);

您可以添加show\u source方法吗?您所说的“打开”是什么意思?是否希望对php代码进行部分解释(对于您的情况,执行“require”命令,但保留“echo”?@LoganBailey函数
show\u source
是php本机()@Asenar更新的问题。这实际上只是作为普通html打印在另一个页面上。这不是我的问题-只是让添加所需文件的内容也显示出来。你有模板渲染引擎吗?我想是的。你会使用输出缓冲并将渲染视图包装在返回页面。您建议在每个文件中搜索require语句的内置函数是什么?或者如果不可能,什么函数逐行搜索?我在帖子中回答了。请注意,这是一个非常不完整的解决方案(require可以使用括号或双引号代替简单引号)。$content变量从何而来。此外,您在if语句后缺少a)。感谢您迄今为止的帮助。我将变量命名为
$content
,然后将其重命名为
$new\u content
。这就是我尝试的,它抛出:PHP注意:未定义变量:第43行的Source\u code.PHP中的match PHP警告:第43行的file\u get\u contents():Source\u code.PHP中的文件名不能为空。它重复了这两行,这让我觉得它找到了两个相对的语句。