Вход Регистрация
Файл: vendor/vlucas/phpdotenv/src/Util/Str.php
Строк: 135
<?php

declare(strict_types=1);

namespace 
DotenvUtil;

use 
GrahamCampbellResultTypeError;
use 
GrahamCampbellResultTypeSuccess;
use 
PhpOptionOption;

/**
 * @internal
 */
final class Str
{
    
/**
     * This class is a singleton.
     *
     * @codeCoverageIgnore
     *
     * @return void
     */
    
private function __construct()
    {
        
//
    
}

    
/**
     * Convert a string to UTF-8 from the given encoding.
     *
     * @param string      $input
     * @param string|null $encoding
     *
     * @return GrahamCampbellResultTypeResult<string,string>
     */
    
public static function utf8(string $input, ?string $encoding null)
    {
        if (
$encoding !== null && !in_array($encodingmb_list_encodings(), true)) {
            
/** @var GrahamCampbellResultTypeResult<string,string> */
            
return Error::create(
                
sprintf('Illegal character encoding [%s] specified.'$encoding)
            );
        }
        
$converted $encoding === null ?
            @
mb_convert_encoding($input'UTF-8') :
            @
mb_convert_encoding($input'UTF-8'$encoding);
        
/**
         * this is for support UTF-8 with BOM encoding
         * @see https://en.wikipedia.org/wiki/Byte_order_mark
         * @see https://github.com/vlucas/phpdotenv/issues/500
         */
        
if (substr($converted03) == "xEFxBBxBF") {
            
$converted substr($converted3);
        }
        
/** @var GrahamCampbellResultTypeResult<string,string> */
        
return Success::create($converted);
    }

    
/**
     * Search for a given substring of the input.
     *
     * @param string $haystack
     * @param string $needle
     *
     * @return PhpOptionOption<int>
     */
    
public static function pos(string $haystackstring $needle)
    {
        
/** @var PhpOptionOption<int> */
        
return Option::fromValue(mb_strpos($haystack$needle0'UTF-8'), false);
    }

    
/**
     * Grab the specified substring of the input.
     *
     * @param string   $input
     * @param int      $start
     * @param int|null $length
     *
     * @return string
     */
    
public static function substr(string $inputint $start, ?int $length null)
    {
        return 
mb_substr($input$start$length'UTF-8');
    }

    
/**
     * Compute the length of the given string.
     *
     * @param string $input
     *
     * @return int
     */
    
public static function len(string $input)
    {
        return 
mb_strlen($input'UTF-8');
    }
}
Онлайн: 4
Реклама