[スレッド全体]

[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);

[▼次のスレッド]
INCM/CMT
Cyclamen v3.84.01