• ベストアンサー

CGIからPHPへの書き換え

すいません、今PHPを勉強中なんですが、 <!--HTML--> if($Slog[2]){ $Slog[2] =~ s/>/>/g; $Slog[2] =~ s/</</g; print<<"<!--HTML-->"; <tr id=log-10> <td><font id=kei>$Slog[2]</font></td> </tr> <!--HTML--> をPHPに書き直すとどうなるんでしょうか? 自分で何度か試したんですが上手くいきません。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

PHPでPerlの正規表現を使えます。 $Slog[2] = preg_replace("s/>/&gt;/g", $Slog[2]); $Slog[2] = preg_replace("s/>/&lt;/g", $Slog[2]); かな。

参考URL:
http://www.php.gr.jp/
sabada
質問者

補足

レスありがとうございます。 難しいですね。 例えば、私が上げたものを単純にphp化した場合はどうなるんでしょうか? <?php if($Slog[2]){ ?> $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; <tr id=log-10> としてみたんですが、 "$Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g;" がページに出てしまい上手くいきません。 記述の方法が間違っているんでしょうか?

その他の回答 (2)

回答No.3

>画面が真っ白になり駄目みたいです。 何も出力していないからでは。 printなりechoなりで、 画面に出力しないと。

sabada
質問者

補足

書き方が間違っているんですね。 具体的にはどう書けばよいんでしょうか?

回答No.2

phpの文として解釈されるのは <?php から ?> の間までの記述です。 よって <?php if($Slog[2]){ ?> $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; では、最後の文はそのまま出力されます。

sabada
質問者

補足

レスありがとうございます。 <?php if($Slog[2]){ $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; ?> や <?php if($Slog[2]){ ?> <?php $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; ?> ともして見たんですがこれだと、画面が真っ白になり駄目みたいです。何が間違っているんでしょうか?

関連するQ&A