0

テキスト文字列 (Wordpress の投稿やページなどの mysql データベースから) を取得し、テキストを 500 文字 (またはその他の文字数) のセクションに分割し、500 文字の各セクションをラップして出力するための最良の方法は何ですか?独自のdivコンテナで?

PHP は初めてなので、文字数に基づいてコンテンツをセグメント化する方法がわかりません。以下を使用して文字数を取得できます。

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

しかし、それは私の知る限りです。誰かがこの挑戦で私を助けることができますか?

wordpress データベースからコンテンツのページをリクエストしていて、それが 5,000 文字だったとしましょう。目標は、それぞれが 500 文字を含む 10 個の div またはスパンを出力することです。

よろしくお願いいたします。

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
}
?>

wordwrap の詳細については、http: //www.php.net/manual/en/function.wordwrap.php を参照してください。

于 2013-08-16T01:43:50.690 に答える