Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] есьт ли скриптик замены entities ? (http://forum.oszone.net/showthread.php?t=134486)

proxy 12-03-2009 03:16 1061200

есьт ли скриптик замены entities ?
 
Подскажите, а есьт ли скриптик замены entities и подобного, к примеру:
PHP код:

▬ 

на ▬
PHP код:

&nbsp

на пробел
PHP код:



на знак !

решение такое навоялось...
Код:

Func _Replace_Entities($sString)
    Local $aTemp
    $aTemp
= StringRegExp($sString, '.*&#(\d+);.*', 3)
    If IsArray($aTemp) Then
        For
$n=0 To UBound($aTemp[0] & '=' & ChrW($aTemp[$n]))
            $sString = StringReplace($sString, '&#' & $aTemp[$n] & ';', ChrW($aTemp[$n]))
        Next
    EndIf

    $sString = StringReplace($sString, ' ', ' ')
    $sString = StringReplace($sString, '"', '"')
    $sString = StringReplace($sString, '&lt;', '<')
    $sString = StringReplace($sString, '&gt;', '>')
    $sString = StringReplace($sString, '&amp;', '&')
    Return $sString
EndFunc

но ChrW обрабатывает только от 0 до 255, как быть если Chrw значение 9644?

вот тут и в других таких же:
StringReplace($sString, '&', '&')

вместо 1-го апперсанта необходимо вставить:
PHP код:

&amp

другие:
PHP код:

&nbsp;
&
quot;
&
lt;
&
gt;
&
amp


amel27 13-03-2009 16:40 1062841

Цитата:

Цитата proxy
скриптик замены entities и подобного»

Ничего не понял, а главное - что такое "entities"?.. "объекты", "сущности", "вещи" или "примитивы"?.. Без этого не понять, что такое "подобное" :)
В каком контексте возник вопрос?

proxy 13-03-2009 18:11 1062908

"entities" это вот это - тут есть список 24.2.1 The list of characters
- и пошло:
iexcl
cent
pound
curren
yen
brvbar
sect
uml
... и т.д.

все эти замечательный обозначения подразумевают обычный ASCII код:
iexcl = "& # 161;"
cent = "& # 162;"
... и т.д.

все эти прелести используются в HTML, что бы в данных от пользователя не закрались
не нужные скрипты, и с базой наилучшая совместимость....

скриптом выше заменил все возможные обычные вхожения: "& # 161;",
а вот подоное переписывать, для всех 96 штук entities, было лень: $sString = StringReplace($sString, '&', '&')
(вместо 1-го апперсанта необходимо вставить: " & amp; ")

- может уже было решение..?

+ ChrW обрабатывает только от 0 до 255, как быть если юникод 9644 ?

amel27 15-03-2009 17:13 1064609

Цитата:

Цитата proxy
ChrW обрабатывает только от 0 до 255 »

судя по справке до 65535... :dont-know
Код:

MsgBox(0, "", ChrW(9644))

proxy 15-03-2009 20:38 1064833

кстати, да!
забыл закрыть тему, все отлично определятеся и заменяется!
конечно # & amp; - вот такие вот все так же вручную )))


Время: 19:38.

Время: 19:38.
© OSzone.net 2001-