gh640/sjis-stream-filter

Shift-JIS 编码的流过滤器。

1.0.0-beta1 2017-09-03 13:40 UTC

This package is auto-updated.

Last update: 2024-08-29 04:20:05 UTC


README

提供2个简单的PHP流过滤器用于Shift-JIS编码。

此包中提供了2个过滤器。

  • gh640\SjisStreamFilter\Filter\SjisToUtf8Filter
  • gh640\SjisStreamFilter\Filter\Utf8ToSjisFilter

安装

您可以使用 composer 命令安装此包。

$ composer require gh640/sjis-stream-filter:1.0.0-alpha2

用法

以下流过滤器类可以直接通过 stream_filter_register() 使用。

  • gh640\SjisStreamFilter\Filter\SjisToUtf8Filter
  • gh640\SjisStreamFilter\Filter\Utf8ToSjisFilter
<?php

// Register the sjis-to-utf8 filter.
$filtername = 'sjis_to_utf8_filter';
stream_filter_register($filtername, '\gh640\SjisStreamFilter\Filter\SjisToUtf8Filter');

// Use the filter when reading a sjis-encoded file.
$fp = fopen('a-file-encoded-with-sjis.txt', 'r');
stream_filter_append($fp, $filtername);
while (!feof($fp)) {
  $line = fgets($fp);
  print $line;
}
fclose($fp);

?>

此外,还有一个管理类 SjisFilterManager,它允许轻松使用过滤器。

<?php

use gh640\SjisStreamFilter\Manager\SjisFilterManager;

// Register the sjis-to-utf8 filter.
$filter_manager = new SjisFilterManager();

$filtername = $filter_manager->register(SjisFilterManager::FILTER_SJIS_TO_UTF8);

// Read a file encoded with sjis.
$fp = fopen('a-file-encoded-with-sjis.txt', 'r');
stream_filter_append($fp, $filtername);
while (!feof($fp)) {
  $line = fgets($fp);
  print $line;
}
fclose($fp);

// Register the utf8-to-sjis filter.
$filtername = $filter_manager->register(SjisFilterManager::FILTER_UTF8_TO_SJIS);

// Write a file with sjis encoding using php://filter.
$content = file_get_contents('utf8.txt');
file_put_contents("php://filter/${filtername}/resource=sjis.txt", $content);

?>

您可以通过将第二个参数传递给 SjisFilterManager::register() 来更改过滤器名称。

<?php

public function register($type, $filtername = NULL);

?>

许可证

MIT许可证下授权。