【问题标题】:Store output from a php function存储 php 函数的输出
【发布时间】:2011-10-04 05:54:12
【问题描述】:

我觉得我对此有点过头了,但我有一个我无法控制的 wordpress 功能,它输出 HTML。

它专门输出一个<a> 标签。当我尝试将该输出存储到一个变量中时,它只会回显锚标记,即使我认为我存储了输出。

我与对此了解更多的人进行了交谈,他们说该函数可能正在使用它自己的输出系统。

我想知道是否有办法在函数输出回显之前存储它。像这样(但这不起作用):

$link = wp_function();

这会回显标签并且不存储数据。

【问题讨论】:

  • 您尝试使用的函数的确切名称是什么?

标签: php wordpress


【解决方案1】:
<?php
ob_start();
wp_function();
$link = ob_get_contents();
ob_end_clean();
?>

同样的问题,How do I capture PHP output into a variable?

【讨论】:

    【解决方案2】:

    Wordpress 有两种功能:-

    1. 不返回任何内容但回显输出的函数。
    2. 不回显任何内容但返回输出以供进一步使用的函数。

    几乎所有函数都以get_ 为前缀来返回值。

    例如the_title 只输出标题,而get_the_title 返回标题。

    搜索该函数是否有其get_ 版本可用并使用它们。

    【讨论】:

    【解决方案3】:

    您应该可以在拨打wp_function() 之前拨打ob_start,然后使用ob_get_flush()

    ob_start();
    wp_function();
    $link = ob_get_flush();
    

    【讨论】:

    • 我看到 ob_get_flush() 是返回字符串和关闭输出缓冲的组合,但它与 ob_get_contents() 有什么不同吗? ob_end_clean();
    • @Nils:不。它只是结合了两者。
    • 这实际上并没有像其他两个函数那样“捕捉”输出。当我使用其他两个函数时,它会捕获任何输出,然后我对其进行一些操作和正则表达式并回显最终结果。当我使用单结尾函数时,它仍然会回显原始函数以及我对它所做的正则表达式。所以好像有区别
    【解决方案4】:

    http://us2.php.net/manual/en/ref.outcontrol.php这可能有助于更多功能

    【讨论】:

      【解决方案5】:

      您具体使用的是什么功能?
      您是否尝试过传递 'echo' => false 参数?
      我在使用 wp_nav_menu() 函数时遇到了这个问题,并用这个参数修复了它:

      $menu = wp_nav_menu( 'echo' => false );
      

      【讨论】:

        猜你喜欢
        • 2020-01-07
        • 2022-11-15
        • 2019-11-15
        • 1970-01-01
        • 1970-01-01
        • 2019-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多