戻る

文字列を指定位置でワードラップする(参考)

PHP

wordwrap()関数は、基本的にはchunksplit()関数と同じ動作をします。長い文字列を指定の位置で区切って、複数行にします。

この関数では第1引数に「もとの文字列」、第2引数に「分割する位置」(バイト単位)、第3引数に「区切り文字」を指定します。さらに第4引数で「単語を分割するかどうか」のオプションを指定します。第4引数で「1」などの適当な数値を指定するとオプションが有効になります。全角文字を含む文字の場合には、このオプションを有効にしないとうまく分割されません(全角の単語を解釈して分割してくるわけではありません)。

全角文字を含む文字列では、chunk_split()関数とまったく同じ結果になります。wordwrap()関数の効果があるのは、半角文字から構成される英文に対して使う場合です。chunk_split()関数では"単語"を無視して機械的に指定位置で分割しますが、wordwrap()関数では1つの単語が途切れない位置で分割します。

<?php
header("Content-type: text/html; charset=utf-8");

//全角文字の例
$data = "PHPは、Webデータベースアプリケーション用の開発言語として" .
		"多く用いられています。これは、PHPがさまざまなデータベース" .
		"エンジンとの連携が得意だからです。";
		
//90バイト(全角30文字)ごとに分割してpreタグで出力
echo "<pre>";
echo wordwrap($data, 90, "\n", 1);
echo "</pre>";

//90バイト(全角30文字)ごとにbrタグで分割して出力
echo wordwrap($data, 90, "<br>", 1) . "<br><br>";

//半角文字の例
$data = "PHP is a widely-used general-purpose scripting ".
		"language that is especially suited for Web " .
		"development and can be embeded into HTML.";
		
//chunk_split()関数で分割
echo chunk_split($data, 40, "<br>") . "<br>";

//wordwrap()関数に単語分割オプションを指定して分割
echo wordwrap($data, 40, "<br>", 1) . "<br>";
?>

inserted by FC2 system