保存 .php 文件并保存包含内容(可能)

2024-03-27

设置:

我有一个标准 .php 文件 (index.php),其中包含两个包含内容,一个用于页眉 (header.php),一个用于页脚 (footer.php)。 index.php 文件如下所示:

索引.php

<?php
include header.php;
?>

<h2>Hello</h2>
<p class="editable">Lorem ipsum dolar doo dah day</p>

<?php
include footer.php;
?>

header.php 像这样:

<html>
<head>
<title>This is my page</title>
</head>
<body>
<h1 class="editable">My Website rocks</h1>

和页脚 .php 像这样:

<p>The end of my page</p>
</body>

我正在编写一个 PHP 脚本,允许您编辑页面上的任何“.editable”项目。我的问题是这些可编辑区域可能出现在任何包含的文件以及index.php 的主体中。

我的 php 代码正在使用 file_get_contents() 获取 index.php 文件;效果很好。我还可以编辑和保存 index.php 中的任何“.editable”区域。

我的问题:

我一直无法找到一种方法来“查找”包含内容并解析“.editable”区域的内容。我正在寻找有关如何处理 index.php 中所有包含内容的建议 - 检查它们是否有可编辑区域。我需要使用正则表达式来查找“include *.php”吗?我什至不知道从哪里开始......

对于那些可能希望查看我的 PHP 代码的人。我正在使用 PHP 类:[链接文本][1],它允许我编写如下代码:

// load the class and file
$html = new simple_html_dom();
$html->load_file("index.php");

// find the first editable area and change its content to "edited"  
$html->find('*[class*=editable]', 0)->innertext = "Edited";

// save the file
$html->save(index.php);

[1]: http://simplehtmldom.sourceforge.net/manual_api.htm http://simplehtmldom.sourceforge.net/manual_api.htm 简单的 php dom 解析器


UPDATE

我一直在尝试使用正则表达式来尝试匹配包含的内容。我对正则表达式很垃圾,但我想我已经很接近了。这是我到目前为止所拥有的:

$findinclude = '/(?:include|include_once|require|require_once)\s*(?:[a-z]|"|\(|\)|\'|_|\.|\s|\/)*(?=(?:[^\<\?]|[^\?\>])*\?>)/i';

尽管在使用 preg_match 时它似乎返回奇数 ) 和 ' ,但它匹配得相当好。我试图在正则表达式中添加一些安全性,以确保它只在 php 标签之间匹配 - 这部分: (?=(?:[^\])*\?>) - 但它只返回页面上的第一个包含内容。关于如何改进这个正则表达式有什么建议吗? (我已经花了大约6个小时)


您正在创建什么类型的系统?

如果它要被公众使用,你就会面临严重的安全问题。人们可以在提供的内容中包含他们自己的 PHP 代码或 JavaScript。

这根本不是创建动态内容的标准方法。对于大多数目的,您需要创建一个模板,然后允许用户将其更改保存到数据库中。然后,您可以将数据库中的信息填写到模板中以供显示。

如果您允许他们包含 HTML,请使用类似的内容html净化器 http://htmlpurifier.org/要清理它,请使用准备好的语句将数据插入数据库PDO http://php.net/manual/en/book.pdo.php。我相信这里的人们会很乐意回答您有关使用数据库的任何问题。

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

保存 .php 文件并保存包含内容(可能) 的相关文章

  • 如何上传图像代码并将路径保存到mysql数据库中

    如何编写代码上传图像并将路径保存到mysql数据库中 我已经尝试过 但没有一个有效 一种方法是上传图像并将其存储在服务器上的文件夹中 并将名称保存到 mysql 数据库中 这是一个例子 首先我们将创建一个用于上传的表单 文件 html Up
  • 如何匹配和删除包含特定字符串的任何行?

    我的网站上有一个巨大的 URL 目录列表 例子 folder folder2 folder3 page htm folder folder2 folder3 page2 htm folder folder2 folder3 page3 ht
  • 使用 htmlpurifier 将具有 of 类的元素列入白名单

    我只想仅当 span 元素在 htmlpurifier 中具有特定类时才允许它 有谁知道该怎么做 现在我有 config gt set HTML Allowed a href p ol li ul img src blockquote em
  • 如何正确转义反斜杠以匹配单引号和双引号 PHP 正则表达式模式中的文字反斜杠

    为了匹配字面上的反斜杠 很多人和PHP 手册 http www php net manual en regexp reference escape php说 总是三重转义吧 就像这样 Note 单引号和双引号 PHP 字符串具有反斜杠的特殊
  • PHP 特性 - 定义通用常量

    定义可由命名空间内的多个类使用的常量的最佳方法是什么 我试图避免过多的继承 因此扩展基类不是理想的解决方案 并且我正在努力寻找使用特征的良好解决方案 这在 PHP 5 4 中是否可行 或者应该采取不同的方法 我有以下情况 trait Bas
  • PHP Imagick - “-量化透明”等效项

    是否有 PHP Imagick 等效项 quantize transparent 量化透明使用示例 http www imagemagick org Usage quantize color trans注意 在页面中搜索 量化透明 Quan
  • dompdf 在文档末尾插入空白页

    我正在使用 dompdf 0 6 0 生成 pdf 文档 并且遇到一个奇怪的问题 即最后创建了一个空白页面 我的 简化的 html
  • 如何在 Logstash 中将一个事件的字段引用到另一个事件?

    我目前正在处理日志 其中一些内容如下所示 00 19 59 771 07120 evtThread TRC gt Cem lt Core1 CALL STATE 00 20 00 199 05768 BCMApplicationThread
  • 撇号 php 问题

    我正在做一项涉及喊话箱的学校作业 一个很棒的教程 它使用 jquery ajax mysql 和 php 现在我遇到了以下句子的一个小问题 result li strong row user strong img src alt row m
  • 根据相同的 XML 模式 (XSD) 加速一批 XML 文件的 XML 模式验证

    我想加快根据同一个 XML 模式 XSD 验证一批 XML 文件的过程 唯一的限制是我处于 PHP 环境中 我当前的问题是 我想要验证的模式包括 2755 行的相当复杂的 xhtml 模式 http www w3 org 2002 08 x
  • 定义我自己的 BASE_PATH 与 set_include_path?

    我了解了函数set include path 一直以来 我在config php文件中定义了一个常量 define BASE PATH var www mywebsite public html 在所有后续的 php 文件中 我会像这样包含
  • PHP使用正则表达式查找字符串

    我已经阅读了多个有关正则表达式的教程 但它只是不会留在我的脑海中 我永远无法让我的模式发挥作用 希望有人能帮忙 我有一个 php 变量 content 我需要在其中找到如下所示的特定模式 图库 名称 文件夹 我想搜索 starting wi
  • 使用 Perl 计算字符串中的连续字符数

    我有一个包含多个连续字符序列的字符串 例如 aaabbcccdddd 我想将其表示为 a3b2c3d4 到目前为止 我已经想出了这个 usr bin perl str aaabbcccdddd str s 1 1 g print str n
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • 在 PHP 中设置通知的 FCM 通道 ID

    我正在尝试使用 PHP 向 Android 设备发送 FCM 通知 我的代码适用于 Android O 之前的设备 在Android O中 我们还需要在请求中设置通道ID来接收通知 我不知道该怎么做 我已在应用程序中完成了必要的设置 并使用
  • 在仅包含键的字符串的嵌套数组中查找值

    我有一个数组 其中包含一些设置 基本上如下所示 defaults array variable gt value thearray gt array foo gt bar myvar gt array morevars gt moreval
  • 在订单项目视图中显示自定义产品数据

    我在添加到购物车时遇到问题 我有一个具有不同定制条件的产品可供选择 当客户选择特定选项时 它添加到购物车 当客户选择另一种选择并添加时 它显示为购物车中的第二件商品 这没关系 但付款后 订单在第 1 项和第 2 项下均显示自定义选项 但没有
  • Mysqli 准备好的语句从数组动态构建 INSERT 查询

    我正在尝试用 PHP 而不是 OOP 开发我的函数 以创建 CRUD 目标是对任何表使用相同的函数 但我已经陷入了第一个表中 不知道该怎么做 我现在拥有的 function to avoid injections function vali
  • 是否需要使用fetch_object或fetch_array?

    我最近发现我可以打印数据库中的结果而不使用mysqli fetch object功能 例如 假设我们有一个简单的 sql select 语句 可以使用如下所示的语句来执行 conn mysqli connect localhost root
  • 使用 PHP 将表单数据发送/发布到 URL [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个通过 POST 提交的表单 提交表单后我捕获变量 如何连接表单数据 然后将其 POST 到 url 然后重新定向到感谢页面 这不是确

随机推荐

  • 在C++中,向量函数push_back会增加空数组的大小吗?

    快问 假设我声明了一个大小为 20 的向量 然后我想使用 push back 添加一些整数 vector
  • 使用 RVM 安装 Ruby 2.0.0,配置错误

    我目前正在 Ruby 1 9 3p134 上运行 并尝试使用 RVM 安装 Ruby 2 0 0 但是我不断遇到以下错误 我在 OSX 10 7 5 上运行 运行 env LDFLAGS L opt sm pkg active lib 时出
  • 将整个 *ui 文件加载到另一个 *.ui 文件的框架/小部件中

    我正在为家庭项目开发一个小型用户界面 我使用 QT Designer 创建了一个 ui 文件 这是我的主窗口 带有一些导航按钮 标签等 现在 当我单击导航按钮时 我正在努力在主窗口的框架或小部件中加载另一个 ui 例如内容 我正在使用 py
  • jhipster细粒度授权,删除基于ROLE的授权

    我一直在寻找如何删除基于角色的授权并将其替换为细粒度授权 我所说的细粒是指 所有方法都有一个 PreAuthorize isAuthorize GETCLIENT 或直接 IsAuthorize GETCLIENT 如果用户在授权列表中有G
  • 删除孤立行的优雅方法?

    我有一个表 其中包含大量包含客户 ID 的历史记录条目 有一个单独的客户表 有时 某些客户条目会被删除 有没有一种简单的方法 无需循环遍历每个历史记录条目 即可删除历史表中客户 ID 不再存在的所有行 因为客户行已被删除 delete fr
  • 在 bevy-engine 中处理许多精灵的最快方法

    我正在使用 Rust 和 BevyEngine 构建元胞自动机可视化 游戏 目前 在初始化世界时 我为每个单元格生成一个精灵 在每次更新中 精灵的颜色都会根据它是活着还是死了而改变 for grid pos mut color mat in
  • Ember CLI 实时重新加载不工作

    我见过其他类似的问题here https stackoverflow com questions 25439380 live reload not working with ember cli and here https stackove
  • 加强托管线程和操作系统线程之间的关系(CUDA 用例)

    Problem 我正在尝试创建一个与 net 良好集成的 CUDA 应用程序 设计目标是拥有多个可以从托管代码调用的 CUDA 函数 数据还应该能够在函数调用之间保留在设备上 以便可以将其传递给多个 CUDA 函数 重要的是 每个单独的数据
  • 导入某种语言字母表中的所有字母

    是否可以将某种语言 土耳其语 波兰语 俄语等 的字母表中所有可能的字母 小写 大写等 导入为 python 列表 有特定的模块可以做到这一点吗 你的问题与一个更大的问题有关 某些语言的字母表如何存储在计算机中 它们如何表示 以及 最终 如何
  • 如何仅在服务器调用 PHP 脚本时运行它

    我有一个 PHP 脚本 只有在服务器本身调用它时才会运行 像这样 form submit 运行 AJAX 请求来 POST 表单数据 我不想开发一个哈希解码和编码系统来证明请求是否被允许 是否可以简单地检查 服务器是否运行脚本 或客户端是否
  • 特质不就是简单的组合吗?

    我正在阅读一篇有关 PHP 5 4 0 中的新功能的文章 最值得期待的之一是Traits http php net traits 阅读这些内容Traits 看看它们的全部内容 对我来说它们只是编译器辅助的复制粘贴 一种语言提供了使用组合的方
  • D3.js V4 和 Angular 不会发生节点转换

    我在用角度打字稿 with D3 js V 4 12我特别使用整齐的径向树 https bl ocks org mbostock 4063550用于代表产品 初始步骤 随着ng cli 我安装了npm install save d3并创建了
  • SharedKeyCredential 不是构造函数。 Azure存储反应应用程序

    我正在尝试使用以下代码将 blockblob 上传到反应应用程序中的 Azure 存储 但是 我收到以下错误 类型错误 SharedKeyCredential 不是构造函数 有任何想法吗 azure 电子邮件受保护 cdn cgi l em
  • MVC 捆绑包和 IIS 虚拟目录(URL 重写)

    我在 IIS 服务器虚拟目录上托管多个应用程序 并使用 URL 重写来简化它们 所有图像和其他资产都是这样手动编写的 path to my content 有正确的输出 path to my content 但捆绑路径如 client js
  • 金钱图能很好地流动吗?

    sql 数据类型 Money 是否映射到 C float 不 它映射到decimal 如果该列允许 null 则它映射到Nullable
  • 将 ASP.NET 应用程序迁移到 IIS7 时出现注册表访问错误

    我正在运行 Windows 7 64 位和 iis7 我正在尝试在 XP 上设置一个以前在 iis6 中的 Web 应用程序 它给了我下面的错误 我已将网络服务用户添加到性能监视器用户组中 但无济于事 对注册表项 Global 的访问是 否
  • 如何通过Java Validator消息传递参数?

    目前 我有类似的东西 NotNull message err required Size min 1 message err required private String firstName In my messages properti
  • bean 验证获取验证组

    是否可以获取调用验证方法的验证器中的组 我有多个组 创建 更新 删除 它们大多数会导致对一个 bean 进行类似的验证 我不想提供多个几乎相同的验证器 并创建实用程序函数来外部化相同的验证代码 我更愿意有一个验证器来处理有关调用验证的组的验
  • graphviz 绘图太宽

    我正在做练习 在 jupyter 笔记本中使用 graphviz 创建决策树 然而 决策树过于宽泛 这是代码 from sklearn tree import export graphviz export graphviz tree out
  • 保存 .php 文件并保存包含内容(可能)

    设置 我有一个标准 php 文件 index php 其中包含两个包含内容 一个用于页眉 header php 一个用于页脚 footer php index php 文件如下所示 索引 php h2 Hello h2 p class ed