Php 显示包含require语句的页面代码
我试图将php文件的代码显示为纯html。这一切进展顺利,除了我希望它“打开”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
语句之外
到目前为止,我已经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>© 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>© 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>© 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中的文件名不能为空。它重复了这两行,这让我觉得它找到了两个相对的语句。