0

いくつかの特殊文字、具体的には引用符( "、')以上、角かっこよりも小さい..(<、>)を含む長い文字列があり、HTMLを台無しにしています。

自分の関数を書くのに多くの時間を費やす前に、これらのすべての出現箇所を同等のASCII(&gt;、&lt;など)に置き換える簡単な方法があるかどうか疑問に思いました。私は正規表現でひどいです:/

ご回答ありがとうございます。

4

3 に答える 3

4

あなたはhtmlspecialcharsを探していると思います。

この関数は、すべてのhtml文字を同等のhtmlエンティティに置き換えます。

元:

<?php
$before="<code>";
$after=htmlspecialchars($before);
echo $after; //&lt;code&gt;
?>

一重引用符も置き換える場合は、必ず2番目の引数としてENT_QUOTESを使用してください。

于 2012-12-08T03:46:49.800 に答える
2

正確に必要なものに応じて、利用可能ですhtmlentities()htmlspecialchars()あなたが壊したいだけなら,<そして>、あなたはすることができます

$new_str = htmlspecialchars($str, ENT_NOQUOTES);
于 2012-12-08T03:51:26.303 に答える
1

phpのstr_replace関数を使用できます。http://php.net/manual/en/function.str-replace.phpでphpマニュアルを確認してください。

$text = str_replace('<', '', $text);

このコードは、$ textを空の文字列に置き換えることにより、より少ない記号を削除します。

ただし、preg_replace()を使用して正規表現アプローチを検討することを強くお勧めします。それはより速く、はるかに強力です。

于 2012-12-08T03:50:20.873 に答える