Laravel5.4有一个新的特性。您可以在邮件模板中使用Markdown。
这是我的邮件刀片模板:
# Message for you!
Hello {{ $user->name }},
@foreach($messages as $message)
{{ $message->text }}
@endforeach
Greetings我的问题是:$message->text的第一个字符可以是# (数字符号或散列),因此字符串被解析为标题.
更新:
您可以用* (https://meta.stackexchange.com/a/198231)转义所有标记字符。
我尝试用以下代码来转义所有字符:
$text = str_replace(
['\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '#', '+', '-', '.', '!'],
['\\\\', '\`', '\*', '\_', '\{', '\}', '\[', '\]', '\(', '\)', '\#', '\+', '\-', '\.', '\!'],
$text
);但我认为这不是推荐的方法..。
我怎么才能逃脱绳子?
问候
发布于 2017-02-06 13:21:47
我不认为能逃过刀刃里的第一个角色。
解决这一问题的一种可能方法是用html数字#更改“#”
在控制器中,您可以检查消息是否以#开头,并将其替换为#
function replaceFirstChar($message)
{
if ($message[0] == "#") {
$new_message = '#' . substr($message, 1);
return $new_message;
} else {
return $message;
}
}我觉得这个应该管用。
更新
addcslashes($str , '\ `*[]()#+-.!');这应该能起作用。(可能需要添加一些额外的字符)
https://stackoverflow.com/questions/42056148
复制相似问题