__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Helper; /** * Simple output wrapper for "tagged outputs" instead of wordwrap(). This solution is based on a StackOverflow * answer: https://stackoverflow.com/a/20434776/1476819 from user557597 (alias SLN). * * (?: * # -- Words/Characters * ( # (1 start) * (?> # Atomic Group - Match words with valid breaks * .{1,16} # 1-N characters * # Followed by one of 4 prioritized, non-linebreak whitespace * (?: # break types: * (?<= [^\S\r\n] ) # 1. - Behind a non-linebreak whitespace * [^\S\r\n]? # ( optionally accept an extra non-linebreak whitespace ) * | (?= \r? \n ) # 2. - Ahead a linebreak * | $ # 3. - EOS * | [^\S\r\n] # 4. - Accept an extra non-linebreak whitespace * ) * ) # End atomic group * | * .{1,16} # No valid word breaks, just break on the N'th character * ) # (1 end) * (?: \r? \n )? # Optional linebreak after Words/Characters * | * # -- Or, Linebreak * (?: \r? \n | $ ) # Stand alone linebreak or at EOS * ) * * @author KrisztiƔn Ferenczi <[email protected]> * * @see https://stackoverflow.com/a/20434776/1476819 */ final class OutputWrapper { private const TAG_OPEN_REGEX_SEGMENT = '[a-z](?:[^\\\\<>]*+ | \\\\.)*'; private const TAG_CLOSE_REGEX_SEGMENT = '[a-z][^<>]*+'; private const URL_PATTERN = 'https?://\S+'; public function __construct( private bool $allowCutUrls = false, ) { } public function wrap(string $text, int $width, string $break = "\n"): string { if (!$width) { return $text; } $tagPattern = \sprintf('<(?:(?:%s)|/(?:%s)?)>', self::TAG_OPEN_REGEX_SEGMENT, self::TAG_CLOSE_REGEX_SEGMENT); $limitPattern = "{1,$width}"; $patternBlocks = [$tagPattern]; if (!$this->allowCutUrls) { $patternBlocks[] = self::URL_PATTERN; } $patternBlocks[] = '.'; $blocks = implode('|', $patternBlocks); $rowPattern = "(?:$blocks)$limitPattern"; $pattern = \sprintf('#(?:((?>(%1$s)((?<=[^\S\r\n])[^\S\r\n]?|(?=\r?\n)|$|[^\S\r\n]))|(%1$s))(?:\r?\n)?|(?:\r?\n|$))#imux', $rowPattern); $output = rtrim(preg_replace($pattern, '\\1'.$break, $text), $break); return str_replace(' '.$break, $break, $output); } }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| DebugFormatterHelper.php | File | 3.25 KB | 0664 |
|
| DescriptorHelper.php | File | 2.58 KB | 0664 |
|
| Dumper.php | File | 1.79 KB | 0664 |
|
| FormatterHelper.php | File | 2.19 KB | 0664 |
|
| Helper.php | File | 4.86 KB | 0664 |
|
| HelperInterface.php | File | 841 B | 0664 |
|
| HelperSet.php | File | 1.82 KB | 0664 |
|
| InputAwareHelper.php | File | 746 B | 0664 |
|
| OutputWrapper.php | File | 2.94 KB | 0664 |
|
| ProcessHelper.php | File | 4.65 KB | 0664 |
|
| ProgressBar.php | File | 19.76 KB | 0664 |
|
| ProgressIndicator.php | File | 6.83 KB | 0664 |
|
| QuestionHelper.php | File | 19.09 KB | 0664 |
|
| SymfonyQuestionHelper.php | File | 3.21 KB | 0664 |
|
| Table.php | File | 33.6 KB | 0664 |
|
| TableCell.php | File | 1.72 KB | 0664 |
|
| TableCellStyle.php | File | 2.16 KB | 0664 |
|
| TableRows.php | File | 590 B | 0664 |
|
| TableSeparator.php | File | 531 B | 0664 |
|
| TableStyle.php | File | 12.46 KB | 0664 |
|