![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich tak licznie zaglądających na ten wątek
![]() Na tym forum odnalazłem kilka odpowiedzi, ale niestety nie spełniły one moich oczekiwań. W dodatku z wyrażeń regularnych jestem jeszcze noga, więc postanowiłem napisać tego posta. Mój problem polega na tym że: 1. Mam w bazie tekst, w którym jest zawarta np. funkcja czy jakikolwiek inny skrypt pomiędzy <?php a ?>. 2. Chciałbym osiągnąć to, że dane te byłyby jakoś rozróżnione tak, by kolorował składnie funkcji ale nie opis jej powyżej. Potrafię zrobić coś podobnego, ale niestety tekst opisujący funkcję jest w czcionce, której znaki mają jednakową szerokość a ja muszę mieć to jak w reszcie serwisu Verdaną. Pod spodem podaję przykładowy kod, który mam w bazie danych. Kod Tutaj jest tekst opisujący daną funkcję. Pod spodem chciałbym, aby była ona kolorowana i by tylko ona była w czcionce 12px o stałej szerokości znaków, natomiast czcionka ta, by miała 10px i była nią na przykład Verdana w kolorze czarnym.
<?php function cutText($text,$end){ if(strlen($text)>$end){ $wynik=substr($text,0,$end); while(!($znak=="." || $znak=="," || $znak==" ")){ $znak=substr($text, $end, 1); if(!($znak=="." || $znak=="," || $znak==" ")) $wynik=$wynik.$znak; $end++; } $znak=""; $text=$wynik."..."; } return $text; } ?> Jedyny efekt jaki udało mi się uzyskać to: [php:1:c0f6c610e7] Tutaj jest tekst opisujący daną funkcję. Pod spodem chciałbym, aby była ona kolorowana i by tylko ona była w czcionce 12px o stałej szerokości znaków, natomiast czcionka ta, by miała 10px i była nią na przykład Verdana w kolorze czarnym. <?php function cutText($text,$end){ if(strlen($text)>$end){ $wynik=substr($text,0,$end); while(!($znak=="." || $znak=="," || $znak==" ")){ $znak=substr($text, $end, 1); if(!($znak=="." || $znak=="," || $znak==" ")) $wynik=$wynik.$znak; $end++; } $znak=""; $text=$wynik."..."; } return $text; } ?>[/php:1:c0f6c610e7] I chodzi mi właśnie o tą czcionkę, która jest powyżej funkcji - jest paskudna. Bardzo proszę o pomoc wyjadaczy wyrażeń regularnych ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
[manual:890d67c4e4]highlight_string[/manual:890d67c4e4]
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Właśnie tej funkcji używam do pokolorowania, ale koloruje mi cały tekst a nie tylko określony przez znaczniki <??>. W każdym razie dziękuję. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Najpierw pobierasz wszystko między <?php a ?> za pomocą prega a potem highlight_string
![]() -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mi takie coś
[php:1:63ecd5fc01]<?php $txt="Ala ma <? kota(); ?> a kot ma <?php ala(13); ?>"; highlight_string($txt); ?>[/php:1:63ecd5fc01] kloloruje tekst dokładnie tak: [php:1:63ecd5fc01]Ala ma <? kota(); ?> a kot ma <?php ala(13); ?>[/php:1:63ecd5fc01] -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Jest dokładnie tak jak mówisz - ale nie rozumiesz mnie ...
Tekst: Ala ma oraz a kot ma muszą być czcionką Verdaną, a nie taką samą jak jest pokolorowany kod php. WG. mnie, to trzeba by najpierw wyciągnąć sam string z pomiędzy <??>, zapodać go przez highlight_string i uzupełnić tekst, który nie jest w znacznikach <??>. I właśnie to jest dla mnie problem, nad którym siedzę od kilku godzin ... |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat Najpierw pobierasz wszystko między <?php a ?> za pomocą prega a potem highlight_string
![]() Maly OT ale jak chcesz jednoczesnie pobierac wyrazenia i je umieszczac pokolorowane?? Z wyrazen jestem noga ale w manualu nie widzialem przykladu ktory umozliwial by cos takiego [php:1:7cd91173b2]<?php $string = ereg_replace('four', ucfirst($znaleziony_strong), $string); // nie zamieni wszystkich four na Four ?>[/php:1:7cd91173b2] Wiec pytam jak? Moze sie mi w przyszlosci przyda ![]() update - juz chyba nie OT ![]() -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Ale ja mówiłem o [manual:b0e191226c]preg_match[/manual:b0e191226c]() A on zwraca wynik w formie tablicy
![]() -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
hmm [manual:530a88a53c]ereg[/manual:530a88a53c] tez zwraca wynik w formie tablicy a ja dalej nie wiem jak to wszystko pozamieniac. Skad masz widziec gdzie co jest? Mozna oczywicie zastosowac jakies wyuzdane sposoby - najpierw wydzielic do tablicy potem [manual:530a88a53c]split[/manual:530a88a53c] tekstu i przetasowac te dwie tablice - ale dalej nie wiem jak to zrobic prosciej. ?
-------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam.
A czy można użyć takiej funkcji by pozbyć się <code> i </code> z tekstu? Bo coś mi takie coś nie chce banglać. Zarówno <code> jak i </code> tworzą się podczas wykonywania funkcji highlight_string. [php:1:b095813f50]<?php function phpText($text){ $text=highlight_string($text); $text=eregi_replace("<code>","",$text); $text=eregi_replace("</code>","",$text); return $text; } ?>[/php:1:b095813f50] |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
zeby nie wyswietlal ustaw drugi parametr w highlight_string
![]() pozatym w tym przypadku uzywaj [php:1:69936d3046]<?php $string = str_replace(array('<code>','</code>'), "", $string); //szybsze niz wyrazenia ?>[/php:1:69936d3046] -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat WG. mnie, to trzeba by najpierw wyciągnąć sam string z pomiędzy <??>, zapodać go przez highlight_string i uzupełnić tekst, który nie jest w znacznikach <??>. Cytat Maly OT ale jak chcesz jednoczesnie pobierac wyrazenia i je umieszczac pokolorowane?? Prosze bardzo ![]()
Zmienna <b>$test</b> zawiera tekst do podmiany, koloruje tylko to co jest miedzy <b><?php</b> a <b>?></b> Cytat Z wyrazen jestem noga ale w manualu nie widzialem przykladu ktory umozliwial by cos takiego
Wiec pytam jak? Moze sie mi w przyszlosci przyda ![]() Slabo szukales ![]()
PS. php P. to nie forum na taki topic, wiec lecimy tutaj ![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat Slabo szukales (hint: preg_replace - wzmianka o przelaczniku e)
FiDO tylko taki przyklad dalem ![]() A to [manual:56b697b3f1]preg_replace_callback[/manual:56b697b3f1] rzeczywiscie w sposob prosty i przyjemny obrabia wyrazenia w srodku stringa. O to mi chodzilo ![]() ps zle zacytowales Cytat Ale ja mówiłem o preg_match() A on zwraca wynik w formie tablicy
Ciekawilo mnie jak on to przez preg_mach() chce zrobic ![]() -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat ps zle zacytowales
![]() Cytat Ciekawilo mnie jak on to przez preg_mach() chce zrobic
![]() Od biedy sie da, ale napewno nie zmiesci sie to w jednej linijce ![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat ps zle zacytowales
![]() Cytat Ciekawilo mnie jak on to przez preg_mach() chce zrobic
![]() Od biedy sie da, ale napewno nie zmiesci sie to w jednej linijce ![]() Cytat hmm ereg tez zwraca wynik w formie tablicy a ja dalej nie wiem jak to wszystko pozamieniac. Skad masz widziec gdzie co jest? Mozna oczywicie zastosowac jakies wyuzdane sposoby - najpierw wydzielic do tablicy potem split tekstu i przetasowac te dwie tablice - ale dalej nie wiem jak to zrobic prosciej. ?
FiDO mam wrazenie ze nie przeczytales wszystkich postow ![]() -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Przeczytalem
![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam.
To prawda. Krótka i bardzo wymowna funkcja, która wybawiła mnie od kombinowania z podmianą tekstów itp. [php:1:0e72a92705]<?php function phpText($text){ $text=preg_replace_callback("!<?php.*?>!sU", create_function('$m','return "<br /><br /><div class="phpcode">". highlight_string($m[0],true)."</div><br /><br />";'),$text); return $text; } ?>[/php:1:0e72a92705] BigThanks FiDO :wink: Mam jeszcze jedno pytanko ... Jak wzorując się na powyższej funkcji (przy użyciu preg_replace_callback) wykonać funkcję nl2br do tekstu, który nie jest w znacznikach <?php ?>? |
|
|
![]()
Post
#18
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Brak czasu :/
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może najpierw całe wyrażenie (kod i tekst) wziąć pod odstrzał [manual:1da6fbfbb2]nl2br[/manual:1da6fbfbb2] a potem sam kod wrzucic pod [manual:1da6fbfbb2]str_replace[/manual:1da6fbfbb2] który wszystkie <br /> zamieni na n
Tak samo można zamienić czcionkę w stringu. Można np tak: [php:1:1da6fbfbb2]<?php $color = "#FFFFFF"; // kolor zwyklego tekstu zwracanego przez highlight_string $czcionka = "MS"; // czcionka calego stringa zwracanego przez highlight_string $size = ""; // wielkosc czcionki calego stringa zwracanego przez highlight_string $text = str_replace("<font face=".$czcionka." size=".$size." color=".$color.">", "<font face=Verdana size=".$size." color=".$color.", $text); echo $text; ?>[/php:1:1da6fbfbb2] (Nie wiem czy to będzie działać - z palca wyssane) |
|
|
![]() ![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 69 Pomógł: 1 Dołączył: 26.02.2004 Skąd: kielce. //Świętokrzyskie Ostrzeżenie: (0%) ![]() ![]() |
a jak zrobic to z wyswietlaniem highlight_string wraz ze smartami. bo ja jak to zrobilem to wyswietla najpierw mi kolorowy kod a poóźniej reszte ze smartow czyli całą treść już bez tego kolorowego kodu.
Sory juz znalazlem nie przegladnelem dokladnie w manualu ![]() wystarczy tak przepraszam za zasmiecanie forum ![]() Ten post edytował Sm0key 13.09.2004, 21:24:55 -------------------- ... aleobiad 80 %
"Doskonałości nie da się przyśpieszyć..." |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 00:56 |