Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.
<?php

declare(strict_types=1);

namespace OpenSpout\Common\Helper;

/**
 * @internal
 */
final class StringHelper
{
    /** @var bool Whether the mbstring extension is loaded */
    private bool $hasMbstringSupport;

    public function __construct(bool $hasMbstringSupport)
    {
        $this->hasMbstringSupport = $hasMbstringSupport;
    }

    public static function factory(): self
    {
        return new self(\function_exists('mb_strlen'));
    }

    /**
     * Returns the length of the given string.
     * It uses the multi-bytes function is available.
     *
     * @see strlen
     * @see mb_strlen
     */
    public function getStringLength(string $string): int
    {
        return $this->hasMbstringSupport
            ? mb_strlen($string)
< : \strlen($string) // @codeCoverageIgnore < ;
> : \strlen($string); // @codeCoverageIgnore
} /** * Returns the position of the first occurrence of the given character/substring within the given string. * It uses the multi-bytes function is available. * * @see strpos * @see mb_strpos * * @param string $char Needle * @param string $string Haystack * * @return int Char/substring's first occurrence position within the string if found (starts at 0) or -1 if not found */ public function getCharFirstOccurrencePosition(string $char, string $string): int { $position = $this->hasMbstringSupport ? mb_strpos($string, $char)
< : strpos($string, $char) // @codeCoverageIgnore < ;
> : strpos($string, $char); // @codeCoverageIgnore
return (false !== $position) ? $position : -1; } /** * Returns the position of the last occurrence of the given character/substring within the given string. * It uses the multi-bytes function is available. * * @see strrpos * @see mb_strrpos * * @param string $char Needle * @param string $string Haystack * * @return int Char/substring's last occurrence position within the string if found (starts at 0) or -1 if not found */ public function getCharLastOccurrencePosition(string $char, string $string): int { $position = $this->hasMbstringSupport ? mb_strrpos($string, $char)
< : strrpos($string, $char) // @codeCoverageIgnore < ;
> : strrpos($string, $char); // @codeCoverageIgnore
return (false !== $position) ? $position : -1; } }