首页 / 知识
关于编码:PHP包含输出未知字符的函数
2023-04-14 01:46:00

PHP Include function outputting unknown charp>当使用php include函数时,include被成功执行,但是在输出include的输出之前它也输出一个char,char是十六进制值3F而且我不知道它来自哪里,虽然它似乎每个包含都会发生。 / P>
p>起初我认为它是文件编码,但这似乎不是问题。我创建了一个测试用例来演示它:(强>链接不再工作/强>)a href ="http://driveefficiently.com/testinclude.php"> http://driveefficiently.com/testinclude.php/ a>此文件仅包含:/ p> 预>代码>?包括("include.inc"); ?> p>和include.inc仅包含:/ p> 预>代码>? echo("你好,世界"); ?> 然而,输出是:em>"?hello,world"/ em>在哪里?是一个具有随机值的char。正是这个价值我不知道它的起源,它有时会搞砸我的网站。 / P> p>关于这可能来自哪里的任何想法?起初我以为它可能与文件编码有关,但我不认为这是一个问题./p> p>您所看到的是UTF-8字节顺序标记:/ p> BLOCKQUOTE> p> a href ="http://en.wikipedia.org/wiki/Byte_Order_Mark"rel ="noreferrer">维基百科上的字节顺序标记/ a> / p> p> PHP不明白这些字符应该被"隐藏"并将它们发送到浏览器,就好像它们是普通字符一样。要摆脱它们,您需要使用"正确的"文本编辑器打开文件,该编辑器允许您将文件保存为UTF-8而不使用前导BOM ./p> p> a href ="http://juicystudio.com/article/utf-byte-order-mark.php"rel ="noreferrer">你可以在这里阅读更多关于这个问题的信息/ a> / p> p>您的Web服务器(或文本编辑器)显然在文档中包含一个href ="http://en.wikipedia.org/wiki/Byte_order_mark"> BOM / a>。我没有在浏览器中看到流氓角色,除非我将网站的编码明确设置为Latin-1。然后,我看到两个(!)UTF-8 BOMs./p> p> / EDIT:由于存在em> two / em> BOM,我得出结论,编辑器实际上是在文件开头包含了BOM。你用什么编辑器?如果您使用Visual Studio,则必须在"文件"菜单中说"另存为...",然后选择"使用编码保存..."按钮。在那里,选择"没有BOM的UTF-8"或类似的东西./p> p>它没有显示在Firefox或IE中的渲染页面上,但是当您在IE / p中查看源时,您可以看到有趣的角色> p> img src ="/d/file/2023041401/3jeolfklag015.webp"alt ="在此处输入图像说明"> / p> 这是在Linux机器上吗?你能找到并用vim或sed替换,看看你是否能以这种方式摆脱3F? / P> p>如果它在Windows上,请尝试使用记事本打开include.inc以查看有趣的字符是否可见并且可以删除./p> 我也很想知道如果你从包中复制代码然后自己运行它会发生什么./p> BLOCKQUOTE> 我也很想知道什么 如果您复制代码,则会发生 包含并自行运行它./p> / BLOCKQUOTE> 马克:这是在共享托管解决方案上,所以我无法获得对该文件的shell访问权限。但是,正如你可以看到href ="http://driveefficiently.com/include.inc">这里/ a>,没有不应该存在的字符,并且运行与脚本相同的文件不会产生这个炭。 (共享托管公司一直提供帮助,不断告诉我这是一个浏览器问题)./ p> p>字符3F实际上em>是/ em>问号,它不仅仅显示为one./p> 我得到了与托马斯相同的结果,没有出现问号./p> p>从理论上讲,它可能是Web代理的一些问题,但我倾向于怀疑你的PHP标记中有一个流浪的问号......也许你现在已经修复了所以我们没有看到问题./p> p>我在你链接的页面上看到代码> hello,world / code>。没问题,我可以看到... / p> 我正在使用Firefox 3.0.1和Windows XP。你在运行什么浏览器/操作系统?也许这可能是问题./p> |
最新内容
相关内容
程序执行linux命令?
程序执行linux命令?,系统,工作,地址,环境,信息,管理,命令,文件,目录,程序,linux下如何运行可执行文件1、先将终端所在路径切换到python脚本文linux执行2个命令?
linux执行2个命令?,工作,系统,基础,命令,基础知识,信息,管理,在线,概念,第一,Linux多命令顺序执行通过链接,多个命令可以顺序执行或嵌套执行;通linux命令批量执行?
linux命令批量执行?,系统,代码,工作,周期性,数据,定期,环境,命令,文件,脚本,linux如何对多个文件执行相同命令1、一次执行多个命令可以将多个linux二进制执行命令?
linux二进制执行命令?,系统,工作,情况,代码,信息,位置,地址,命令,文件,目录,Linux系统常用操作命令有哪些1、linux常用命令: pwd命令 该命令linux执行退出命令?
linux执行退出命令?,档案,状态,工作,命令,信息,地址,电脑,系统,编辑,文件,linux保存并退出的命令(linux常用命令保存退出)linux保存并退出命令linux命令输出加时间?
linux命令输出加时间?,时间,系统,名称,设备,命令,信息,管理,标准,数字,百度,linux中,怎么通过shell语句获取当前日期,输出格式要求20111224._linux命令日志输出?
linux命令日志输出?,系统,状态,命令,情况,对比,标准,实时,服务,下来,数据,怎么导出linux系统日志.1、首先进入系统日志,所有服务的登录的文件或linux中后台执行命令?
linux中后台执行命令?,系统,状态,暂停,灵活,电脑,网络,服务,第一,名字,命令,linux以后台服务怎么停止运行若是es的前台运行,则用ctrl + c来停止linux命令输出截取?
linux命令输出截取?,位置,网上,信息,命令,字符串,字符,左边,日志,中间,之间,Linux字符串截取几种方法sed -n : 随意选择需要查看的行 sed命令是linux常用的执行命令?
linux常用的执行命令?,系统,地址,工作,基础,标准,命令,工具,环境,信息,代码,Linux下最常用的Shell命令的介绍Linux中的shell有多种类型,其中最linux命令行大字符?
linux命令行大字符?,工作,地址,系统,信息,管理,第一,发行,在线,最新,标准,linux常用的命令有哪些linux系统常用操作命令如下:ls:全拼list,功能是linux执行线程命令?
linux执行线程命令?,系统,工作,线程,软件,服务,管理,信息,环境,名称,命令,linux下线程属性常用操作有哪些1、linux系统常用操作命令linux系统