inetprocess/转换

此库是一个包装器,可以将字符串转换为另一个字符串(日期格式转换为另一种格式,字符串,正则表达式等)

1.2.6 2018-01-03 17:08 UTC

This package is not auto-updated.

Last update: 2024-09-19 13:41:17 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Build Status SensioLabsInsight

inetprocess/转换

Respect/Validation启发,该库在应用规则后,将输入字符串(或浮点数/整数/布尔值)转换为输出字符串。

使用它的好处是,它是一个通用的转换包装器。它还抛出异常,并允许链式转换。

用法

使用很简单。假设你需要将日期“31-12-2012”转换为另一种格式,例如“2012-12-31”。只需这样做

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Inet\Transformation\Transform as T;

$dateEntered = '31-12-2012';
$output = T::Date('d-m-Y', 'Y-m-d')->transform($dateEntered);
echo $output;

现在,如果你需要更改格式,请更改时区

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Inet\Transformation\Transform as T;

$dateEntered = '31-12-2012 23:21:58';
$output = T::Date('d-m-Y H:i:s', 'Y-m-d H:i:s')->Timezone('Y-m-d H:i:s', 'Asia/Calcutta')->transform($dateEntered);
// Displays: 2013-01-01 03:51:58
echo $output;

转换规则

目前只有少数规则。稍后我会添加更多,如果你愿意贡献,请不要犹豫。

Callback(string $functionName, [$param1, $param2, ...])

在输入上调用任何PHP函数。输入将作为函数的最后一个参数传递。

T::Callback('sprintf', "REF%'06d")->transform(1234); // REF001234

CopyFileToUuid(string $sourceDir, string $destinationDir)

将文件(具有文件名)复制到由UUID生成的名称。返回生成的UUID。

T::CopyFileToUuid('/var/www/upload/', '/var/www/unified_upload')->transform('quotes/client_01.pdf'); // 123e4567-e89b-12d3-a456-426655440000

## Concat(string $before, [string $after])
Append and prepend string to input.
```php
T::Concat('REF')->transform('1234'); // REF1234
T::Concat('REF', 'AB')->transform('1234'); // REF1234AB

Date(string $inputFormat, string $outputFormat)

将日期从一种格式转换为另一种格式。

见上面示例

Explode(string $delimiter)

使用分隔符将字符串分解为数组。使用PHP中的explode函数。它返回一个数组。

T::Explode(',')->transform('foo,bar,baz'); // array('foo', 'bar', 'baz');
T::Explode(',')->Implode('|')->transform('foo,bar,baz'); // foo|bar|baz

Htmlspecialchars([array $flags, string $encoding, bool $double_encoding])

编码特殊字符。使用PHP中的htmlspecialchars函数。

T::Htmlspecialchars(['ENT_QUOTES'])->transform("l'arbre"); // l&#039;arbre
T::Htmlspecialchars(['ENT_QUOTES'], 'UTF-8', false)->transform("l&#039;arbre"); // l&#039;arbre

HtmlspecialcharsDecode([array $flags])

解码特殊字符。使用PHP中的htmlspecialchars_decode函数。

T::HtmlspecialcharsDecode(['ENT_QUOTES'])->transform("l&#039;arbre"); // l'arbre

Implode(string $delimiter)

使用PHP中的implode函数将数组元素连接为一个字符串。

T::Implode('@')->transform(array('foo', 'bar')); // foo@bar

Map(array $mapping)

尝试用映射中的值替换输入。它也可以与数组作为输入一起使用。在映射中找不到的值将返回而不进行转换

$mapping = array(
    '1' => 'key1',
    '10' => 'key10',
);
T::Map($mapping)->transform('1'); // key1
T::Map($mapping)->transform(array('10', '1')); // array('key10', 'key1')
T::Map($mapping)->transform('unknown key'); // unknown key

MimeType([string $root])

返回文件的MIME类型。第一个可选参数允许指定要添加到文件名之前的根目录。

T::MimeType()->transform('test.jpg'); // image/jpeg
T::MimeType('uploads')->transform('logo.png'); // image/png

NormalizeURL(string $protocol)

如果不存在,则向任何URL添加默认协议。

T::NormalizeURL('http')->transform('https://www.google.com'); // https://www.google.com
T::NormalizeURL('http')->transform('www.google.com'); // http://www.google.com
T::NormalizeURL('http')->transform('ssh://github.com'); // ssh://github.com
T::NormalizeURL('ssh')->transform('github.com'); // ssh://github.com

Replace(string $search, string $replace)

将一个字符串替换为另一个字符串(与str_replace相同)。

T::Replace('a', 'b')->transform('ababa'); // bbbbb

ReplaceRegexp(string $pattern, string $replacement)

将一个模式替换为替换(与preg_replace相同)。

T::ReplaceRegexp('/^fox/', 'rabbit')->transform('fox and foxes'); // rabbit and foxes

Slugify()

使用Cocur\Slugify将字符串转为URL友好格式。

T::Slugify()->transform('Bonjour tôôut le monde !'); // bonjour-toout-le-monde

SetType()

使用PHP中的settype进行类型转换。

T::SetType('bool')->transform('1'); // true
T::SetType('bool')->transform('0'); // false
T::SetType('bool')->transform(array()); // false

SugarCRMMapMultiEnum(array $mapping, [array $options])

将字符串或数组中的多个值映射,并返回一个字符串,该字符串适合存储SugarCRM多枚举字段。首先使用默认分隔符|将字符串分解。可以设置以下选项

  • separator: 用于分解输入字符串的分隔符。默认:|
  • from_multi_enum: 如果为true,则将输入字符串解析为SugarCRM多枚举字段。默认:false
$mapping = array(
    '1' => 'key1',
    '10' => 'key10',
);
T::SugarCRMMapMultiEnum($mapping)->transform('1|10'); // ^key1^,^key10^
T::SugarCRMMapMultiEnum($mapping)->transform(array('1', '10'); // ^key1^,^key10^
T::SugarCRMMapMultiEnum($mapping)->transform('^1^,^23^', array('from_multi_enum' => true)); // ^key1^,^23^

Timezone(string $inputFormat, string $targetTimezone, [string $currentTimezone])

通过提供格式、目标时区和可选的当前时区来更改日期的时区。

见上面示例