data-uri / twig-extension
数据URI扩展,用于将数据转换为数据URI URL方案(RFC 2397)
1.0.1
2016-05-11 18:07 UTC
Requires
- php: >=5.3.2
- data-uri/data-uri: ~0.2.0
- twig/extensions: ~1.0
This package is auto-updated.
Last update: 2024-08-25 06:08:30 UTC
README
这是一个用于 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 默认值为 true
,mimeType 默认值为 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许可协议下发布