DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   highlight_string problemče (http://www.devprotalk.com/showthread.php?t=2355)

centaur 02. 02. 2007. 11:59

highlight_string problemče
 
Imam neki text u kome se nalazi i PHP kod koji stavljam u okviru [kod] i [/kod] i skladištim u bazu.
Pre upisivanja u polje u bazi,zamenjujem sve oznake tipa [kod] i [/kod] odgovarajućim HTML tagovima.
Hteo bih da PHP kod "propustim" kroz funkciju highlight_string() i istaknem sintaksu.
E sad,kako celo to polje prikazujem sa echo $blabla['text'],kad funkciju stavim u bazu kao text ne prikazuje ništa (možda nisam našao odgovarajući način ?!).
Pretpostavljam zato što je prosleđujem browseru (funkcija se vidi u source-u).

Postoji li još neki način ili ću morati da ceo text "pustim" kroz regex pre prikazivanja?
:1083:

LiquidBrain 02. 02. 2007. 13:19

Ajde daj neki primer toga shto hocesh da uradish? U kom sorceu se vidi funkcija?!? Html?!?

centaur 02. 02. 2007. 14:15

Recimo ovako:
PHP kôd:

$text="bla [b]bla[/b] blabla [kod]echo "zika car";[/kod]" 

Onda pre upisa u bazu,$text obrađujem sa
PHP kôd:

$text=str_replace('[b]','<b>',$text);
$text=str_replace('[/b]','</b>',$text); 

i to je OK.
E sad probam sa:
PHP kôd:

$text=str_replace('[kod]','<table id="kod"><tr><td><?php highlight_string(\'<?php',$text);
$text=str_replace('[/kod]',' ?> \');?></td></tr></table>',$text);

Kada je tako obradim,prikaže se tabela i ');?>
Kada pogledam source u browseru,funkcija se vidi ali joj fali deo ');?>
Celo to polje iz baze prikazujem sa echo $nesto['text'].

Br@nkoR 02. 02. 2007. 14:20

npr.
Kôd:

<?php

$text = 'bla bla bla
[kod]
<?php
$v = \'bla\';
echo $v;
?>
 [/kod]

 bla bla';

$pattern = "|\[kod\](.*?)\[/kod\]|s";

echo preg_replace_callback($pattern, create_function('$m', 'return highlight_string($m[1], true);'), $text);

?>


cvele 02. 02. 2007. 14:24

pa naravno da se to nece izvrsiti... ti php kod tretiras kao string...

prvo moras da izvuces deo teksta, da ga provuces kroz fju pa oda da ides dalje...
mada nije preporucljivo da to radis pre upisa u bazu... sta ces da radis za god dana kada budes hteo da menjas highlite engine ?

centaur 02. 02. 2007. 14:47

@cvele
Pretpostavio sam da je tako.Zato sam i napomenuo da ga prikazujem sa echo $text

Hteo sam da izbegnem "riljanje" po velikom textualnom polju sa regex.
Sad ću da probam sa njima.

ivanhoe 02. 02. 2007. 16:44

jel zna neko neki dobar javascript syntax-highlighter? Po mogucstvu da podrzava vise jezika..

Ilija Studen 02. 02. 2007. 17:02

Citat:

Originalno napisao ivanhoe
jel zna neko neki dobar javascript syntax-highlighter? Po mogucstvu da podrzava vise jezika..

http://www.dreamprojections.com/synt...ter/?ref=about

Pogledaj šta sam bookmarkovao od highlighter rešenja:

http://del.icio.us/ilijastuden/syntax

Druga dva highlightera su PHP biblioteke pod GPL licencom (ako ti je licenciranje bitno i da sve bude "čisto" izbegni jer može da bude problema ako ih budeš koristio ne GPL projektima). Prvo rešenje (JS) je LGPL tako da nema tih problema.


Vreme je GMT +2. Trenutno vreme je 00:20.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.