[PHP-users 21421]Re: 一時的な解決をしました。

komura komura @ ma9.seikyou.ne.jp
2004年 4月 21日 (水) 00:13:52 JST


komura です。

On Tue, 20 Apr 2004 15:13:58 +0900
Matsuoka Toshimasa <matsuoka @ shanghai-q.co.jp> wrote:

> //	16進数のHTML数値実体を10進数のHTML数値実体に変換する
> function hex2digit_numericentity($str)
> {
> 	while(ereg("(&#x([0-9a-fA-F]+);)", $str, $regs)) {
> 		$str = str_replace($regs[1], "&#".hexdec($regs[2]).";", $str);
> 	}
> 	return $str;
> }
> 
> 巨大な文字列だと、最悪な速度になる予感がします。


長い文字列の場合、以下のように preg_replace() を使用すると速くなると思います。

return preg_replace( '/&#x([0-9a-fA-F]+);/e', '"&#" . hexdec( "\\1" ) . ";"', $str );

-- 
komura <komura @ ma9.seikyou.ne.jp>


PHP-users メーリングリストの案内