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)/e", "'color:'.replace_color($1)", $line); echo $line; function replace_color($key) { global $colors; return $colors[$key]; } 結果はいずれも color:#000000 |