当前位置: 首页 > 知识库问答 >
问题:

当将字符串打印到html页面时,PHP将它们打印在错误的地方

山疏珂
2023-03-14

我有硕士班,有功能打印网站的每个部分。我有一个打印主容器的函数,它是一个包含所有内容的div。(html/body/#主容器/(所有网站元素))。在这个函数中,我有一个抽象的受保护函数,它在网页(子类)上用来生成进入主容器的内容。这是主类中代码的一部分:

  ...
  # print content
  abstract protected function print_content();

  # print master-container
  public function print_master_container(){
    $output = '
      <div id="master-container">
        '.$this->print_content().'
      </div>
    ';
    echo $output;
  }
  ...

这是子类中的代码:

class Starting_page extends Core {
        public function print_content(){
            $this->print_navbar();
            echo 'test';
        }
    }
...

现在的问题是它打印所有内容(字符串“test”和函数$this打印的内容)-

如果需要显示更多代码,请说出来。


共有1个答案

郭通
2023-03-14

正如评论中的好人所说,问题在于特定的方法使用了echo而不是return。但是,当使用return时,将根本没有输出。然后@Rasclatt想出了解决这个问题的办法,也就是说;

class Starting_page extends Core {
    public function print_content(){
        # output buffering start
        ob_start();

        # print navbar
        $this->print_navbar();

        # declare output buffering content
        $output = ob_get_contents();

        # add more output data
        $output .= 'other content';

        # end output buffering and return it
        ob_end_clean();
        return $output;
    }
}

值得注意的是$this-

 类似资料:
  • 问题内容: 我已经阅读了很多有关打印页码的网站,但是当我尝试打印html页面时,仍然无法显示它。 接下来是CSS代码: 我试图把这个页面规则放进去 在其外部,尝试将其放入中,但没有任何帮助使我在页面上显示页码。我尝试使用FireFox和Chrome(您知道基于WebKit的浏览器)。我认为问题出在我的HTML或CSS代码中。 有人可以告诉我一个在具有多个页面的大html页面中实现此规则的示例吗?我

  • 问题内容: 我正在使用单独的样式表进行打印。是否可以在设置打印页边距的样式表中设置左右页边距(即纸张上的页边距)。 谢谢。 问题答案: 指定打印时,应使用或作为单位。使用像素会导致浏览器将其转换为类似于屏幕上的外观。使用或将确保纸张尺​​寸一致。 对于字体大小,用于打印介质。 请注意,以css样式设置主体上的页边距 不会 调整定义打印机可打印区域的打印机驱动程序中的页边距,或由浏览器控制的页边距(

  • 问题内容: 我正在使用Python打开文本文档: 我想将字符串变量的值替换为文本文档。有人可以让我知道怎么做吗? 问题答案: 如果使用上下文管理器,则将自动为你关闭文件 如果你使用的是Python2.6或更高版本,则最好使用 对于python2.7及更高版本,你可以使用代替 在Python3中,该函数有一个可选参数 Python3.6引入了f字符串作为另一种选择

  • 我有一个数据库,它存储带有Unicode字符的视频游戏名称,但我不知道如何在将这些Unicode字符打印到超文本标记语言响应时正确转义它们。 例如,当我打印所有名为Uncharted的游戏时,我会得到以下信息: 但它应该显示以下内容: 我运行了一个快速的JavaScript转义函数,查看哪个Unicode字符™并发现它是。 如果我能得到字符以正确显示。我的猜测是以某种方式找到字符串中每个字符的十六

  • 问题内容: 我正在将express.js与EJS模板一起使用,并且正在尝试执行以下操作: 但它打印此: 如何打印“ html安全”字符串? 问题答案: 您应该在各处使用html代码,并且仅在需要动态数据的地方使用EJS标签。例: 为了专门回答您的问题,您可以使用输出未 转义的 HTML数据。