PHPの半角スペースにつきまして

例えば、手入力で
$test="あああ いいい ううう"; と入力して
$test=str_replace(" ","",$test); 
str_replace関数で半角スペースを消すと、
半角スペースが消えて、"あああいいいううう"になります。

しかし、
$array=array('あああ','いいい','ううう');
$array=implode( "|", $array); →繋げて「あああ |いいい |ううう」になります。
文字の右にある半角スペースを消そうとします。↓
$array=str_replace(" ","",$array); 
消えません!「あああ |いいい |ううう」のままです。

なぜこんな事をするのかと言いますと、
正規表現のパターンで「|」という選択のメタ文字を使いたいからです。
余計な半角スペースがあると、正規表現がダメになってしまいます。
解決法をご教授頂けないでしょうか??

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/11/23 10:15:18
  • 終了:2011/11/23 19:38:55

回答(2件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/11/23 10:24:09

ポイント50pt

>$array=implode( "|", $array); →繋げて「あああ |いいい |ううう」になります。

ならないですよ
もしかして半角の|ではなくて全角の|をimplodeしてませんか?

半角
あああ|いいい|ううう
全角
あああ|いいい|ううう
id:ty2016

MySQLから取り出してunserializeした配列の要素の右側に、
なぜか半角スペースがあったのが原因でした。
foreachで一個ずつrtrimで除去させたら解決しました。
この度はありがとうございました。

2011/11/23 19:37:29
id:kodairabase No.2

kodairabase回答回数661ベストアンサー獲得回数802011/11/23 10:25:30

ポイント50pt

文字コードをUTF-8にてみてください。

id:ty2016

MySQLから取り出してunserializeした配列の要素の右側に、
なぜか半角スペースがあったのが原因でした。
foreachで一個ずつrtrimで除去させたら解決しました。
この度はありがとうございました。

2011/11/23 19:37:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません