$pattern = "/<[^<]+>/";
$flag = preg_match_all($pattern,$str,$result);
こんな感じで<>の部分を抽出しようとしてますが、「っ」や「ー」や「(」などが入ると上手く拾いません。
これ↓
http://catfrog.net/PHP/affiliate_generater.php
原因は正規表現か、そもそもpreg_match_all関数がマルチバイトに対応してないせいだと考えています。
原因および対処方法(別の関数とか)ありましたらご教示いただきたく。
pregを使いたかったらphpの内部コード、およびあつかう値をutf-8で
あつかうといかがでしょうか?
utf-8は上記のような問題はありません。
また、pregでも
preg_match('# #', $str, $match);
みたいな/を#や!に変換しても動くので試すのもいいでしょう
$strに
をかます、という手もあります
この関数だとなんか上手く行かないんですよね、、。
http://php.nohup.it/manual/ja/function.mb-ereg-match.php
日本語などの2バイト文字を扱う場合はmb関数を使った方がいいようです。
ただし、PHPのバージョンが低いとmb関数がサポートされてない場合がありますので、お気をつけ下さい。
PHP5なら使えます。
マルチバイトはいっつも苦労します、、。
pregを使いたかったらphpの内部コード、およびあつかう値をutf-8で
あつかうといかがでしょうか?
utf-8は上記のような問題はありません。
また、pregでも
preg_match('# #', $str, $match);
みたいな/を#や!に変換しても動くので試すのもいいでしょう
$strに
をかます、という手もあります
ありがとうございます。
ありがとうございます。