• ベストアンサー

タグの置き換え

phpで掲示板を制作してるのですが、テキストエリア内に<a>のタグだけを許可してるのですが、このとき、</a>で閉じずに登録されると、今までのがすべてリンクになってしまいます。 そこでstrposを使用して、</a>があるか判定して、あれば文字列に付け足すという形を作ってやってみたのですが、うまく動作しません。 どなたか助けてください。 あと、<font size>の数値の範囲を指定したいのですがどうすればいいでしょうか?

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

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> </a>があるか判定して、あれば文字列に付け足す 以下ではどうでしょうか? <?php $subject = '<a href="/">abcdef'; $pattern0 = '/<a.*?>/'; $pattern1 = '/<a.*?>.*<\/a>/'; if (preg_match($pattern0, $subject)){ if (!preg_match($pattern1, $subject)){ $subject.='</a>'; } } print($subject); ?> >> あと、<font size>の数値の範囲を指定したいのですが 少々面倒なので手順の説明だけ 1.正規表現で、<font size>の存在確認をする 2.正規表現で、<font size>の数値を抜き取る 3.抜き取った数値を所定範囲内の値か確認する 4.値が異なれば、正しい数値の<font size> に置換する。