Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Get string length
<?php strlen(string $string): int
<?php             return;

        } finally {

            if (0 < $i = strrpos($this->value, '\\')) {

                $this->attr['ellipsis'] = \strlen($this->value) - $i;

                $this->attr['ellipsis-type'] = 'class';

                $this->attr['ellipsis-tail'] = 1;

            }
<?php             case 'string':

                $this->type = self::TYPE_STRING;

                $this->class = preg_match('//u', $value) ? self::STRING_UTF8 : self::STRING_BINARY;

                $this->cut = self::STRING_BINARY === $this->class ? \strlen($value) : mb_strlen($value, 'UTF-8');

                $this->value = '';

                break;

        }
<?php     private static function formatSeconds(string $s, string $us): string

    {

        return sprintf('%02d.%s', $s, 0 === ($len = \strlen($t = rtrim($us, '0'))) ? '0' : ($len <= 3 ? str_pad($t, 3, '0') : $us));

    }

}
<?php                 $a[$prefix.'src'] = self::$framesCache[$cacheKey];

            } else {

                if (preg_match('/\((\d+)\)(?:\([\da-f]{32}\))? : (?:eval\(\)\'d code|runtime-created function)$/', $f['file'], $match)) {

                    $f['file'] = substr($f['file'], 0, -\strlen($match[0]));

                    $f['line'] = (int) $match[1];

                }

                $src = $f['line'];
<?php                         if (isset($f['object'])) {

                            $template = $f['object'];

                        } elseif ((new \ReflectionClass($f['class']))->isInstantiable()) {

                            $template = unserialize(sprintf('O:%d:"%s":0:{}', \strlen($f['class']), $f['class']));

                        }

                        if (null !== $template) {

                            $ellipsis = 0;
<?php                         $src = self::extractSource(file_get_contents($f['file']), $f['line'], self::$srcContext, 'php', $f['file'], $f);

                        $srcKey .= ':'.$f['line'];

                        if ($ellipsis) {

                            $ellipsis += 1 + \strlen($f['line']);

                        }

                    }

                    $srcAttr .= sprintf('&separator= &file=%s&line=%d', rawurlencode($f['file']), $f['line']);
<?php     public static function castImage(ImageInterface $c, array $a, Stub $stub, bool $isNested): array

    {

        $imgData = $c->get('png');

        if (\strlen($imgData) > 1 * 1000 * 1000) {

            $a += [

                Caster::PREFIX_VIRTUAL.'image' => new ConstStub($c->getSize()),

            ];
<?php             return;

        }

        if ($composerRoot = $this->getComposerRoot($href, $this->inVendor)) {

            $this->attr['ellipsis'] = \strlen($href) - \strlen($composerRoot) + 1;

            $this->attr['ellipsis-type'] = 'path';

            $this->attr['ellipsis-tail'] = 1 + ($this->inVendor ? 2 + \strlen(implode('', \array_slice(explode(\DIRECTORY_SEPARATOR, substr($href, 1 - $this->attr['ellipsis'])), 0, 2))) : 0);

        } elseif (3 < \count($ellipsis = explode(\DIRECTORY_SEPARATOR, $href))) {
<?php         if ($composerRoot = $this->getComposerRoot($href, $this->inVendor)) {

            $this->attr['ellipsis'] = \strlen($href) - \strlen($composerRoot) + 1;

            $this->attr['ellipsis-type'] = 'path';

            $this->attr['ellipsis-tail'] = 1 + ($this->inVendor ? 2 + \strlen(implode('', \array_slice(explode(\DIRECTORY_SEPARATOR, substr($href, 1 - $this->attr['ellipsis'])), 0, 2))) : 0);

        } elseif (3 < \count($ellipsis = explode(\DIRECTORY_SEPARATOR, $href))) {

            $this->attr['ellipsis'] = 2 + \strlen(implode('', \array_slice($ellipsis, -2)));

            $this->attr['ellipsis-type'] = 'path';
<?php             $this->attr['ellipsis-type'] = 'path';

            $this->attr['ellipsis-tail'] = 1 + ($this->inVendor ? 2 + \strlen(implode('', \array_slice(explode(\DIRECTORY_SEPARATOR, substr($href, 1 - $this->attr['ellipsis'])), 0, 2))) : 0);

        } elseif (3 < \count($ellipsis = explode(\DIRECTORY_SEPARATOR, $href))) {

            $this->attr['ellipsis'] = 2 + \strlen(implode('', \array_slice($ellipsis, -2)));

            $this->attr['ellipsis-type'] = 'path';

            $this->attr['ellipsis-tail'] = 1;

        }
<?php                 } elseif (\is_array($v)) {

                    $signature .= $v ? '[…'.\count($v).']' : '[]';

                } elseif (\is_string($v)) {

                    $signature .= 10 > \strlen($v) && !str_contains($v, '\\') ? "'{$v}'" : "'…".\strlen($v)."'";

                } elseif (\is_bool($v)) {

                    $signature .= $v ? 'true' : 'false';

                } elseif (\is_object($v)) {
<?php                             $stub = new Stub();

                            $stub->type = Stub::TYPE_STRING;

                            $stub->class = Stub::STRING_BINARY;

                            if (0 <= $maxString && 0 < $cut = \strlen($v) - $maxString) {

                                $stub->cut = $cut;

                                $stub->value = substr($v, 0, -$cut);

                            } else {
<?php         if (isset($attr['ellipsis'], $attr['ellipsis-type'])) {

            $prefix = substr($value, 0, -$attr['ellipsis']);

            if ('cli' === \PHP_SAPI && 'path' === $attr['ellipsis-type'] && isset($_SERVER[$pwd = '\\' === \DIRECTORY_SEPARATOR ? 'CD' : 'PWD']) && str_starts_with($prefix, $_SERVER[$pwd])) {

                $prefix = '.'.substr($prefix, \strlen($_SERVER[$pwd]));

            }

            if (!empty($attr['ellipsis-tail'])) {

                $prefix .= substr($value, -$attr['ellipsis'], $attr['ellipsis-tail']);
<?php         if ($this->colors) {

            if ($cchrCount && "\033" === $value[0]) {

                $value = substr($value, \strlen($startCchr));

            } else {

                $value = "\033[{$this->styles[$style]}m".$value;

            }
<?php                 $value = "\033[{$this->styles[$style]}m".$value;

            }

            if ($cchrCount && str_ends_with($value, $endCchr)) {

                $value = substr($value, 0, -\strlen($endCchr));

            } else {

                $value .= "\033[{$this->styles['default']}m";

            }