-1

我将 cakephp 用于我的 Web 应用程序。我有一个数据库表,其中存储了一些以纯文本格式保存的著作。我该怎么做才能获得它自己格式化为 html 标记的文本?

例如,我在数据库上有一个文本,例如:

blablablabalbalblablablablablablablablabalbalbla.
otherotherotherotherotherother.
helloworldhelloworldhelloworldhelloworld.

但是当我得到它时,它显示如下:

blablablabalbalblablablablablablablablabalbalbla.otherotherotherotherotherother.helloworldhelloworldhelloworldhelloworld.

但我希望它像这样进入 html:

<p>blablablabalbalblablablablablablablablabalbalbla.</p>
<p>otherotherotherotherotherother.</p>
<p>helloworldhelloworldhelloworldhelloworld.</p>

有什么办法吗?

4

3 回答 3

5

如果您只想保留线闸,可以将文本包装到 <pre> 标记中

<pre>
blablablabalbalblablablablablablablablabalbalbla.
otherotherotherotherotherother.
helloworldhelloworldhelloworldhelloworld.
</pre>

否则在换行符上使用 php 替换函数,如 str_replace。例如:

$in = '
blablablabalbalblablablablablablablablabalbalbla.
otherotherotherotherotherother.
helloworldhelloworldhelloworldhelloworld.';

$out = '<p>'
$out .= str_replace("\n\r" , '</p><p>', $in);
$out .= '</p>';

echo $out;
于 2013-05-31T00:30:31.410 回答
2

如果您正在或将要使用 Cake2.4,它有一种新方法可以相应地格式化您的代码:

echo $this->Text->autoParagraph($text);

https://github.com/cakephp/cakephp/blob/8cb84e7aa71b09d1b91591513375b6e2ba4f31af/src/View/Helper/TextHelper.php#L296

在此之前,您可以将此方法复制到您自己的自定义助手中。

请注意,您的代码不会包含在标签中,<p>而是包含在<br>标签中!只有第二个换行符(在最后一行之前),您将获得另一个 p 标签:

blablablabalbalblablablablablablablablabalbalbla.
otherotherotherotherotherother.

helloworldhelloworldhelloworldhelloworld.

会成为

<p>blablablabalbalblablablablablablablablabalbalbla.<br />
otherotherotherotherotherother.</p>
<p>helloworldhelloworldhelloworldhelloworld.</p>

就是这样的标准。所以你可能应该坚持下去。

于 2013-05-31T09:52:47.740 回答
1

你会想看看使用 PHP 的字符串函数。您可能希望在从数据库中提取的文本中找到模式或重复出现以更改字符串。在您的示例中,句点可能是一个很好的起点。也许更具体地看一下 strpos() 函数 php 和 str_replace() 函数以及它们是如何工作的。

我建议尝试了解 PHP 字符串函数,然后尝试使用它们来解决您的问题。如果您在发布您所做的事情和遇到的麻烦时遇到问题,人们会更容易为您提供额外的帮助。

于 2013-05-31T00:25:13.573 回答