获取解析后的PHP文件

2024-03-12

我试图在解析 PHP 文件后获取其内容,然后将其存储在变量中。 除了这个例子之外,我无法通过谷歌获得任何有用的信息:

ob_start();
include $file;
$content = ob_get_clean();

但这会以纯文本形式返回内容,即:<?php and ?>标签仍然存在,并且标签之间的所有代码都不会被解析。

所以我想知道,我怎样才能正确地做到这一点?


update:这是正在包含的文件的内容:

Testcontent

<?php echo 'This should be parsed, right?'; ?>

几年前,我在某种模板引擎中使用了这个函数,它似乎可以满足您的需要 - 传递一个包含一些 PHP 代码的字符串,它会在执行 PHP 时返回它。令人惊讶的是,它仍然有效:-)

function process_php( $str )
{
    $php_start = 0;

    $tag = '<?php';
    $endtag = '?>';

    while(is_long($php_start = strpos($str, $tag, $php_start)))
    {
        $start_pos = $php_start + strlen($tag);
        $end_pos = strpos($str, $endtag, $start_pos); //the 3rd param is to start searching from the starting tag - not to mix the ending tag of the 1st block if we want for the 2nd

        if (!$end_pos) { echo "template: php code has no ending tag!", exit; }
        $php_end = $end_pos + strlen($endtag);

        $php_code = substr($str, $start_pos, $end_pos - $start_pos);
        if( strtolower(substr($php_code, 0, 3)) == 'php' )
            $php_code = substr($php_code, 3);

        // before php code
        $part1 = substr($str, 0, $php_start);

        // here set the php output
        ob_start();
        eval($php_code);
        $output = ob_get_contents();
        ob_end_clean();

        // after php code
        $part2 = substr($str, $php_end, strlen($str));

        $str = $part1 . $output . $part2;
    }
    return $str;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取解析后的PHP文件 的相关文章

  • 服务器端文件验证在 Yii.2.0 中不起作用

    Is the FileValidatorYii2 中的类只支持客户端验证 我使用代码编写了文件上传系统 在模型中 public function rules return allAllowedFileType safe allAllowed
  • Laravel - 删除整个集合

    我有文章的图像 当我更新文章时 我想检查图像是否相同 如果不是 我想删除它们 但如果可能的话 我想删除整个集合而不进行其他查询 诸如此类就像我在下面的代码中一样 images gt delete 这是我的功能 images Media wh
  • 过滤 PHP 中所有类型的空格

    我知道有很多类型的空间 em 空间 en 空间 薄空间 不间断空间等 但是 我提到的所有这些都有 HTML 实体 至少 PHP 的 htmlentities 返回类似的内容 但是 那些没有 HTML 实体的空间怎么办 示例 示例 URL 不
  • 将 PHP 变量传递给 Jquery 而不刷新

    对于我缺乏 jquery 知识 我预先表示歉意 在我正在构建的这个网站中 向用户展示了许多代表植物的缩略图 单击缩略图时 将启动 jquery 弹出窗口 我希望能够做的是将一个包含植物 ID 的 php 变量传递给 jquery 弹出窗口以
  • 如何使用 PHP 更改文件的标题属性

    用户使用我的 PHP 应用程序上传 PDF 文件 我将它们存储在 S3 上 稍后 其他用户会查看这些文件 我会在他们的浏览器中 内联 显示这些文件 问题在于 PDF 的 标题 属性显示在通常显示网站标题的浏览器选项卡中 由于它是由原始上传的
  • 如何转换为在视图上使用 Yii CDataProvider?

    我正在尝试学习 Yii 并查看了 Yii 文档 但仍然没有真正理解 我仍然不知道如何在控制器和视图上使用 CDataProvider 来显示视图上可用的所有博客文章 任何人都可以根据以下内容提供建议或举例 我的 PostController
  • PHP中特殊字符的转换

    我已经尝试了很多功能 但我根本无法弄清楚这一点 无论如何 正确的方法 在称为描述的表单字段中 我可以期待各种字符 在将它们提交到数据库之前 需要将它们格式化为 HTML 实体 现在 我的代码 formdesc htmlentities PO
  • Oracle/PHP - ORA-00911 更新时的无效字符

    我正在运行一个 PHP 脚本 该脚本从 Oracle 数据库实例更新表 首先 我收到一个 JSON 对象 lot KLMHA17N9N00 requestor B10078 id FRESHLOT username B26696 passw
  • 在这个页面中,悬停不起作用,我不知道为什么,而且页脚也没有占用 100% 宽度,即使我已经给了它

    我的编码是否不正确 或者悬停和页脚有什么问题 我需要知道 php 邮件程序是正确的还是我有错误 我无法找到错误 因为邮件功能在本地服务器上不起作用
  • PHP 中的异步数据库/服务调用:Gearman 与 pthreads

    在我们的 LAMP 站点上 我们遇到一些服务必须多次调用数据库才能提取数据的问题 通常在 PHP 中完成此操作的方式 至少我的经验 是串行的 这显然是低效的 我们可以通过使用缓存和聚合一些查询来缓解一些低效率的问题 但在某些情况下我们仍然需
  • 如何在 Laravel 中编写联合查询?

    我正在使用 laravel 5 0 并且我有 mysql 查询 SELECT surat masuk id surat surat masuk nomor surat FROM surat masuk WHERE EXISTS SELECT
  • php在html页面中创建额外空间

    我是网络开发新手 我真的被这个愚蠢的问题困扰了 当我在 html 代码之前插入 php 代码时 如下所示 它在我的页面顶部创建了额外的空白空间 并将整个内容 推下 是否有可能以某种方式避免创建额外的空间 如果 php 代码位于 html 的
  • 从 php 对 Active Directory/ISA 进行身份验证 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个复杂的问题 而且由于我真的不知道从哪里开始而加剧 在过去的几年里 我开发了许多基于 php Web 的系统 当我构建它们时 我
  • PHP Netbeans:xdebug 在每个 include() 或 require() 上停止

    我刚刚发现使用 netbeans IDE 中集成的 xdebug 进行 PHP 调试 我认为这很棒 没有它我怎么生活 但有一个问题 如果我在代码深处设置了一个断点 我必须在到达断点之前多次按 继续 F5 因为脚本会在每个 include 和
  • 通过 PHP 使用 Eclipse BIRT 报表设计器

    我想在 php web 项目中使用 Birt Reports 因此我安装了推荐的 Java Bridge 和 BIRT Runtime 将 JavaBridgeTemplate621 war 和 birt war 移至我的 Tomcat 之
  • 如何获取本地主机系统的公共IP地址[重复]

    这个问题在这里已经有答案了 我已连接到局域网 我可以访问互联网 使用浏览器 我可以使用搜索 我的 IP 是什么 找到我的公共 IP 我想使用php获取公共IP 我正在我的中运行脚本localhostwamp服务器 I tried SERVE
  • 为 SimpleXMLElements 数组编写 foreach 循环

    我正在使用 PHP 5 中的 XPath 来解析 XML 文档 我遇到的问题是写一个foreach正确显示以下数组 XML 文档示例 值1 值2 xmlfile link to file xml xmlRaw file get conten
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • 从命令行运行 PHP 脚本

    如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本 我有一个phpinfo php从网络访问的文件显示German已安装 但是 如果我运行phpinfo php从命令行使用 php phpinfo php and g
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是

随机推荐

  • 如何向 graphql 中的输入参数添加默认值

    我有这种输入类型 我想向其中一个字段添加默认值 我想将 0 添加到 ExampleInput 内的值字段 type ExampleType value Int another String type Mutation example inp
  • 在dispatch_async中正确引用self

    如何在快速关闭中正确引用 self dispatch async dispatch get main queue self popViewControllerAnimated true 我收到错误 Cannot convert the ex
  • django-admin 中的模型描述

    django admin中是否可以在某个模型的列表显示页面上放置模型描述或描述 我说的是当你点击 django admin 主页上的模型名称链接并进入该模型的列表显示页面时 表格顶部将写有说明 就像是 该模型用于记录将通过我们的抓取获取的所
  • SVG 容器在 Safari 桌面中呈现错误的大小(在 Chrome/iOS 中正常)

    我以为 Safari 已经解决了这个问题 但它似乎仍然是一个问题 除非我做了一些明显错误的事情 我在对象标签内放置了一个 SVG 它被包裹在一个灵活的包含 DIV 中 例如设置为宽度 50 在调整大小时 容器高度在 Firefox Chro
  • JPMS支持模块版本吗?

    我以为JPMS不支持模块版本 然而 当我这样做时java list modules我有以下输出 java activation 9 java base 9 java compiler 9 java corba 9 java datatran
  • 使用 jenkins 执行 wsl.exe 返回 exit -1073740791

    我在一台具有 WSL 适用于 Linux 的 Windows 子系统 的 Windows 10 计算机上设置了 jenkins 例如 当我从终端运行简单命令 C Windows System32 wsl exe help 时 它工作正常 使
  • 删除 Shapely 多边形外部的 numpy 网格点

    我有一个 10 x 10 网格 我想删除形状多边形之外的点 import numpy as np from shapely geometry import Polygon Point from descartes import Polygo
  • 如何为 powershell 函数的描述属性添加值?

    我想填充我在 PROFILE 中创建的 Powershell 函数的 Description 属性 我想向 描述 属性添加一个值 例如 在个人配置文件中创建 这可能吗 目前 如果我检查我的功能描述 我发现没有填充任何内容 例如 Get Co
  • 应该匹配 RSpec 期望语法

    正确的使用格式是什么应该匹配器 https github com thoughtbot shoulda matchers和 RSpec 的新期望语法 http myronmars to n dev blog 2012 06 rspecs n
  • 使用 Firebase android 时如何向用户添加用户名?

    我目前开始在我的 Android 应用程序中使用 Firebase 并使用其 GitHub 上的示例来创建登录和注册活动 https github com firebase quickstart android https github c
  • 在 onDragStop 事件中获取 Material UI Slider 值

    我想触发一个事件onDragStop而不是onChange使用材质 UISlider在我的 React 应用程序中 以便事件触发次数更少 但是 那文档 https mui com material ui react slider表明onDr
  • 尝试使用 ItemsControl.AlternationIndex 显示列表中的行索引

    我有以下 XAML 旨在将行号放在左列中 但所有输出都是0
  • 根据父 ID 值将数组从一维转换为多维

    我有一个代表多维数据的一维对象数组 array array id gt 45 parent id gt null array id gt 200 parent id gt 45 array id gt 345 parent id gt 45
  • 密码强度检查库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以推荐一个 Java 库 其中包含适合在 Web 应用程序中执行服务器端密码强度检查的方法 理想情况下 检查器应该是 可配置 允
  • 如何在Python中子类化str

    我正在尝试对 str 对象进行子类化 并向其添加几个方法 我的主要目的是学习如何去做 我陷入困境的是 我是否应该在元类中对 string 进行子类化 并使用该元创建我的类 或者直接对 str 进行子类化 而且 我想我需要实施 new 不知何
  • 使用 NHibernate 和动态匿名对象在 GroupBy 查询中进行选择

    我的主要目标是创建一个动态组并在 NHibernate 中使用它 考虑这个非动态的例子works repository Collection
  • 使 React 组件作为 Widget 可用

    我有一个复杂的 React 应用程序 包括渲染某些组件的身份验证等 并且有一个特定的组件 一个日期选择器 我希望其他用户将其作为 Google 地图的小部件嵌入到他们的网站上 我已经成功地将其作为 iFrame 进行共享 但我想了解如何将其
  • 使用贪婪正则表达式忽略可选后缀

    我正在 NET 中对如下所示的字符串执行正则表达式匹配 1 Lists General Discussion Waffles Win 2 Lists General Discussion Waffles Win 2 000 3 Lists
  • 使用 php 脚本中的 rsync 同步本地和远程文件夹,无需输入密码

    如何在 php 脚本中使用 rsync 同步本地和远程文件夹而不提示输入密码 我已经设置了一个公钥来自动为我的用户登录远程服务器 所以从 cli 上运行没有任何问题 rsync r a v e ssh l user delete local
  • 获取解析后的PHP文件

    我试图在解析 PHP 文件后获取其内容 然后将其存储在变量中 除了这个例子之外 我无法通过谷歌获得任何有用的信息 ob start include file content ob get clean 但这会以纯文本形式返回内容 即 标签仍然