0

获取文本字符串(来自 mysql 数据库,如 wordpress 帖子或页面)并将文本分成 500 个字符(或任何其他字符数)的部分,然后输出每个 500 个字符的部分的最佳方法是什么?在它自己的 div 容器中?

作为 PHP 新手,我不确定如何根据字符数对内容进行分段。我们可以使用以下方法获取字符数:

<?php
$content = get_the_content(); //wordpress function for post content as string.
echo strlen($content);
?>

但据我所知,这是这样的。谁能帮我解决这个挑战?

假设我从 wordpress 数据库中请求一页内容,它有 5,000 个字符长。目标是输出 10 个 div 或 span,每个包含 500 个字符。

提前感谢您的任何帮助。

4

1 回答 1

1

PHP为此提供了一个函数,称为'str_split()'。你可以像这样使用它:

<?php
$content = get_the_content();
$chunks = str_split($content, 500);

//Printing each chunk in a div
foreach($chunks as $chunk_content) {
    echo "<div>";
    echo $chunk_content;
    echo "</div>";
}
?>

str_split 的更多信息:http ://www.php.net/manual/en/function.str-split.php

编辑:如果单词不应该在中间被剪切,请改用这个函数:

<?php
$content = get_the_content();
$strings = wordwrap($content, 500, "{BREAK}"); //Put a {BREAK} every 500 characters
$chunks = explode("{BREAK}", $strings); //Put each segment separated by {BREAK} into an array field

//Printing each chunk in a div
foreach($chunks as $chunk_content) {
    echo "<div>";
    echo $chunk_content;
    echo "</div>";
}
?>

如果你想节省一些内存,你可以像这样组合这些函数:

<?php
foreach(explode("{BREAK}", wordwrap(get_the_content(), 500, "{BREAK}")) as $chunk) {
    echo "<div>" . $chunk . "</div>\n"; //The \n creates a new line
}
?>

有关自动换行的更多信息,请参见http://www.php.net/manual/en/function.wordwrap.php

于 2013-08-16T01:43:50.690 回答