[PHP-users 19355]Re: 正規表現置換について

ISIGE, Akira xia @ silvia.com
2003年 12月 16日 (火) 13:55:11 JST


いしげ です.

On 2003/12/16 13:38:24 JST,
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp> wrote:

> 基本的なことだと思うのですが、ちょっと効率の良い方法が思いつかないので、
> アドバイスをいただければと思います。
> [[title:utl]] という文字列を <a href="url">title</a> に置換したいと思い
> ます。

「効率」というのが「手数の多さ」なら,

<?php
  $html = preg_replace_callback( '/\[\[(.+):(.+)\]\]/', 'makeLink', '[[title:url]]' );
  function makeLink( $m ){
    return '<a href="'. rawurlencode($match[2]). '">'. htmlspecialchars($match[1]). '</a>';
  }
?>

とかでしょうか.
余計に見づらいし,遅そうですが(笑)

ところで \2 を rawurlencode に食わすと,
GET 引数の区切り & や ? も %xx にされちゃって,
面倒が起こりそうな場合がある気がします.


--
ISIGE, Akira



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