Лучший способ убрать недопустимые символы json из строки json, как перед демаршалом в golang

Здесь документально :

Если вы не используете композитор, просто требуйте autoload.php в папке / src:

require_once('src/autoload.php');

Если у вас реализован автозагрузчик PSR-4, просто зарегистрируйте путь src следующим образом:

$loader = new \Example\Psr4AutoloaderClass;
$loader->register();
$loader->addNamespace('setasign\FpdiProtection', 'path/to/src/');
blockquote>

Так что в вашем случае просто потребуйте файлы autoload.php из FPDI и FPDI Protection:

use setasign\FpdiProtection\FpdiProtection;

require_once($_SERVER['DOCUMENT_ROOT'].'/fpdf/fpdf.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/fpdi2/src/autoload.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/fpdi_protection/src/autoload.php');

$pdf = new FpdiProtection();
...

0
задан Steve 19 January 2019 в 22:34
поделиться

1 ответ

Используйте регулярное выражение, чтобы заменить недопустимые восьмеричные escape-последовательности пробелом:

var octalEscapePat = regexp.MustCompile(`\\[0-7]{3}`)

func fix(src string) string {
    return octalEscapePat.ReplaceAllString(src, " ")
}

Вы также можете проанализировать восьмеричное значение и преобразовать в допустимую escape-последовательность JSON:

func fix(src string) string {
    return octalEscapePat.ReplaceAllStringFunc(src, func(s string) string {
        // Parse octal value
        n, _ := strconv.ParseInt(s[1:], 8, 0)
        // Convert to string and marshal to JSON to handle any escaping
        b, _ := json.Marshal(string(n))
        // return string with surrounding quotes removed
        return string(b[1 : len(b)-1])
    })
}
[115 С \ M можно обращаться аналогичным образом.

https://play.golang.org/p/-gtxrvnBSrx

0
ответ дан Cerise Limón 19 January 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: