0

アップロードされたテキスト ファイルから最初の 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));
}

しかし、私は同じ結果を得ます。何か案は?ありがとう!

4

2 に答える 2

2

プレーン テキスト形式を使用しないファイルからテキストを読み取ろうとしています。

doc/docx ファイルを読み取るには、 PHPDocxhttp://phpword.codeplex.comなどのツールを使用する必要があります。

PDF の解析については、この質問への回答を参照してください。

于 2013-05-23T11:49:19.000 に答える
1

これは、非プレーン テキスト ファイルでは機能しません。最初に doc/pdf/odt ドキュメントからプレーン テキストを取得する必要があり、それからそのテキストを操作できます。メモ帳などの単純なテキスト エディターでこれらのドキュメントを開き、その内容を確認するだけです。

Word 文書の場合は、http://phpword.codeplex.com/から始めることができます。また、これらのファイルからコンテンツを抽出するために使用できる他のライブラリも探してください。

于 2013-05-23T11:48:52.790 に答える