data-uri/twig-extension

数据URI扩展,用于将数据转换为数据URI URL方案(RFC 2397)

1.0.1 2016-05-11 18:07 UTC

This package is auto-updated.

Last update: 2024-08-25 06:08:30 UTC


README

Build Status

这是一个用于 Twig 模板引擎 的扩展

此扩展使得使用在 RFC 2397 中指定的dataURI方案变得容易。

请注意,正如RFC所述,它不能始终用作传统URI源头的替代品。DataURI方案长度有限,无法处理所有文件/资源。

##安装

此扩展需要PHP 5.3.2。

下载并安装composer,然后在您的 composer.json 中添加以下内容

{
    "require": {
        "data-uri/twig-extension": "dev-master"
    }
}

然后,在您的twig环境中注册此扩展

$twig->addExtension(new \DataURI\TwigExtension());

用法

DataURI扩展与 流资源标量值二进制字符串 或文件的 路径名 一起使用。

路径名

$twig->render('<img title="hello" src="{{ image | dataUri }}" />', array('image' => '/path/to/image.jpg'));

将渲染类似的内容

<img title="hello" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAB...SUhEU==" />

资源

$file = fopen('/path/to/image.jpg', 'r');
$twig->render('<img title="hello" src="{{ image | dataUri }}" />', array('image' => $file));

二进制字符串

$file = file_get_contents('/path/to/image.jpg');
$twig->render('<img title="hello" src="{{ image | dataUri(true, \'image/jpeg\') }}" />', array('image' => $file));

选项

DataUri可以接受最多3个参数

dataUri(strictMode, mimeType, parameters)

strictMode 默认值为 truemimeType 默认值为 null(当传递路径名时自动检测)parameters 是键/值参数数组

###解锁数据长度限制

如上所述,RFC对输出最大长度非常严格。默认情况下,扩展完全符合RFC,如果在渲染数据太大时,扩展将记录警告,但您可以通过过滤器的第一个选项解锁限制

$twig->render('<img title="hello" src="{{ image | dataUri(false) }}" />', array('image' => '/path/to/BIGPICTURE.jpg'));

注意:如果显示错误,警告消息将导致Twig抛出Twig_Error_Runtime异常。

示例MIME类型

$file = fopen('bunny.png', 'r');
$twig->render("{{ file | dataUri(false, 'image/png') }}", array('file' => $file));

将渲染类似的内容

data:image/png;base64,oAYTUKHJKPPZ...F873=/SO

示例参数

$json = '{"Hello":"World !"}';
$twig->render( '{{ json | dataUri(false, "application/json", {"charset":"utf-8"}) }}', array('json' => $json));

将渲染

data:application/json;charset=utf-8,%7B%22Hello%22%3A%22World%20%21%22%7D

许可协议

此扩展在MIT许可协议下发布