Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 4.512 pregleda

Najnovija ↓

preg i PHP 07.12.2002. u 00:40 · pre 290 meseci #1
Ne znam da li je ovo pravi forum da pitam al..

Pokušavam da napravim BBCode/UBBC al mi nikako ne ide uz ruku... napisao sam sledeći primer

Code:
$preg = preg_replace("/(\[(b|B)\])(.+)(\[\/(b|B)\])/","<b>\\3</b>",$preg);


ovo bi trebalo da bolduje sve što je između [B] i [/B] tagova što i delimično radi,Problem je u tome što ako upišem novi red onda preg u opšte ne radi,znači ako neko napiše [B]text
text[/B] funckija ne radi

to je zbog tačke koja se nalazi u ovom delu '(.+)' ,pokušavao sam već 2 dana da napišem umesto toga (*) il (+) il (^+*$) al ništa ne radi...

Ako neko ima pojma ušta da zamenim (.+) stvarno svaka mu čast

P.S.Zanimaju me dokumentacija o regularnim izrazima al ne neki howto koji treba da čitam 2 sata nego neki artikal ako imate u bookmark-u ;Đ

Hvala na svakom predlogu

Re: preg i PHP 07.12.2002. u 01:36 · pre 290 meseci #2
A najzanimljivije je to što (^+) je skoro isti đavo al ni to ne radi :(
Re: preg i PHP 07.12.2002. u 02:07 · pre 290 meseci #3
ja bih ti ipak preporucio da procitash svu dokumentaciju (koju nadjesh).

narocito: http://www.php.net/manual/en/pcre.pattern.modifiers.php

zato sto se po ovim "modifierima" pcre razlikuje (i zato je i jaci) od posix regexa.

posle procesljaj i http://www.php.net/manual/en/pcre.pattern.syntax.php


inace, tebi treba da dodash "i" i "U" i "s" modifiere na kraj regularnog izraza:

Code:

$preg = preg_replace("/(\[(b|B)\])(.+)(\[\/(b|B)\])/iUs","<b>\\3</b>",$preg);


"i" znaci da ignorise mala i VELIKA slova, pa onda mozes i da uprostish izraz (ono malo b i veliko B). ovo uradi sam. mrzi me ;)

"U" znaci "Ungreedy" sto u prevodu znaci da ako imash dva puta u istoj stranici [b]nesto[/b] i josh [b]ponesto[/b] onda ce bez "U" modifiera da ti matchuje sve od prvog [b] do poslednjeg [/b].

poslednje "s" oznacava ono sto ti hoces, a to je da tacka "." u preg paternu mattchuje i novi red, pa ovako skanirash i text od vis redova...



iako sam ti ja ovo sve lepo objasnio na kasicicu, ti ipak potrosi 2 sata i procitaj taj manual. ulozi bar toliko u sebe...
Potpis
blogče :: unescaped beta
  »
go-paste extenzija
  »
reč dana: backup
  »
bočne koalicije
Re: preg i PHP 07.12.2002. u 02:53 · pre 290 meseci #4
Bacio sam pogled na Modifiers al nije bilo objašnjeno kako se koristi tako da sam odmah prešao na Syntax a ni tamo nije bilo (naj)objašnjeno zato sam potražio neki artikal na netu....

Inače tvoj post mi je mnogo pomogao :) s je tačno ono što mi je trebalo :}

Mada i dalje ne kontam zašto ne radi (*+) al nema veze.

Inače ako nekoga zanima kod izgleda ovako
Code:
$str = preg_replace("/(\[b\])(.+)(\[\/b\])/iUs","<b>\\2</b>",$str);


Saću da napišem ceo BCCode,Hvala još jednom :}
Re: preg i PHP 07.12.2002. u 23:17 · pre 290 meseci #5
Ja sam završio skoro ceo BBCode al mi je ostalo Auto Pharsing URL's,ovaj deo koda sam pojednostavio najviše što mogu al ni to ne radi,veoma je slučan prošlom kodu :C

$str = preg_replace("/(www)(.+)/iU","NaNaNa",$str);

neće da radi čak ni ako ukucam www.bzvze

Re: preg i PHP 08.12.2002. u 01:02 · pre 290 meseci #6
mislim da je gojko postovao kompletan regex u (valjda) predlozi i pitanja forumu (naslov valjda asocira na to). to je regex koji on koristi ovde...

a ti nisi napisao sta se desi? ne zameni nista? ili lose zameni?

za ovo probaj:

Code:

$str=preg_replace('!(www.|http://)[\w\./\?\=\%\&]+!iU", "NaNa", $str);


ovo bi trebalo da radi najcesce... fale mu josh neki znaci koji su dozvoljeni u url-u. dodaj ih u onu klasu (izmedju [ i ] znakova)...
Potpis
blogče :: unescaped beta
  »
go-paste extenzija
  »
reč dana: backup
  »
bočne koalicije
Re: preg i PHP 08.12.2002. u 19:26 · pre 290 meseci #7
Već 4 sata pokušavam da skontam al ne ide :(
Pokušao sam tvoj kod al ovaj deo [\w\./\?\=\%\&]+ ti ne radi ;(
on ustvari samo 'shvati' prvo slovo a ostatak slova ih igoriše

Našao sam nešto pa ću malo da se igram sa tim dok ne skontam,ali ovo je eregi_replace što nisam hteo al nema veze

Code:
 $str = ereg_replace("((ftp://)|(http://)|(mailto:)|(news:)|(https://))(([[:alnum:]]|[[:punct:]])*)", "1=\\1<br>2=\\2<br>3=\\3<br>4=\\4<br>5=\\5<br>6=\\6<br>7=\\7<br>8=\\8<br>0=\\0<br>Kraj",$str);
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme