jakubkrol Napisano Styczeń 25, 2010 Zgłoś Share Napisano Styczeń 25, 2010 Witamn serdecznie. Używam sobie preg_replace("#\[code=(.*?)?\](.*?)\[/code\]#e", "funkcja_geshi_tekst_prepare('\\1','\\2')", $text); Noo ii... wszystko OK, dopóki jest wszystko w jednej linijce, np: KOD $abcd = 'abcd';[/ code] ale jak dam kilka linii, np: KOD[code=XYZ]$abcd = 'abcd'; $abcd = 'abc3'; $abcd = 'abcf';[ /code] nie mówiąc już jak będzie na początku linii samo, puste: KOD[code=XYZ] $abcd = 'abcd'; $abcd = 'abc3'; $abcd = 'abcf'; [ /code] to te dwa ostatnie przypadki nie działają ;/ Domyślam się, że coś mam z moim wyrażeniem regularnym Any ideas? Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Styczeń 25, 2010 Zgłoś Share Napisano Styczeń 25, 2010 Tutaj masz z mojego projektu kod, do zmiany tekstu w znaczniku code na geshi, możesz wpisać np. code=cpp itp., żeby wybrać formatowanie wybranego języka. Kodu nie pisałem ja, tylko znalazłem gdzieś na necie jak potrzebowałem. function kod($text) { preg_match_all("#\[code=(.*?)\](.*?)\[/code\]#si",$text,$matches,PREG_PATTERN_ORDER); for($i=0; $i<count($matches[0]); $i++) { $input = str_replace('<br>','',str_replace('<br />','', str_replace('<br />', '', stripslashes($matches[2][$i])))); //replace problematic characters $search = array(""", "'", "\", """, "'", "<", ">", "&", "<", ">"); $replace = array("\"", "'", "\\", "\"", "'", "<", ">", "&", "<", ">"); $input = str_replace($search,$replace, $input); $geshi = new GeSHi($input, $matches[1][$i]); //$geshi -> enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 10); $text=preg_replace("#\[code=(.*?)\](.*?)\[/code\]#si",'$2',$text); $text=str_replace($matches[2][$i], html_entity_decode($geshi->parse_code()), $text); } return $text; } Link do komentarza Udostępnij na innych stronach More sharing options...
jakubkrol Napisano Styczeń 25, 2010 Autor Zgłoś Share Napisano Styczeń 25, 2010 @Jason - dzięki wielkie, ale już sobie poradziłem, temat do zamknięcia ;] Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.