如何不执行其他PHP文件即可获取其完整内容(含PHP开闭标记)
不执行PHP文件直接获取完整原始内容的实现方法
核心实现逻辑
file_get_contents本身就具备读取文件原始内容的能力,你当前写的代码逻辑是可行的,拿不到原始代码通常是路径配置错误导致的。
正确使用方法
- 必须传本地文件系统路径给
file_get_contents,不能传HTTP/HTTPS开头的URL:如果传入URL,请求会经过Web服务器解析,PHP代码会被执行后才返回结果,自然拿不到原始代码。 - 建议用魔术常量
__DIR__拼接绝对路径,避免相对路径随执行目录变化找不到文件的问题。
示例代码
content.php(无需修改,保持原有代码即可)
<?php $a = hello; $b = vishal; $b = $a.' '.$b; ?>
Render/index.php 优化后代码
<?php // __DIR__ 是当前index.php所在的目录,这里假设content.php在index.php的上级目录 $homepage = file_get_contents(__DIR__ . '/../content.php'); echo $homepage; ?>
注意事项
- 要保证运行PHP的进程对目标content.php文件有读权限,否则会读取失败。
- 如果确实需要通过HTTP接口对外提供PHP源码下载,建议把源码文件后缀改为
.phps或者其他非PHP后缀,避免被Web服务器解析执行,或者单独配置Web服务器规则限定特定路径下的PHP文件不做解析直接返回内容。
内容的提问来源于stack exchange,提问作者Vishal Vishwakarma
相关产品推荐
相关产品推荐

