Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Parsiranje BB kodova, ali bez nl2br za neke tagove

[es] :: PHP :: Parsiranje BB kodova, ali bez nl2br za neke tagove

[ Pregleda: 2188 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Draxyn

Član broj: 175159
Poruke: 7
*.adsl-4.sezampro.yu.



Profil

icon Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 12:57 - pre 194 meseci
Pozdrav,

Pokusavam da uradim parsiranje jednostavnih bb kodova. Primer:

Code:

$patterns[] = "|\[b\](.*?)\[/b\]|s";
$replaces[] = "<strong>$1</strong>";
return nl2br(preg_replace($patterns, $replaces, $text));


Kao sto se moze videti ja tekst zatim obradim uz pomoc nl2br funkcije koja dodaje "br" tagove na mestima gde ide novi red.

Sve je u redu do tacke kada je potrebno parsirati "code" tag. Potrebno mi je da nl2br funkcija ne utice na taj tag nebi li mi kod osta ne-formatiran uz pomoc "pre" html tagova.

Kako ovo mogu da uradim.

Mucim se vec neko vreme, ali nista.
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
212.200.212.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 16:47 - pre 194 meseci
Pa recimo da izmeniš regex izraz tako da hvata i koji je bbkod u jednu promenljivu? A onda, ako je to code tag, onda ne koristiš nl2br...
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Draxyn

Član broj: 175159
Poruke: 7
*.adsl-4.sezampro.yu.



Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 18:20 - pre 194 meseci
Nazalost nije mi pomoglo.

U ovom trenutku znacilo bi mi i kako da "obradim" odredjeni string/karakter izmedju 2 taga. Makar da zamenim slovo x izmedju dva slova y
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
*.adsl.net.t-com.hr.



+26 Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 18:32 - pre 194 meseci
ma radi ručno... imaš for petlju ako se naleti na navedeni tag ili što pomoćnu varijablu7 stavi na 1 a ako je pomoćna varijabla na 1 ne mjenjaš \n sa <br /> ako je 0 mjenjaš...
there's no place like 127.0.0.1
 
Odgovor na temu

Draxyn

Član broj: 175159
Poruke: 7
*.adsl-4.sezampro.yu.



Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 19:07 - pre 194 meseci
Zelim da probam bas sa reg expr.

Evo da probam sa necim jako prostim. Izvinjavam se unapred, vise ni u sta nisam siguran :(

Code:
echo preg_replace('|<pre>[beli]</pre>|', 'crni', 'beli mrav i <pre> jedan beli slon </pre>');


Imamo dakle ovu recenicu gde bih zeleo da "beli" pored slona zamenim u "crni", dakle izmedju 2 "pre" taga.

Nadam se da je ovo sustina svega.
 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
*.eunet.yu.



+5 Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 19:57 - pre 194 meseci
Sto se tice tvog poslednjeg primera ovo bi trebalo da zavrsi poso
Code:
echo preg_replace('/<pre>(.*?)beli(.*?)<\/pre>/si', '<pre>${1}CRNI${2}</pre>', 'beli mrav i <pre> jedan beli slon </pre>');
 
Odgovor na temu

Draxyn

Član broj: 175159
Poruke: 7
*.adsl-4.sezampro.yu.



Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 20:13 - pre 194 meseci
Hvala na odgovoru,

Nikad nisam bio blizi resenju. Problem mi je samo sto broj ovih reci "beli" izmedju tagova "pre" nije fiksno samo 1 vec ih moze biti vise (tj. to zavisi od korisnika).

Moze li se to resiti.
 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
*.eunet.yu.



+5 Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 21:05 - pre 194 meseci
Moze i to. Nesto mi je stao mozak za resenje preko regularnog izraza (ipak nije to lako) ali moze ovako:
Code:

function myReplace($matches) {
    return str_replace('beli', 'CRNI', $matches[0]);
}
echo preg_replace_callback('/<pre>(.*?)beli(.*?)<\/pre>/si', 'myReplace', 'beli mrav i <pre> jedan beli slon i beli medved </pre>');


Pogledaj obavezno Regular Expressions od Oreilly-ja (postoji i dzepno izdanje) ako zelis da razumes regularne izraze.
 
Odgovor na temu

Draxyn

Član broj: 175159
Poruke: 7
*.adsl-4.sezampro.yu.



Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 21:38 - pre 194 meseci
Hvala ti najlepse proradilo je, ali imam jedan mali problem a vec polako gubim moc razmisljanja

Evo koda koji koristim:

Code:

<?php

$input = '
ovo
je primer
u
vise

redova

<pre>
var
    beli: Integer;
begin
    beli:= 10;
end;
</pre>';

function myReplace($matches) {
    return str_replace("beli", "crni", $matches[0]);
}
echo preg_replace_callback('/<pre>(.*?)beli(.*?)<\/pre>/im', 'myReplace', $input);

?>


Skoro je isti kao prethodni primer, ali je tekst u vise linija. Ok je to, postavio sam mu /im flag ali zasto opet ne radi, tj. ovaj pascal kod promenjivu beli nece opet da prebaci u crni.

Ako imas neku ideju sta sa ovim spasao si mi dan. Vec se od jutros mucim sa ovim, a zapeo sam da uradim preko regularnih izraza.

Pozdrav i hvala za sve
 
Odgovor na temu

Draxyn

Član broj: 175159
Poruke: 7
*.adsl-4.sezampro.yu.



Profil

icon Re: Parsiranje BB kodova, ali bez nl2br za neke tagove22.04.2008. u 21:50 - pre 194 meseci
Ispravka.

Izgleda da ipak nisam trebao da brisem /si

Umoran sam vec od ovoga pa gresim malo :) Hvala jos jednom!
 
Odgovor na temu

[es] :: PHP :: Parsiranje BB kodova, ali bez nl2br za neke tagove

[ Pregleda: 2188 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.