Php 为什么file_get_contents()没有从CSV文件读取某些数据
我有一个PHPV5.6脚本,它读取一个上传的CSV文件,其中包含几行和几列纯文本,其中一个单元格包含JavaScript代码。这是我在执行Php 为什么file_get_contents()没有从CSV文件读取某些数据,php,Php,我有一个PHPV5.6脚本,它读取一个上传的CSV文件,其中包含几行和几列纯文本,其中一个单元格包含JavaScript代码。这是我在执行cat test.csv时从Ubuntu18.04 bash shell中获得的输出 First Name,Last Name Jane,Doe John,<script>alert(‘test’);</script> 我阅读了PHP手册中关于file\u get\u contents(),但是没有提到在从()读取的文件中不允许使用标
cat test.csv
时从Ubuntu18.04 bash shell中获得的输出
First Name,Last Name
Jane,Doe
John,<script>alert(‘test’);</script>
我阅读了PHP手册中关于file\u get\u contents()
,但是没有提到在从()读取的文件中不允许使用标记。有一个选项可以使用上下文
,但我不认为有任何选项可以解决这个问题
可能是一个
php.ini
设置…?:/ 如果要在浏览器中查看结果,则应将内容输出为纯文本,并使用适当的字符集,因为test
(或Yikes
)周围的引号不是ASCII字符
header('Content-Type: text/plain; charset=gb18030');
var_dump($contents2);
我认为这是代码之外的东西导致了你的问题。您应该发布整个相关代码,以便我们能够准确地看到您是如何使用它的。@johncode我编辑了我的问题,以包含更多相关的代码。
但没有提到文件中不允许使用标记。
允许使用标记,但如果您回显它们,警报('test')代码>到HTML页面,它们将成为源代码的一部分。。。你不会看到的。尝试htmlentities($contents2)
而不是var\u dump($contents2)
,也不要使用自己的fgetcsv
函数,PHP有一些非常适合读取CSV文件的功能。@ArtisticPhoenix谢谢!你的评论解决了问题。此外,增加我困惑的一个相关问题是,回音JS在显示的网页的[F12]
中产生JS语法错误,因为撇号是非ASCII U+2018
(')和非ASCII U+2019
('),而不是ASCII U+27
('),即警报('test')代码>而不是警报(“测试”)代码>.kool,很高兴我能帮上忙
header('Content-Type: text/plain; charset=gb18030');
var_dump($contents2);