> Chtel bych si udelat v PHP programek ktery by mi nahrazoval mezery za vsemi > jednopismennymi predlozkami a i k o s u v z podle volby budto nbsp entitou > (pro HTML) nebo "pevnou" mezerou #160 pro zalamovani obyc.textu. (Delam to > u vsech predlozek i kdyz to podle normy neni nutne protoze mi to pak v textu > pripada hezci). Ale nejak se mi to nedari dotahnout. Mam to cele zalozeno na > Eregi_Replace(), pozna to predlozku :-) a nahradi mezeru ale nefunguje mi to > kdyz je predlozek vice za sebou. Treba v "... a i proto ..." mi to tam nahradi > jenom "... a~i proto ..." (~ je jako ta nahrada). Vedel by nekdo co s tim? > Diky, Kalumet. Vestirna opet v akci. :) Aspon ten regex kdybys poslal... Vypada to, ze to asi detekujes takhle: '_(a|i|k|o|s|u|v|z)_', kde _ je space. Pak je to ale pochopitelne blbe a jedna se o typickou regexovou semantickou chybu. Pro smysluplne pouzivani regexu byva dobre znat princip jejich prace. Je treba si uvedomit, ze ten regex jednak jede po stringu sekvencne a za druhy je hladovej, takze kdyz jednou nahradi _a~ tak uz nenajde _i_, jelikoz misto 1.space uz je tam ~. Tady bude asi nejprostsim resenim udelat to dvoupruchodove, treba takhle: function predlozky($txt,$rep=''){ $rep=$rep?$rep:chr(160); $p1=' (a|i|k|o|s|u|v|z) '; $p2=$rep.'(a|i|k|o|s|u|v|z) '; return eregi_replace($p2,"$rep\\1$rep",eregi_replace($p1," \\1$rep",$txt)); } Takze: $txt='... a i o tom jiz s nim bylo ...'; $txt=predlozky($txt,'~'); by ti melo vratit '... a~i~o~tom jiz s~nim bylo ...'. Druhy parametr fce je replacement, kdyz se vynecha, bude to default nezlomitelna mezera. Pro HTML tam das ' ') pako Paco. ______________________________________________________________________ Reklama: Jake bude pocasi? http://pocasi.seznam.cz
This archive was generated by hypermail 2.1.2 : 01. 10. 2002, 19:27 CEST