file_get_contents
の5番目のパラメータを使用します
$s = file_get_contents('file', false, null, 0, 200);
これは動作しますが残念なことにPHPのdoes not offer native Unicode supportは256文字セットであり、ではなく、はマルチバイト文字で正しく動作します。
ユニコード
ユニコード特定の文字数を読み出すためには、あなたは、このようなintlやmbstringとしてPHP拡張モジュールを使用して、独自の機能を実装する必要があります。例えば以下のように、UTF-8の最大数を受け入れるfread
のバージョンが文字を実現することができる。
function utf8_fread($handle, $length = null) {
if ($length > 0) {
$string = fread($handle, $length * 4);
return $string ? mb_substr($string, 0, $length) : false;
}
return fread($handle);
}
$length
が正の場合、関数はそののUTF-8文字列の最大バイト数を読み出し(UTF-8文字は1〜4個の8ビットバイトで表されます)、mb_substr
を使用して最初の$length
マルチバイト文字を抽出します。それ以外の場合、関数はファイル全体を読み取ります。
file_get_contents
のUTF-8バージョンでは、同様の方法で実装できます
function utf8_file_get_contents(...$args) {
if (!empty($args[4])) {
$maxlen = $args[4];
$args[4] *= 4;
$string = call_user_func_array('file_get_contents', $args);
return $string ? mb_substr($string, 0, $maxlen) : false;
}
return call_user_func_array('file_get_contents', $args);
}
はあなたがPHPで 'substr'機能を使用することができます。 –
文字列の最初の200文字を取得したいですか? – Mohammad