看完这篇文章,你一定忘不掉htmlentities的用法

背景

今天有个需求,就是一个PHP开发的网址中,有一个页面可以提供给用户修改已经存在的PHP文件中的代码,并POST到服务器上保存。
每次将读出的内容输出到屏幕上的时候,都是空白的。这个问题困扰了我很久,如果你遇到的不是类似的问题,或者类似的反馈结果,这篇文章可能对你的帮助很小。

解决方法

这里介绍的是背景中的POST部分,读代码部分相同。
首先是接受POST动作内的代码是,code为POST过来用户修改的代码。

echo $_POST['code'];

从文件中读出的内容到文件上是注释,这是应为php并不是html代码,需要转换一下,添加htmlentities函数

添加后,页面的源码是这个样子了

在控制台看是正常的,页面上却不是

需要添加code标签,添加后

<pre><code><?php echo htmlentities($_POST['code']); ?></code></pre>

顺便把读文件部分的核心代码页放上吧

<pre class="hljs"><code class="php"><?php $file = "sys/func.php"; echo htmlentities(file_get_contents($file)); ?></code></pre>

使用PHP读取PHP文件并输出到屏幕上的更多相关文章

  1. 将ASCII码位于32~126的95个字符输出到屏幕上,为了美观

    //将ASCII码位于32~126的95个字符输出到屏幕上,为了美观.要求小于100的码,前面加一个0,每八个转行class shijixing{ public static void main(St ...

  2. FileReader实现读取文件内容并输出到屏幕上

    FileReader与FileInputStream都是从文件读数据,而前者一次读一个字符,后者一次读一个字节(在Unicode编码环境下1个字符=2个字节) package com.janson.d ...

  3. FileInputStream实现读取文件内容并输出到屏幕上

    java输入输出流是站在程序的角度来说的.从文件中读取数据用输入流,向文件中写数据用输出流. package com.janson.day20180827; import java.io.FileIn ...

  4. c++ 读取txt文件并输出到控制台

    代码如下: #include "stdafx.h" #include<iostream> #include<fstream> #include<cst ...

  5. 接收键盘输入的字符串,用FileWirter类将字符串写入文件,用FileReader类读出文件内容显示在屏幕上

    public class SY63 { public static void main(String[] args) throws Exception { System.out.print(" ...

  6. Android studio 读取properties文件

    System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath( ...

  7. 第一节:python读取excel文件

    写在前面: (1)Excel中数字格式int(1),读出的是float(1.0)类型,导致传参时造成不同,强制转换时,int(str(1.0))在2.7版本又会报错ValueError: invali ...

  8. Linux 命令——tee 重定向到文件并打印到屏幕

    需求: 源于我一个业务实现,需要通过shell脚本去调Java程序,并且能够拿到Java里面的返回值. 思路: 众所周知,通过shell调用Java,肯定是通过 Java -jar xxx.jar 命 ...

  9. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

随机推荐

  1. kafka 名词解释(四)

    为什么要了解这些名词的解释呢?因为在学一个新的知识或者领域的时候,我们需要知道它所定义的概念和名词意思,因为只有这样我们才能理解和掌握这个新的知识点,才能更加系统的掌握这个技术. 一.名词解释 1.b ...

  2. 【LOJ】#3098. 「SNOI2019」纸牌

    LOJ#3098. 「SNOI2019」纸牌 显然选三个以上的连续牌可以把他们拆分成三个三张相等的 于是可以压\((j,k)\)为有\(j\)个连续两个的,有\(k\)个连续一个的 如果当前有\(i\ ...

  3. Git在IDEA工具中快捷拉取代码

    在拥有GitLab账号之后, 进入IDEA中,点击vcs菜单-->Checkout from Version Control-->Git 随后会出现一个弹框,输入git上的项目地址点击CL ...

  4. (十二)mybatis 查询缓存

    目录 什么是查询缓存 图解查询缓存 一级缓存 二级缓存 禁用二级缓存 刷新缓存 二级缓存应用场景 二级缓存局限性 什么是查询缓存 mybatis 在查询数据的时候,会将数据存储起来,下次再次查询相同的 ...

  5. Escape(多记一个方向状态的BFS)迷宫逃脱

    题意:https://www.nitacm.com/problem_show.php?pid=2266 vis记[x][y][dir]三个状态就行. 引用:https://blog.csdn.net/ ...

  6. S02_CH01_Hello World实验

    S02_CH01_Hello World实验 ZYNQ是一款SOC芯片,在前面第一季的学习当中,我们只是粗略的学习了ZYNQ的PL部分,对于ZYNQ最突出的功能,其内部的双核Cortex-A9内核并未 ...

  7. C语言存30位数字长的十进制方法

    题目:将一个长度最多为30位数字的十进制非负整数转换为二进制数输出. 首先: 1,30位数字的十进制,并没有一个数据类型可以存下30位的整数类型数字,所以考虑用字符串存储这个数据,遍历这个字符串,每个 ...

  8. C++string类字符串学习

    1.逆转字符串 第一种,使用algorithm中reverse函数. #include <algorithm> #include <string> #include <i ...

  9. vsCode设置代码片段

    输入vue.json { "Print to console": { "prefix": "vv", "body": [ ...

  10. PLSQL导出表结构和数据的三种方式

    1.导出表结构和数据方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出的 ...