人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: ty2016
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●50ポイント

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

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

半角
あああ|いいい|ううう
全角
あああ|いいい|ううう

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

2 ● kodairabase
●50ポイント

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


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

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ