Ignorisanje tagova u delu teksta....

1

Ignorisanje tagova u delu teksta....

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Treba mi pomoć, dakle, 5000 pitanja sam postavio jer radim neki sajt koji treba da bude multijezička online enciklopedija.

e, napravio sam milion tagova za bold, tabele, muziku, slike itd itd itd itd....

napravio sam funkciju koja to pretvara u html....

ono što ne znam je kako da ubacim da ta funkcija preskoči deo teksta ograničen sa nekim tagovima , kao recimo, na forumu [code] i [/code] ... ?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Postavi nam da vidimo kako si resio onaj problem pa da ti kazemo resenje ovog problema Wink



offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Ako hoces da ti ta funkcija formatira neki tekst izmedju nekih tagova kao obican tekst a ne kao html probaj ovako:

Svako < zameni sa &lt; a svako > zameni sa &gt;
promeni to kod svakog taga, na primer funkcijom str_replace:

 str_replace(">", "&gt;", $text);

Nisam siguran da li sam te tacno razumeo sta hoces...

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Citat:...ono što ne znam je kako da ubacim da ta funkcija...

Koja funkcija...

Mislim da ovo trazis

[code]
<?php

$string = 'Ovo je tekst koji[code] se nece ispisati[/code] se hoce ispisati';
$patterns[0] = '"\[code](.+?)\[/code\]"';
$replacements[0] = '';

print preg_replace($patterns, $replacements, $string);

?>
[/code]

offline
  • Pridružio: 01 Maj 2003
  • Poruke: 1300
  • Gde živiš: Kragujevac

Kako da preskoci? Sta zelis da dobijes od nr [code] taga? Bojim se da te nisam razumeo...

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

pa, ovako, kako tekst treba da bude pregledan, dozvolio sam članovima na sajtu da u članke ubacuju sledeće tagove :
 Ovi znate za šta služe.... 1. [b] [/b] 2. [i] [/i] 3. [u] [/u] Ovi su za tabelu .... 4. [table] [/table] 5. [table band] [/table] // Isto za tabelu, samo sto ne pretvara u "<table>" nego u "<table class='band'>" 6. [td] [/td] 7. [tr] [/tr] 8. [th] [/th] Dodatni tagovi 9. [image=opis_slike]adresa[/image] //slika 10. [mplink=članak]tekst[/mplink] //ovaj tag trazi članak na sajtu i pravi link ka njemu. Ako članak postoji, boji ga plavo, ako ne, boji ga crveno... kao na wikimediji

E, ono što je meni potrebno je da funkcija koja ove tagove pretvara u HTML, preskoči deo teksta ograničen sa, recimo [ignore] i [/ignore]

Primer Smile

[image=Tekst ispod slike]url[/image] [ignore] [image=Tekst ispod slike 2]url2[/image] [/ignore] [b] dalji tekst [/b]

I,dakle, zelim da mi funkcije preg_replace() i str_replace() koje pretvaraju tagove u HTML preskoce deo izmedju "ignore", tj da pretvori dati tekst u :

<div><img src="url"><br />Tekst ispod slike</div> [image=Tekst ispod slike 2]url2[/image] <b> dalji tekst</b>

ovo sa div i to ne gledajte, to je samo primer, inace drugacije izgleda html kod za sliku ....

vidim da sam opet cudno sve ispisao, ali, nadam se da razumete, šta ću, nisam rečit.... Sad. znači, samo da preskoči replejsovanje dela teksta između "ignore" tagova ....

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

ideja:
1. deo koji ne treba da se dira smesti u neku promenljivu, a na njegovo mesto postavi neki identifikator (recimo: [ovde-je-bilo-nesto-12345])
2. odradi standardno formatiranje svega
3. na mesto identifikatora vrati sacuvani tekst (i po potrebi formatiraj i njega zasebno na zaseban nacin, pre vracanja)

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

hm..... da .... nesto slicno radim i sa [mplink] tagovima.....
mislio sam da moze na neki drugi nacin da se to obavi, posto se bojim da ce stranici trebati previse vremena za executovanje, jer ono sto sam pokazao nisu svi tagovi, pa , ako se natrpa, moze stvarno da potraje (nekoliko sekundi) ....

hvala

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

ova moja ideja nece usporiti izvrsavanje, siguran sam...

btw, upotrebljavaj bbcode_uid.
phpbb recimo koristi to, i ideja je u sledecem:
kada korisnik postuje post, izvrsava se prvobitno parsiranje, koje recimo [b] pretvara u [b:hhd6w3t], i u svim validim bbkodovima umetne taj uid.
kada prikazujes stranicu, imas daleko manji zadatak - jer su ti bbkodovi vec markirani, pa nemas proces ispitivanja sta je validan a sta nije validan kod [a tu vec imas i foru da kod izmedju [code] nije markiran u prvom parsiranju, pa ga drugo parsiranje glatko preskoci, sto ti takodje stedi vreme izvrsavanja skripte].

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

da, hvala ... pozabavicu se time malo ....

Ko je trenutno na forumu
 

Ukupno su 969 korisnika na forumu :: 56 registrovanih, 9 sakrivenih i 904 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., acatomic, aleph_one, ALEXV, bolimejoli, Borski1977, comi_pfc, cvrle312, d.arsenal321, dankisha, DavidA, dearg, dexteroza, Dogma21, famoso, Jakonjveliki, jimi_agf, Kajzer Soze, kib, Kolimator, ladro, Laika8010, lanishtefm, Lotus, majamanic1975, Makarid, marko.markovic, Mediator, micke83, milos97, neutrino, nikoladim, panzerwaffe, Polifon, Prašinar, precan, RD84, sajorg, Saturn V, sekretar, Srle993, SympathyForTheDevil, tomigun, uruk, vaci, VanZan, varda, Vaske8990, vlad4, Vlada1389, Vlada78, vrlenija, vukajlo71, vukan0799, zdrebac, Zorge