Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Component\Mime\Encoder;
13
 
14
/**
15
 * @author Chris Corbyn
16
 */
17
class Base64Encoder implements EncoderInterface
18
{
19
    /**
20
     * Takes an unencoded string and produces a Base64 encoded string from it.
21
     *
22
     * Base64 encoded strings have a maximum line length of 76 characters.
23
     * If the first line needs to be shorter, indicate the difference with
24
     * $firstLineOffset.
25
     */
26
    public function encodeString(string $string, ?string $charset = 'utf-8', int $firstLineOffset = 0, int $maxLineLength = 0): string
27
    {
28
        if (0 >= $maxLineLength || 76 < $maxLineLength) {
29
            $maxLineLength = 76;
30
        }
31
 
32
        $encodedString = base64_encode($string);
33
        $firstLine = '';
34
        if (0 !== $firstLineOffset) {
35
            $firstLine = substr($encodedString, 0, $maxLineLength - $firstLineOffset)."\r\n";
36
            $encodedString = substr($encodedString, $maxLineLength - $firstLineOffset);
37
        }
38
 
39
        return $firstLine.trim(chunk_split($encodedString, $maxLineLength, "\r\n"));
40
    }
41
}