Perlでは簡単にできたのに、これが意外と難しい。

Perl (オプション g は繰り返しの意味)

 @colors = ('#FFFFFF', '#000000');
 $line = '%1';
 $line =~ s/%(\d)/color:$colors[$1]/g;
 print "Content-type: text/html\n\n$line";

PHP

 $colors = array('#FFFFFF', '#000000');
 $line = '%1';
 $line = preg_replace("/%(\d)/", "'color:'.replace_color($1)", $line);
 $line = preg_replace("/%(\d)/e", "'color:'.replace_color($1)", $line);
 echo $line;
 
 function replace_color($key)
 {
    global $colors;
 
    return $colors[$key];
 }

結果はいずれも
 color:#000000

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS