Jump to content
Sign in to follow this  
martinszutner

a tipical run function

Recommended Posts

martinszutner

Hi, when I run

FixEncode('&#109 ;&#097 ;" onmouseover')     ;without space between numbres and semicolon

Func FixEncode($vHTML)
$resultado =StringRegExpReplace($vHTML, '\&\#([0-9]+)\;',("\1"))
ConsoleWrite( $resultado)
return ($resultado)
EndFuncoÝ÷ Ú·­º¹â¶Ø^rëyËh "{¦n·¬×OZÝ=í»­Â§!Øb+hjëh×6FixEncode('&#109 ;&#097 ;" onmouseover')

Func FixEncode($vHTML)
$resultado =StringRegExpReplace($vHTML, '\&\#([0-9]+)\;',chr("\1"))
ConsoleWrite( $resultado)
return ($resultado)
EndFunc

It don`t return nothing (should be "ma")

whait is the razon???????

Share this post


Link to post
Share on other sites
dbzfanatic
martinszutner

Why do you keep posting over and over? Post once or you will ignored.

I found this solution

Func FixEncode($vString )
While 1
    $regexp = StringRegExp($vString, '\&\#([0-9]+)\;', 1)
    If UBound($regexp) >= 1 Then
        $regexp = Chr($regexp[0])
        $vString = StringRegExpReplace($vString, '\&\#([0-9]+)\;', $regexp, 1)  
    Else
        ExitLoop
    EndIf
WEnd
return ($vstring)
EndFunc

and other note, this forum can accept UNICode Chars. For this razon I did post twice it

Share this post


Link to post
Share on other sites
dbzfanatic
Bowmore

Hi, when I run

FixEncode('&#109 ;&#097 ;" onmouseover')     ;without space between numbres and semicolon

Func FixEncode($vHTML)
$resultado =StringRegExpReplace($vHTML, '\&\#([0-9]+)\;',chr("\1"))
ConsoleWrite( $resultado)
return ($resultado)
EndFunc

It don`t return nothing (should be "ma")

whait is the razon???????

Read this post for an explanation.

Why chr("\1") will not work in StringRegExReplace()


"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Share this post


Link to post
Share on other sites
martinszutner

Read this post for an explanation.

Why chr("\1") will not work in StringRegExReplace()

I saw that, I tried to replace the \1 for $1, but that does not work

Share this post


Link to post
Share on other sites
PsaltyDS

I saw that, I tried to replace the \1 for $1, but that does not work

The difference between "\1" and $1 was not the point. The Chr() function is run before the StringRegExpReplace() gets done at all. Since your input to Chr() is a string vice an integer, it is equivalent to Chr(0) which is a null character. The substitution does actually happen, but a null character is inserted, with terminates the string at the first character when you try to display it:
FixEncode('ma" onmouseover');without space between numbres and semicolon

Func FixEncode($vHTML)
    $resultado = StringRegExpReplace($vHTML, '\&\#([0-9]+)\;', Chr("\1"))
    ConsoleWrite("@error = " & @error & "  @extended = " & @extended & @LF)
    ConsoleWrite("Lenth = " & BinaryLen($resultado) & @LF)
    ConsoleWrite("Binary = " & StringToBinary($resultado) & @LF)
    ConsoleWrite("$resultado = " & $resultado & @LF)
    Return ($resultado)
EndFunc ;==>FixEncode

I think your multiple posting was caused by trying to work around the awkward formatting on the forum, so I'm sympathetic. Try using the code tags and avoid the autoit tags, they are buggy.

;)

Edited by PsaltyDS

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.