回答編集履歴
1
入力文字数チェックがあるのを失念していました。。。
answer
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
|
|
12
12
|
それはさておき、質問は「ユーザが入力した「文、変更する文字列、変更後の文字列」をXSS対策としてhtmlspecialchars()でエスケープして表示したい、変更後の文字列は色付けしたいのでspanタグで囲みたい、そうすると色付け用のspanタグの<>や'までエスケープされてspanタグがそのまま表示されてる。。どうしよう?」という意図と思いましたがどうでしょうか?
|
|
13
13
|
|
|
14
|
-
であれば、htmlspecialchars()のエスケープ処理を最初に持ってくればよいと思います。
|
|
14
|
+
~~であれば、htmlspecialchars()のエスケープ処理を最初に持ってくればよいと思います。~~
|
|
15
|
+
**文字数が問題なければエスケープ処理をして、その後に色付けspanタグの追加処理を行いましょう。**
|
|
15
16
|
```ここに言語を入力
|
|
16
17
|
$write = htmlspecialchars($_POST["change"], ENT_QUOTES, "UTF-8");
|
|
17
18
|
$write_before = htmlspecialchars($_POST["change_before"], ENT_QUOTES, "UTF-8");
|
|
18
19
|
$write_after = htmlspecialchars($_POST["change_after"], ENT_QUOTES, "UTF-8");
|
|
19
20
|
//以降置換処理~
|
|
20
21
|
```
|
|
21
|
-
|
|
22
22
|
エスケープ後の文字列でもstr_replace()での置換は正常に動作すると思います。問題あればまた質問下さい。
|