gpt4 book ai didi

php - HTML/惠普 : Emogrifier turns {} into %7B and %7D

转载 作者:可可西里 更新时间:2023-10-31 23:36:02 26 4
gpt4 key购买 nike

我目前正在设置一个包含两部分的电子邮件模板:HTML 和 CSS。为了将所有内容放在一起并将 HTML 与 CSS 合并,我使用了 PHP Emogrifier。

现在我发现当我对这两个元素进行 emogrify 时,uft-8 编码有问题。

所有类似 Ä、Ü、Ö 的作品都正确显示,但是当我在此处将这样的链接放入内容时,utf-8 解码不适用于此元素:

在表情化之前:

<a href="{password_reset_link}" id="button">Passwort zurücksetzten</a>

emogrify 之后:

<a href="%7Bpassword_reset_link%7D" id="button" style="color: #69f0ae; text-decoration: none; font-size: 20px; text-align: center; display: block; line-height: 1.7em !important; padding: .3em 1em;
> border: 2px solid #69f0ae; border-radius: 3px; -webkit-border-radius:
> 3px; -moz-border-radius: 3px; width: 40%; margin: auto; cursor:
> pointer !important;">Passwort zurücksetzten</a>

所以你可以看到 href 被破坏了,它是用占位符设置的,在 emogrify 过程后被正确的链接替换:

%7Bpassword_reset_link%7D

我是这样处理内容的:

//Apply CSS styles inline for picky email clients.
try {
$emogrifier = new Emogrifier( $message, $css );
$message = $emogrifier->emogrify();
} catch ( Exception $e ) {
$logger = wc_get_logger();
$logger->error( $e->getMessage(), array( 'source' => 'emogrifier' ) )
}

$message$css包括内容和风格。当我在没有 emogrify 的情况下执行此操作时,链接将被成功替换。那么有人知道我该如何解决这个问题吗?

最佳答案

这似乎是一个错误。当您检查 Emogrifier 的 Github 时,您会发现还有一些其他错误以及其他符号,例如美元符号 $。我现在已经使用此解决方法暂时修复了它,但此错误需要在 Emogrifier 本身上修复。

解决方法(希望对某人有帮助):

//Apply CSS styles inline for picky email clients.
try {
$emogrifier = new Emogrifier( $message, $css );
$message = $emogrifier->emogrify();
} catch ( Exception $e ) {
$logger = wc_get_logger();
$logger->error( $e->getMessage(), array( 'source' => 'emogrifier' ) );
}

$message = str_replace( array( '%7B', '%7D' ), array( '{', '}' ), $message );

关于php - HTML/惠普 : Emogrifier turns {} into %7B and %7D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53979062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com