[25] Re3:全角文字対応substr(S-JIS専用) | |
2001/7/23 (Mon) 10:17:11 - あけび |
| 更に機能追加。
sub z_substr {
local($s,$p,$l,$o) = @_;
$s =~ s/(.)/$1\0/g;
$s =~ s/([\x81-\x9f\xe0-\xfc])\0(.)\0/$o==2?"$1$2":"$1$2\0\0"/eg;
$s = $l eq '' ? substr($s,$p*2):substr($s,$p*2,$l*2);
if ($o==1) { $s =~ s/^\0\0/ /; $s =~ s/.[^\0]$/ /;}
$s =~ tr/\0//d;
$s;
}
第4引数を2とした場合には、
全角文字を1文字として数えるようにしました。
#example
print &z_substr("全角対応substr",2,7,2);
|
|
|