【发布时间】:2013-05-23 11:44:47
【问题描述】:
我正在尝试从上传的文本文件中获取前 1,000 个字符。我在做:
if($file->simpletype=="document"){
//get first 1000 chars in here
$snippet = file_get_contents($_FILES['upload']['tmp_name'], false, null, -1, 1000);
file_put_contents('/var/www/my_logs/log.log', $snippet);
$file->snippet = $snippet;
}
这适用于 .txt 文件,我可以使用 gedit 打开和读取 log.log 文件。但是,对于 .doc、.docx、.odt 和 .pdf 文件,file_get_contents() 会返回诸如此类的乱码:PK\00\00\00\
我尝试了在 stackoverflow 上找到的另一种解决方案:
function file_get_contents_utf8() {
$content = file_get_contents($_FILES['upload']['tmp_name'], false, null, -1, 1000);
return mb_convert_encoding($content, 'UTF-8',
mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
}
但我得到了相同的结果。有任何想法吗?谢谢!
【问题讨论】:
-
你期待什么?这些是二进制文件。
-
如果您尝试在文本编辑器中打开完整文件,您会遇到同样的问题。它们不是开始的文本文件,所以如果你只取前 1000 行,就不会突然看起来像它