phpで不要な空白を消す
マニュアル的なことは、書かないようにしていました。
それは、理由がありました。
マニュアルは、オフィシャルなページをみるのがいいからです。
それと、どんなプログラム(レベル)のプログラムを開発しているか、それによるセキュリティーが不安だったからです。
それでも、自分が困ったときは、色々なサイトを閲覧して問題を解決してきました。
なので、恩返しの意味で自分の経験程度なら記事にしても良いかなと思い直しました。
さて、不要な空白を消したくなりました。
現在のパーツのパルカ本店で使用しているデータに対応純正品番というものがあります。
その品番は、123 456 78 90ようになフォーマットが多く存在します。
データ自体は、検索対応で
123 456 78 90(1234567890)
098 765 43 21 (0987654321)
に登録されています。
このデータをメタキーワードにしたいと考えました。
それには、
123 456 78 90,1234567890,098 765 43 21,0987654321
そこで僕は、こんな風なロジックにしました。
まず、
改行の処理です。
データの区切りとして改行を使っていますので、改行コードを「,」に置き換えます。
$hinban = str_replace("\r\n","-",$hinban );
$hinban = str_replace("\r" ,"-",$hinban );
$hinban = str_replace("\n" ,"-",$hinban );
これで改行を「-」にできました。
次に()の処理です。
「(」と「)」はデータの始まりを意味していましたので、
これも「,」すべきです。
$hinban = str_replace(")","-",$hinban );
$hinban = str_replace("(","-",$hinban );
結果は、
123 456 78 90-1234567890-- 098 765 43 21 -0987654321-
希望は、
123 456 78 90,1234567890,098 765 43 21,0987654321
です。
まだだめですね。
$hinbanarr = explode("-",$hinban);
で-で区切った配列にします。
そして、
foreach($hinbanarr as $ind->$val){
$val= trim($val);
if(strlen($val)){
$metakeyword .= "," . $val;
}
}
やっと出てきました。空白削除が!
$val= trim($val);
です。
trimは、前後の空白を削除します。
「 098 765 43 21 」を
「098 765 43 21」 にしてくれます。
「 」は、「」にしれくれます。
なので、
$val= trim($val);
if(strlen($val)){
$metakeyword .= "," . $val;
}
で無駄な配列要素は入れないようにできました。
お役に立てればうれしいです。