PHP中如何使用echo在语句中间插入html href链接并拼接前后文本
问题原因
- 错误在字符串拼接位置使用了
echo:echo是PHP的输出语句,不能直接嵌入给函数传参的字符串拼接表达式中,你此处只需要拼接生成完整的字符串传给Session::flash()即可,不需要中途调用输出语句。 - 多余的HTML实体转义:你写的
<a、</a会被直接渲染为文本<a、</a,不会被解析为可点击的链接,不需要做转义直接写a标签即可。 - 变量插值和HTML属性写法不规范:双引号内的变量建议用大括号包裹避免解析歧义,HTML的href属性值建议加引号包裹,避免链接内容含特殊字符时出现解析错误。
正确实现代码
如果后续渲染session消息时会解析HTML内容,直接使用以下写法即可:
Session::flash('demo', "You're using a demo account - the changes that you make will not be stored. Learn more <a href='{$learnMore}'>here</a>");
如果习惯用字符串拼接的写法,也可以写成:
Session::flash('demo', 'You\'re using a demo account - the changes that you make will not be stored. Learn more <a href="'.$learnMore.'">here</a>');
补充说明
只有当你需要直接把内容输出到当前页面时才需要用到echo,示例如下:
echo "You're using a demo account - the changes that you make will not be stored. Learn more <a href='{$learnMore}'>here</a>";
内容的提问来源于stack exchange,提问作者CBlue
相关产品推荐
相关产品推荐

