• ベストアンサー

【初歩?】スペース区切り文字列を「」で括り書き出し

$val = "キー1 キー2 キー3"; //を、「キー1」「キー2」「キー3」という風に、 //全角括弧「」でくくって書き出す関数はありますか。 //ただし、スペースは全角の場合と半角の場合あります。 //苦し紛れに、 echo implode("「", $word, "」"); //みたいなことをしてみましたが、エラーです。。。

  • PHP
  • 回答数2
  • ありがとう数2

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

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

たとえばこんな感じ <?PHP $val = "キー1 キー2 キー3"; $pattern="/[  ]+/u"; //utf8が前提 foreach(preg_split($pattern,$val) as $v){ print "「".$v."」"; } ?>

litton101
質問者

お礼

yamabejpさん、早速コードでお示しいただき恐縮です。 たとえばどころか、そのまま適用できてしまいました。。。 想像以上に複雑で、勉強が足りませんね、、、 大変ありがとうございました。

その他の回答 (1)

回答No.1

そんな妙な関数は存在するわけありません。 スペースで切って配列にして 」「 でつないで前後に 「 と 」 をつければ?

litton101
質問者

お礼

play_with_youさん、コメントありがとうございました。 お見苦しい関数を示して失礼しました。考え方参考にさせていただきます。 (配列の扱いとforeachの使いこなしがどうしても理解が浅く。。。スミマセン)

関連するQ&A

  • splitを使ってスペース位置で文字列を区切りたい

    splitを使ってスペース位置で文字列を区切りたいのですが、 String[] word = str.split(" ",0);  //半角空白 のように書くと、全角スペースは区切りとしてみなされず、 String[] word = str.split(" ",0);  //全角空白 のように書くと、半角スペースは区切りとしてみなしてくれません。 全角スペースでも半角スペースでも、スペース位置で文字列を区切りたいのですが、どのように書けばよいのでしょうか?

    • ベストアンサー
    • Java
  • ワード2007でのスペースの入力について

    毎度お世話になります。 Windows Vistaでワード2007を初めて使ってみました。まったく初歩的な質問で申し訳ありません。 スペースキーで空白を入れると、全角のスペースを続けて入れることが出来ません。 半角と全角が交互に入力されます。 全角のスペースだけを入れる場合はどうしたらいいのでしょうか。 教えてください。宜しくお願いします。

  • Word2007で半角スペースが打てない

    今まではWord2003を使っていて、 最近になってWord2007に切り替えたのですが、 今までのように半角スペースが打てずに困っています。 入力モードを切り替えても、shift+spaceキーでも半角じゃなく、 全角スペースになってしまいます。 キー操作はMicrosoft IMEになっているのですが、 細かい設定とかは今までしたことがありません。 どうしたら半角スペースを打てるのか、ご存知の方教えて下さい。

  • ワードで1/4スペース

    Word2000を使っています。 検索と置換の特殊文字の中に「1/4スペース」とありますが、文字入力中に簡単に1/4スペースは表示できるのでしょうか? 例えば、全角スペースならスペースキー、 半角スペースならシフト+スペースキーのように。 よろしくお願いします。

  • Wordでスペースを押すと『□』が出る。

    Wordで(日本語・全角入力の時)スペースキーを押すと『□』が出てしまいます。 半角の場合は『・』が出ます。 とくに支障があるわけではないのですが、邪魔です。なので消す方法を教えてください。

  • 文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結

    文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結果? 下記コードのように「文字列に半角・全角スペースが入っているかをチェックする関数」を作りました。 $textに入る文字列に半角・全角のスペースが入っているかをチェックします。 -------------------------------------------- my $text = "東 京"; if( isSpace($text) ) {   print "スペースあり"; } else {   print "スペースなし"; } sub isSpace{   my $str = shift || return(undef);   if( $str =~ /.*[\s ]+.*/ ){     return(1);   }else{     return(0);   } } -------------------------------------------- しかしなぜか1行目を my $text = "メ"; とするとスペースが入っているという結果になってしまいます。 なぜ「メ」が入ると半角もしくは全角のスペースとみなされてしまうのでしょうか? また、どうすれば正しくチェックできるようになりますか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • スペースをなくしたい

    例えば 高 橋  一 朗 のスペースを関数でなくしたいのですが どうすればいいですか? SUBSUTITUTE ではどうすればいいですか? 全角、半角が混合している場合はどうすればいいですか?

  • エクセル関数で文字列の中のスペースの有無を調べたい。

    エクセル関数について教えてください。 全てが半角のはずの文字列・A1セルについて、下記について調べたいです。 1.同列(A列)の他のセルに入力されている文字列とのダブリチェック(同じ文字列がないかの確認)     *ダブリがある場合"ダブリ"表示 2.A1の文字列中のスペースの有無        *スペースがある場合"スペース"表示 3.A1の文字列中に全角が混ざっていないか      *全角がある場合"全角"表示 1.については、 =IF(COUNTIF(A:A,A1)>=2,"ダブリ","") の関数を使用してチェックが出来ると思うのですが、 2.については、関数TRIM 及び 置換での削除方法、3.については、 関数ASC での半角変換 しか手段が見つかりませんでした。 上記のものをマクロを組んでいる中に組み込みたいので、出来れば、上記3つの結果をひとつのセル(C1)に表示させたいのですが、可能でしょうか? *A1セルに上記3つが当てはまる場合、C1セルに "ダブリスペース全角" と表示させたい。 どれについて引っかかっているのかがわかればいいので、記号などに置き換えてもかまいません。 可能な限り調べては見たのですが、私の知識ではどうにもなりませんでした。 もし、いい案などがあればご紹介してください。 宜しくお願いいたします。

  • 全角スペースの打ち方が分からない

    OSは、FedoraCore1です。 viエディタで、日本語を打っているのですが。 全角スペースが打てません。 スペースキーを打っても、半角にしかなりません。 もちろん、半角スペースを変換して全角になるわけもなく。 何か特殊な打ち方があるのでしょうか?

  • 文字列の置き換えについて

    下記のようなテキストファイルを読み込みます。 【お名前】 {@name} 【フリガナ】 {@kana} 【年齢】 {@age} そしてphpでこのようにしました。 $test = array( 'name' => '名前太郎', 'kana' => 'ナマエタロウ', ); $file = 'body.txt'; $body = file_get_contents($file); foreach ($test as $key => $val) { if ( is_array( $val ) ) { foreach ( $val as $val2 ) { $body = preg_replace( "/{@$key}/u", implode(',', $val), $body ); } } else { $body = preg_replace( "/{@$key}/u", $val, $body ); } } echo $body; 結果は、@nameと@kanaは配列にある通りの文字列に変わりますが@ageは そのまま表示されてしまいます。 $testの配列で該当するパターンがない場合には@hogeの値を空白にしたいのですが どうすればいいでしょうか? foreachを$testで行っているのでループ内ではできないような気がしています。 いい方法があれば教えてください!

    • ベストアンサー
    • PHP