質問するログイン新規登録

回答編集履歴

2

PruneMazuiさんのアドバイスより、mb_striposをstriposに修正

2015/03/24 09:03

投稿

sounisi5011
sounisi5011

スコア697

answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  $keyword_count=0;
12
12
  foreach($array as $value){
13
- if(mb_stripos($value['name'],$match_keyword,0,'UTF-8') !== false){
13
+ if(stripos($value['name'],$match_keyword) !== false){
14
14
  $keyword_count++;
15
15
  }
16
16
  }
@@ -21,16 +21,11 @@
21
21
  - 変数名を変更しました。
22
22
  - 検索する文字列を変数に入れ、扱いやすくしてみました。
23
23
  - 配列のループ処理はforeachで代用できるため、これに変更しました。
24
- - stristr()をmb_stripos()に変更しました。
24
+ - stristr()をstripos()に変更しました。
25
25
 
26
26
  [strstr()](http://php.net/manual/ja/function.strstr.php)は、文字列の検出に適していません。
27
27
  公式ドキュメントにも、以下のようにあります。
28
28
 
29
29
  > もし特定の haystack に needle があるかどうかを調べるだけの場合、 より高速でメモリ消費も少ない strpos() を代わりに使用してください。
30
30
 
31
- 公式ドキュメントの記述はこれのみですが、同じ理由で[stristr()](http://php.net/manual/ja/function.stristr.php)よりも[stripos()](http://php.net/manual/ja/function.stripos.php)が適していると考えました。
31
+ 公式ドキュメントの記述はこれのみですが、同じ理由で[stristr()](http://php.net/manual/ja/function.stristr.php)よりも[stripos()](http://php.net/manual/ja/function.stripos.php)が適していると考えました。
32
-
33
- また、検索文字列「PHP」が、実運用で日本語などのマルチバイト文字を含む場合、[マルチバイト文字列関数](http://php.net/manual/ja/ref.mbstring.php)がより適しています。
34
- このため、[stripos()](http://php.net/manual/ja/function.stripos.php)のマルチバイト文字列関数である[mb_stripos()](http://php.net/manual/ja/function.mb-stripos.php)にしています。
35
-
36
- なお、PHPを実行している文字コードは`UTF-8`としています。

1

「なお、」を追加

2015/03/24 09:03

投稿

sounisi5011
sounisi5011

スコア697

answer CHANGED
@@ -33,4 +33,4 @@
33
33
  また、検索文字列「PHP」が、実運用で日本語などのマルチバイト文字を含む場合、[マルチバイト文字列関数](http://php.net/manual/ja/ref.mbstring.php)がより適しています。
34
34
  このため、[stripos()](http://php.net/manual/ja/function.stripos.php)のマルチバイト文字列関数である[mb_stripos()](http://php.net/manual/ja/function.mb-stripos.php)にしています。
35
35
 
36
- PHPを実行している文字コードは`UTF-8`としています。
36
+ なお、PHPを実行している文字コードは`UTF-8`としています。