【问题标题】:How can I echo PHP within a preg_replace?如何在 preg_replace 中回显 PHP?
【发布时间】:2020-02-13 08:36:23
【问题描述】:

好的,我已经尝试了 3 天,但我似乎无法正确获取代码。

以下代码显示我的标题:

<?php echo $result['title'];?>


以下代码显示我的内容:

<?php
if(!empty($result['content']))
{
$result['content'] = str_replace(array("\n"), "<br/><br/>", $result['content']);
echo preg_replace('#(<br */?>\s*)+#i', '<br/><br/>', $result['content']);
}
?>


在 preg_replace 中,我需要在 2 个 br 标签之间呼应标题;像这样:

<?php
if(!empty($result['content']))
{
$result['content'] = str_replace(array("\n"), "<br/><br/>", $result['content']);
echo preg_replace('#(<br */?>\s*)+#i', '<br/>$result['title']<br/>', $result['content']);
}
?>

提前感谢您提供急需的帮助!

【问题讨论】:

  • 为什么不跳过 preg_replace 并将其添加到您的替换中?:$result['content'] = str_replace(array("\n"), "&lt;br/&gt;" . $result['title'] . "&lt;br/&gt;", $result['content']);
  • 嗨,Jason,您能解释一下为什么这没有按您的预期工作吗?

标签: php regex


【解决方案1】:

您在这里使用的字符串文字会导致错误:'&lt;br/&gt;$result['title']&lt;br/&gt;',您也可以选择 concat。或执行以下操作:"&lt;br/&gt;{$result['title']}&lt;br/&gt;"。

<?php
$result['title']   = 'Weather warning.';
$result['content'] = 'Today sees high gusts.
You are advised to not make unnecessary journeys.';

if(!empty($result['content']))
{
    $result['content'] = str_replace(array("\n"), "<br/><br/>", $result['content']);
    echo preg_replace('#(<br */?>\s*)+#i', "<br/>{$result['title']}<br/>", $result['content']);
}

输出:

Today sees high gusts.<br/>Weather warning.<br/>You are advised to not make unnecessary journeys.

虽然我的示例文本读起来很荒谬。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-30
    • 2010-10-20
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多