[CF] Regex bug, oplossing?

Pagina: 1
Acties:

  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 27-08 11:17

Defspace

Administrator

Topicstarter
Ik zit een beetje met het volgende.

Zoals alle Coldfusioners hier wel weten(denk ik) zit er een probleem in de regex functies van CF5 die ervoor zorgt dat je input string niet groter mag zijn dan 15000-20000 bytes.

Ik vraag me af of er iemand is die weet of hier een update voor is uitgebracht. Ik heb zelf namelijk niets kunnen vinden bij macromedia.

Zit deze bug ook nog in MX ?

Als die er dus niet is, zit ik met een probleem.
Ik kan mijn strings wel gaan splitsen in delen van zeg maar 10KB maar dan zit ik ermee dat als er een ubb begin tag is op zeg maar 9600 bytes en er een ubb end tag zit op 10500 bytes deze niet worden gedaan omdat die regex kijkt of hij wel is afgesloten.

Zijn er handige tips om dit wel goed te kunnen doen.
Zoeken naar begin tag, offset onthouden en die stukjes handmatig doen is een idee, maar ik ben bang dat mijn functies dan behoorlijk inefficient worden en dus (veel) meer capaciteit van de server gaan vragen ?

Heeft er misschien iemand al een oplossing voor dit probleem ?

Bedankt alvast.

  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 27-08 11:17

Defspace

Administrator

Topicstarter
Nou ja, ik heb het nu maar op de volgende manier opgelost.
2 x een regex dus. Ik denk namelijk dat dat sneller is dan los te gaan zoeken.
Als er nog iemand ideeen heeft dan hoor ik die graag.

[edit]

buggy code verwijderd.

[edit]
code weer toegevoegd.
Dit is nu de functie die ik gemaakt heb om dit probleem te omzeilen. Als iemand betere ideeen of functies heeft, dan hoor ik dat graag.
Ik split hem nu idd al op 2KB omdat ik als ik hem op 4KB zette al Bad regular expression meldingen kreeg (in een gewoon stukje tekst nog wel). Dit lijkt in ieder geval te werken.
code:
1
2
3
4
5
6
7
8
9
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
function check2(string, type, length, html)
{
    var str     = "";
    var pre     = "";
    var endstr  = "";
    var strlen  = len(string);
    var offset  = 1;
    var count   = 2000;
    var counter = 1;
    
    if (strlen GT count)
        {
        writeoutput('Debug: Greater then');
        do  
            {
            str    = mid(string, offset, count);
            str2   = check(str, type, length, html);
            offset = offset + count;
            endstr = endstr&str2;
            }
            while (str IS NOT "");
        offset = 1001;
        string = endstr;
        pre    = mid(string, 1, offset);        
        endstr = pre;
        html   = true;
        do  
            {
            str = mid(string, offset, count);
            if (str IS NOT "")
                {
                str2   = check(str, type, length, html);
                endstr = endstr&str2;
                }
            offset = offset + count;
            }
            while (str IS NOT "");
        }
    else
        {
        writeoutput("Debug: Less then");
        endstr = check(string, type, length, html);
        }
    return endstr;
}

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Op maandag 08 juli 2002 12:46 schreef Defspace het volgende:

Zoals alle Coldfusioners hier wel weten(denk ik) zit er een probleem in de regex functies van CF5 die ervoor zorgt dat je input string niet groter mag zijn dan 15000-20000 bytes.

Ik vraag me af of er iemand is die weet of hier een update voor is uitgebracht. Ik heb zelf namelijk niets kunnen vinden bij macromedia.

Zit deze bug ook nog in MX ?
Bestaat geen update voor. En volgens mij zit de bug niet meer in MX.

  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 27-08 11:17

Defspace

Administrator

Topicstarter
[update]
Zie edit.

Dit heeft wel een redelijke impact op mijn server denk ik ?
Om 17kb door te spitten doet hij dus nu al 19 regex functies.
Kan het niet beter!!! ;(

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Op maandag 08 juli 2002 15:08 schreef Defspace het volgende:
[update]
Zie edit.

Dit heeft wel een redelijke impact op mijn server denk ik ?
Om 17kb door te spitten doet hij dus nu al 19 regex functies.
Kan het niet beter!!! ;(
Wat voor UBB tag gebruik je eigenlijk? Je zou anders eens in alt.comp.lang.coldfusion een berichtje moeten plaatsen hierover, dan krijg je vast wel een antwoord van Jim Davis (de man achter DP_ParseBBML).

  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 27-08 11:17

Defspace

Administrator

Topicstarter
Op maandag 08 juli 2002 15:27 schreef jochemd het volgende:

[..]

Wat voor UBB tag gebruik je eigenlijk? Je zou anders eens in alt.comp.lang.coldfusion een berichtje moeten plaatsen hierover, dan krijg je vast wel een antwoord van Jim Davis (de man achter DP_ParseBBML).
Die DB_Parse is heel erg mooi, en ondersteund ook veel meer dan mijne. Ik ondersteun eigenlijk maar een paar (b, i, kop1, kop2, kop3, mail, url)
Maar als ik dezelfde lap tekst via die functie laat parsen dan is mijn lokale developers pc nog 3 a 4 keer zo lang bezig als via mijn functie. Hij ondersteund dan ook veel meer, maar echt een performance winst levert het niet op.

Daarbij, dat kan aan mij liggen, maar als ik geen ubb in mijn input gebruik, dan krijg ik gewoon een error van die functie.
Pagina: 1