FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PHPでマルチバイト対応のstr_replaceを使う方法

PHPでは正規表現にマッチした文字列を、指定した文字列に置換するstr_replaceという関数がありますが、マルチバイトに対応していないため意図しない箇所も引っかかってしまう(または引っかからない)ということが起きる場合があります。
ドコモやauの絵文字は、SJISの外字エリアに入っているのでこの問題が顕著になります。

そこでいい方法が無いか探したところ、ネイティブな関数ではなく自分で実装する方法を書いているページがありましたので紹介したいと思います。

mb_str_replace (mb_replace) - fetus

  1. /**  
  2.  * マルチバイト対応 str_replace  
  3.  *   
  4.  * @param   mixed   $search     検索文字列  
  5.  * @param   mixed   $replace    置換文字列  
  6.  * @param   mixed   $subject    対象文字列  
  7.  * @param   string  $encoding   文字列のエンコーディング(省略: 内部エンコーディング)  
  8.  *  
  9.  * @return  mixed   subject 内の search を replace で置き換えた文字列  
  10.  *  
  11.  * @note    この関数は配列に対応(search, replace, subject)しています。  
  12.  */  
  13. function mb_str_replace($search$replace$subject$encoding = 'auto') { ... }   

実際にドコモの絵文字変換に使ってみましたが、きちんと置換されました。絵文字の置換にお困りの方は使ってみるとよいかもしれません。

コメントの投稿

非公開コメント

パネェ画ブログパーツ
相合傘ブログパーツ
プロフィール

ぱんぱんいないなー

Author:ぱんぱんいないなー

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。