- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
function ReplaceHTMLSpec(First, Last, Text, RepTo, RepEd:string):string;
var
P:Integer;
Temp:string;
begin
Temp:='';
while True do
begin
P:=AnsiPos(First, Text); // нашли первое вхождение тега...
if P =0 then Break;
begin
Delete(Text, P, Length(First)); // обработали тег...
Insert(RepTo, Text, P);
P:=PosEx(Last,Text,P); // ищем вхождение закрывающего тега...
if P > 0 then
begin
Delete(Text, P, Length(Last)); // обработали тег.
Insert(RepEd, Text, P);
end;
end;
end;
Result:=text;
end;
function DecorateText(S:string):string;
var
Temp:string;
begin
Result:=s;
{замена некоторых распространенных тегов}
Result:=StringReplace(Result,'<br />','',[rfreplaceall]); // движок не режет переводы строк, нет необходимости заменять <br> на #13#10.
Result:=StringReplace(Result,'"','"',[rfreplaceall]);
Result:=StringReplace(Result,'&','&',[rfreplaceall]);
Result:=StringReplace(Result,'<','<',[rfreplaceall]);
Result:=StringReplace(Result,'>','>',[rfreplaceall]);
Result:=StringReplace(Result,'<i>','[i]',[rfreplaceall]);
Result:=StringReplace(Result,'</i>','[/i]',[rfreplaceall]);
Result:=StringReplace(Result,'<b>','[b]',[rfreplaceall]);
Result:=StringReplace(Result,'</b>','[/b]',[rfreplaceall]);
Temp:='';
Result:=ReplaceHTMLSpec('<span style="color:white;">','</span>',Result,'[color=white]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:red;">','</span>',Result,'[color=red]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:blue;">','</span>', Result, '[color=blue]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:green;">','</span>',Result,'[color=green]','[/color]');
Result:=ReplaceHTMLSpec('<pre><code class="">','</code></pre>',Result,'[code]','[/code]');
Result:=ReplaceHTMLSpec('<span style="font-size:10px;">','</span>',Result,'[size=10]','[/size]');
Result:=ReplaceHTMLSpec('<span style="font-size:15px;">','</span>',Result,'[size=15]','[/size]');
Result:=ReplaceHTMLSpec('<span style="font-size:20px;">','</span>',Result,'[size=20]','[/size]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:underline;">','</span>',Result,'[u]','[/u]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:line-through;">','</span>',Result,'[s]','[/s]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:blink;">','</span>',Result,'[blink]','[/blink]');
end;
Процедура для замены HTML-тегов на bb-codes, для их корректной обработки движком сайта,
при копировании/перепостинге комментария флудером.
KPblCA 13.01.2024 21:05 # 0