• ベストアンサー

1文字ごとに改行

1文字ごとに改行を入れたいのですがどうすれば良いのでしょうか。 $str = "abcあいうえお"; これを1文字ずつ改行を入れ 縦書表示させたいのですがどうすれば良いのか分かりません。 mb_strlenで文字数を調べても8とは表示されないし… 1文字ずつ改行を入れるにはどのようにすれば良いのでしょうか よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

文字コードがUTF-8ならできます。 <? mb_internal_encoding("UTF-8"); mb_regex_encoding("UTF-8"); $str = "abcあいうえお"; $str=preg_replace("/./u","$0<br>\n",$str); print $str; ?>

oosaka2000
質問者

補足

ありがとうございます! ちなみに、preg_replaceの$0はどういう意味なのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>preg_replaceの$0 ヒットした文字列です。 この場合だと、「a」「b」「c」・・・・とそれぞれを 変換するという意味ですね。 詳しくはマニュアルをどうぞ。

参考URL:
http://www.php.net/manual/ja/book.pcre.php
oosaka2000
質問者

お礼

ありがとうございます マニュアルも見てもっと勉強します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • [PHP]formのtextareaの改行を消せない

    [PHP]formのtextareaの改行を消せない formのtextareaに改行して数行のデータを入れ、それを改行毎にexplodeで分けて居るのですが、1個1個のデータから改行の情報が消えません。 textareaに 1234 2345 3456 $data=explode("\n",$_POST[textarea]) で、dataに配列として入れて、 echo $data[0] . "," . $data[1] . "," . $data[2]; と表示させてみると、 1234 ,2345 ,3456 と4ケタの数字のあとに半角スペースが入ります。 HTMLソースで見ると改行されているようです。 str_replace("\n","",$data[0]) とやっても、消えません。 この改行(半角スペース)があるため、 if (mb_strlen($data[0])==4) で、Trueにならなくて困っています。 if (mb_strlen($data[0])==4 or mb_strlen($data[0])==5) とすることで解決は出来るのですが、そのほかでも使用したいので、出来れば最初からこの改行(半角スペース)を消したいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字列関数をうまく表示させたい

    今、文字列関数をしています。参考書通りにしたのですが、ブラウザでは思い通りに表示されません。 <?php $str = "PHPの絵本"; $length = strlen($str); ?> を表示させたいのですが、 <?php $str = "PHPの絵本"; $length = strlen($str); print $length; ?> で良いのではと思って、ブラウザで表示させたのですが、参考書では 「9」が表示されるみたいなのですが、「12」が表示されます。 さらに <?php $str = "PHPの絵本"; $length = mb_strlen($str); ?> も表記させたいのですが、同様に <?php $str = "PHPの絵本"; $length = mb_strlen($str); print $length; ?> と書きこんだのですが、参考書では「6」が出るみたいのなのですが 自分のブラウザでは「12」が表示されます。どうしてなのでしょうか?

    • 締切済み
    • PHP
  • 改行を読み飛ばす

    以下のようなファイルを読み込みたいのですが…. -------------------------------------------------- あいうえを かきくけこ さしすせそ たちつてと -------------------------------------------------- のように1行文字列があって,1行空白行(改行のみ)があって…のような繰り返しのファイルなんですが,空白行を読み飛ばして続けて -------------------------------------------------- あいうえお かきくけこ さしすせそ たちつてと -------------------------------------------------- のように表示させる場合はどのように書いたらよいですか? -------------------------------------------------- while(fgets(str,256,fpin)){   if(strcmp(str,"\n")!=0){    printf("%s\n",str);   } } -------------------------------------------------- と書いたのですが,空白行も表示されてしまいます. 何か間違えているでしょうか? それとも実はファイルの空白行は改行じゃないとかでしょうか?

  • 改行文字を消す方法を教えて頂けませんか。

    こんにちは。 C言語で、改行まで文字列として格納した変数から、改行のみを削除する事は可能でしょうか。構想としては、 char *str = "text改行" ↓ 改行部分を削除 ↓ str == "text" になるのがベストです。 良い方法をご存知であれば教えて頂けないでしょうか。どうぞよろしくお願いします。

  • C言語の標準入力で改行しない方法

    端末で入力を受けて、改行せずに次の表示を行いたいのですが、 char str[32]; printf("ほげほげ"); fgets(str, sizeof(str), stdin); str[strlen(str) - 1] = '\0'; printf("ホゲホゲ"); とすれば 「ほげほげ (入力した内容) ホゲホゲ」 と表示できると考えましたが、これでは改行されて 「ほげほげ (入力した内容) ホゲホゲ」 になってしまいます。原因がわかりません… 使用している環境は Linux Ubuntu 10.10 で gcc でコンパイルしています。 改行しない方法を説明しているサイトのサンプルをコピペして実行してみても、改行されてしまいました…

  • 改行させずに文字配列を出力させる関数

    改行させずに文字配列を出力させる関数は、printf以外にありますか? printf("Hello world!!"); //改行せずに出力 char str[]="Hello world!!"; puts(str); //改行されて出力 出力の最後に自動的に改行文字を追加しないで、文字配列を表示する標準関数って、printf以外にありますか? もしくは、改行されない関数が必要な場合は自作するしかありませんか?

  • 文字列を一定文字数で挿入もしくは、改行。

    文字列を一定文字数で挿入もしくは、改行する方法、 関数はあるでしょうか? たとえば、 あめんぼ、赤いなあいうえお を8文字ずつで改行したいのですが、 方法が分かりません。 あめんぼ、赤いな あいうえお 最初は、mb_substrで改行する文字を調べて 改行タグを入れれば、とたかをくくっていた んですが、同じ文字を入力されていたら、変な 所で改行されてしまうと、気がつきました。^^; 「あ=><br>あ」にすると、一文字目の”あ”も 指定されてしまって。 改行するデータは、常に変わり予想はできません。 FORMからの入力を想定しているので、最悪 <textarea wrap="hard">で送信時に強制改行しても いいかなーとは、思っていますが、PHPで処理できるで しょうか?

    • ベストアンサー
    • PHP
  • VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可

    VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可能でしょうか? Label5.***文字数指定*** のようなコードがあれば助かるのですが、 どなたかご存知でしたら教えてください。 よろしくお願いいたします。 Label5.text="あいうえおかきくけこ" 【表示】 あいうえお かきくけこ

  • fputで出力した文字列を改行するには?

    PHP初心者です。 いくつかの文字列変数をテキストファイルに書き出す処理を行いたいのですが、うまく動作してくれません。 文字列変数 $str_a, $str_b, $str_cをカンマで区切ってテキスト1行でファイルに書き出しています。 $str = $str_a . ',' . $str_b . ',' . $str_c . '\\r\\n'; fputs($fp, $str); 上の2行がループで数回呼ばれた後、ファイルをクローズしているのですが、実際に作成されたテキストファイルを見ると a1,b1,c1\r\na2,b2,c2\r\n....みたいに改行が入らず"\r\n"という文字列があるだけです。希望しているのは a1,b1,c1 <-ここで改行 a2,b2,c2 <-ここも改行 という結果なのですが.... よろしくご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 小文字のみを数える方法

    小文字のみを表示させるプログラミングがいくらやってもできません。範囲指定をどこですれば良いのかわからず、全部の文字数をカウントしてしまいます。 ご指摘お願いします。 #include <stdio.h> #include <string.h> int main(void) { char str[256]; int a; printf("大文字と小文字をランダムに入力\n"); gets(str); printf("小文字の数は%dです\n",strlen(str),a); return(0); }