Wuu Posted May 24, 2010 Report Share Posted May 24, 2010 (edited) funkcija function uCode($code,$text){ $return = preg_replace("/.*\[".$code."\](.*)\[\/".$code."\].*/","$1",$text,1,$c); if ($c==1) { return $return; } } texts [imgb]http://img.uoc.lv/im...b31ef326e29.jpg[/imgb] Es zinu ka jūsu vecais dators sāk smilkstēt, kā maz apbižots ... Lietoju šādi uCode('imgb',$text) Un funkcija atgrieza saturu kas atrodas starp [imgb][/imgb], bet pēc IPB2 uzlabošanas uz IBP3 versiju, funkcija nestrādā korekti un atgriež visu tekstu IPB3 postiem. Bet strādā korekti un atgriež visu kā nākas no IPB2 radītajiem postiem. Nekādīgi nevaru saprast kāpēc tā? Cits kodējums vai kas? Vizuāli caur datubāzi skatoties, gan IPB2, gan IPB3 posti ir vienādi! Edited May 25, 2010 by Wuu Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 25, 2010 Author Report Share Posted May 25, 2010 Izmainīju funkciju, bet tā arī nesapratu kāpēc vecā parstāja ar IPB3 postiem strādāti. Ja kāds vispār saprot par ko es te gvelžu. Iesakiet kaut ko :D Šobrīd tāds pagaidu variants. function uCode($code,$text){ $start = strpos($text,'['.$code.']'); //Nosakām pirmā tāga pozīciju if ($start===FALSE){ return; } //Tāgs ir atrast, turpinām $end .= strpos($text,'[/'.$code.']'); //Nosakām beigu tāga pozīciju $return = substr($text,($start+strlen('['.$code.']')),($end-$start-strlen('['.$code.']'))); //Izrēķinām sākumu,beigās un atgriežam tāga iekšējo saturu. return $return; } Quote Link to comment Share on other sites More sharing options...
bubu Posted May 25, 2010 Report Share Posted May 25, 2010 Parādi labāk fragmentu ar tekstu, uz kura nestrādā tavs regexps. Quote Link to comment Share on other sites More sharing options...
Wuu Posted June 17, 2010 Author Report Share Posted June 17, 2010 Velviens jautājums $string = preg_replace("/\[youtube\](.*)\[\/youtube\]/U","$1",$string); Iekš $1 glabājas [youtube][/youtube] saturs. Kā lai uz satura palaiž funkciju, piemēram strlen $string = preg_replace("/\[youtube\](.*)\[\/youtube\]/U",strlen("$1"),$string); strlen("$1") atgriež "2", jo php nesaprot ka $1 ir array. Kā to izdarīti? Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted June 17, 2010 Report Share Posted June 17, 2010 Izmanto - http://lv.php.net/manual/en/function.preg-replace-callback.php Quote Link to comment Share on other sites More sharing options...
Wuu Posted June 17, 2010 Author Report Share Posted June 17, 2010 Jap strādā :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.