First version

master 1.0.0
Julien Rosset 3 years ago
parent 206fb555d1
commit 1d5d2eee7c

@ -1,3 +1,6 @@
# XXX
# jrosset/mbstring-extended
XXX
Add “missing” mbstring methods.
Provides:
- [mb_str_pad](https://www.php.net/manual/function.str-pad.php)

@ -0,0 +1,20 @@
<?php
use jrosset\MbstringExtended;
if (!function_exists('mb_str_pad')) {
/**
* Multi-bytes implementation for {@see https://www.php.net/manual/function.str-pad.php str_pad}
*
* @param string $string The input string
* @param int $length The minimum string length
* @param string $pad_string The padding string
* @param int $pad_type STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH
* @param string|null $encoding The character encoding or the internal character encoding value is Null
*
* @return string The padded string
*/
function mb_str_pad (string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, string $encoding = null): string {
return MbstringExtended::str_pad($string, $length, $pad_string, $pad_type, $encoding);
}
}

@ -1,21 +1,29 @@
{
"name": "jrosset/xxx",
"description": "XXX",
"keywords": [ ],
"name": "jrosset/mbstring-extended",
"type": "library",
"description": "Add \"missing\" mbstring methods like str_pad",
"keywords": [ "mbstring" ],
"minimum-stability": "stable",
"require": {
"php": "^7.4 || ^8.0"
"php": ">=7.1",
"symfony/polyfill-mbstring": "^1.27"
},
"suggest": {
"ext-mbstring": "For best performance"
},
"autoload": {
"psr-4": {
"jrosset\\": "src/"
},
"files": [
"boostrap.php"
],
"exclude-from-classmap": [ "tests/" ]
},
"readme": "README.md",
"homepage": "https://git.jrosset.ovh/jrosset/XXX",
"homepage": "https://git.jrosset.ovh/jrosset/PhpMbstringExtended",
"license": "CC-BY-4.0",
"authors": [
{
@ -25,9 +33,9 @@
],
"support": {
"email": "jul.rosset@gmail.com",
"issues": "https://git.jrosset.ovh/jrosset/XXX/issues",
"wiki": "https://git.jrosset.ovh/jrosset/XXX/wiki",
"docs": "https://git.jrosset.ovh/jrosset/XXX/wiki",
"source": "https://git.jrosset.ovh/jrosset/XXX"
"issues": "https://git.jrosset.ovh/jrosset/PhpMbstringExtended/issues",
"wiki": "https://git.jrosset.ovh/jrosset/PhpMbstringExtended/wiki",
"docs": "https://git.jrosset.ovh/jrosset/PhpMbstringExtended/wiki",
"source": "https://git.jrosset.ovh/jrosset/PhpMbstringExtended"
}
}
}

@ -0,0 +1,24 @@
<?php
namespace jrosset;
/**
* Class for “missing” mbstring functions
*/
final class MbstringExtended {
/**
* Multi-bytes implementation for {@see https://www.php.net/manual/function.str-pad.php str_pad}
*
* @param string $string The input string
* @param int $length The minimum string length
* @param string $pad_string The padding string
* @param int $pad_type STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH
* @param string|null $encoding The character encoding or the internal character encoding value is Null
*
* @return string The padded string
*/
public static function str_pad (string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, string $encoding = null): string {
$diff = strlen($string) - ($encoding === null ? mb_strlen($string) : mb_strlen($string, $encoding));
return str_pad($string, $length + $diff, $pad_string, $pad_type);
}
}

@ -0,0 +1,5 @@
<?php
require_once __DIR__ . '/../vendor/autoload.php';
echo mb_str_pad('𝄞', 20, '=', STR_PAD_RIGHT, 'UTF-8');
Loading…
Cancel
Save