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

Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!

[es] :: PHP :: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!

[ Pregleda: 1915 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Stranger2
Stranger2

Član broj: 143429
Poruke: 2572
*.adsl.net.t-com.hr.

Sajt: www.videomajstor.com


+43 Profil

icon Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!06.11.2010. u 10:39 - pre 164 meseci
Nikako mi ne uspava da napravim odgovarajuci regullar expression kod koji ce da u html kodu pronalazi tag
Code:
<!--reklama-->


Treba mi to za filter sadrzaja koji koji ubacujem u Drupal CMS. Zelim da u svim sadrzajima samo stavim HTML komentar gde hocu da stoji benner a da filter sam to zamenjuje sa aktuelnim kodom banera. Medjutim uvek mi izbaci gresku ili detektuje ceo sadrzaj polja za sadrzaj stranice.???
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-5.sezampro.rs.



+33 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!06.11.2010. u 11:31 - pre 164 meseci
A jel taj string "reklama" fiksan, ili on može da ima neku vrednost na osnovu koje imaš neku dodatnu logiku, npr. reklama1, reklama-nekisajt? Ako treba da pronađeš baš taj string, tu onda nema potrebe za regularnim izrazima, već je dovoljna samo direktna zamena za neki drugi string.
Code:
$tekst = str_replace('<!--reklama-->', 'ovde ide kôd banera', $tekst);

btw Možda je pametnije da ti custom tag-ovi koje hoćeš da filtriraš budu u formi [reklama], jer tako možeš npr. da dozvoliš i neke dodatne opcije, npr. [reklama tip=velika], pa da to onda match-uješ nekim ovakvim pattern-om: /\[reklama(?:\s+tip\=(.+))?\]/.
 
Odgovor na temu

Stranger2
Stranger2

Član broj: 143429
Poruke: 2572
*.adsl.net.t-com.hr.

Sajt: www.videomajstor.com


+43 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!06.11.2010. u 15:38 - pre 164 meseci
Hvala!

Treba mi fiksan string "reklama" i to bi bilo za default reklame i da taj sadrzaj ne moram da menjam bez obzira u koji cms da ga prebacim.

A eventualno bi kasnije posebno dodao tip "reklama2" i "reklama3" za posebne nove vrste reklama. Ali to mi nece sada trebati.

Citat:
Možda je pametnije da ti custom tag-ovi koje hoćeš da filtriraš budu u formi [reklama]

Hteo bih da to resenje bude neovisno o CMS sistemu koji koristim. HTML komentar mi se cini kao najbolje resenje . A ukoliko taj sadrzaj bude prikazan kao obican HTML bez filtriranja onda ga citaoci nece ni videti. Resenje sa html komentarom <!--reklama--> je idealno da taj sadrzaj vise nikada ne moram da editujem.

Takodje mogu ja kasnije ubaciti jos jedan "medjufilter" koji ce obaviti konverziju <!--reklama--> u [reklama] ali svakako mi treba detekciija za "<!--reklama-->" pre svega.

---

Code:
$tekst = str_replace('<!--reklama-->', 'ovde ide kôd banera', $tekst);

ovako u drupalu imam opciju za kreiranje custom filtera. U jedno polje unosim regular expression a u drugo polje unosim zemenski tekst. Pokusao sam sa

ovako
Code:
<!--reklama-->


, ovako
Code:
'<!--reklama-->'


i ovako
Code:
/<!--reklama-->/


I svaki put prijavljuje gresku. Nemam ideju sta sam pogresio. ??? imam i knjigu o regular expressions ali nema takav primer i nema nista specificno objasnjeno za htnml.

Evo kako izgleda forma za kreiranje custom filtra:



da li imate ideju sta bi trebalo da ukucam?
Prikačeni fajlovi
 
Odgovor na temu

Stranger2
Stranger2

Član broj: 143429
Poruke: 2572
*.adsl.net.t-com.hr.

Sajt: www.videomajstor.com


+43 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!06.11.2010. u 15:58 - pre 164 meseci
evo uspeo sam sada na osnovu onog vaseg preloga da detektujem [reklama] tag
Upotrebio sam:
Code:
/\[reklama\]/


Ono sa html-om ne mogu i dalje.

Da li mozda treba nesto poput
Code:
/\<!--reklama-->/
ili sl. ne znam da li znakovi <>! imaju specijalno znacenje u regular expressions...???
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-3.sezampro.rs.



+33 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!06.11.2010. u 17:11 - pre 164 meseci
Pa u tom stringu <!--reklama--> ima nekoliko meta karaktera, tj. onih koji se tretiraju na poseban način od strane PCRE-a. Ako u svom pattern-u hoćeš da match-uješ baš neke od tih karaketra, moraš da ih escape-uješ, pa bi u tom slučaju tvoj pattern izgledao ovako: /<!\-\-reklama\-\->/.

edit: Jedino što ne znam da li u toj formi Drupal zahteva da pattern bude uokviren delimiter-ima (kosim crtama na početku i na kraju pattern-a u mom primeru).
 
Odgovor na temu

Stranger2
Stranger2

Član broj: 143429
Poruke: 2572
*.adsl.net.t-com.hr.

Sajt: www.videomajstor.com


+43 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!07.11.2010. u 09:48 - pre 164 meseci
Hvala!
Citat:
Ako u svom pattern-u hoćeš da match-uješ baš neke od tih karaketra, moraš da ih escape-uješ, pa bi u tom slučaju tvoj pattern izgledao ovako: /<!\-\-reklama\-\->/.
Nesto mi je uspelo slicno ovom predlogu. Reci mi da li moze biti stete ako ispred svakog znaka stavim "\" bez obzira koji su metacharacteri a koji nisu?

Citat:
Jedino što ne znam da li u toj formi Drupal zahteva da pattern bude uokviren delimiter-ima (kosim crtama na početku i na kraju pattern-a u mom primeru).


Ja mislim da zahteva jer neke filtre koje sam ranije koristio su imali / na pocetku i na kraju. A u ovom slucaju o kojem pricam u ovoj temi mi je izmedju ostalog izbacivao i gresku
Code:
bla bla ...unknown delimeters ' ' ...


Uopste nisam shvatio koje je svrha tih delimeters? Pise samo sta mogu biti i da trebaju u nekim funkcijama ali ne razumem logiku toga? Da li moze sa par reci da mi to pojasnis malo, da izbegnem neke greske u buduce.




 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!07.11.2010. u 13:48 - pre 164 meseci
Citat:
Stranger2:Reci mi da li moze biti stete ako ispred svakog znaka stavim "\" bez obzira koji su metacharacteri a koji nisu?

Možeš slobodno da staviš i ispred onih koji nisu meta-karakteri. Npr. ako ga staviš ispred znaka ">", PCRE će i dalje na taj znak da gleda isto, bez obzira što si ga bespotrebno escape-ovao.

Citat:
Stranger2: Uopste nisam shvatio koje je svrha tih delimeters? Pise samo sta mogu biti i da trebaju u nekim funkcijama ali ne razumem logiku toga? Da li moze sa par reci da mi to pojasnis malo, da izbegnem neke greske u buduce.

Jel ti uopšte znaš na šta sam ja mislio kad sam spomenuo delimiter-e? Pogledaj šta o njima piše u manual-u, možda će ti onda biti jasnije. Svaki PCRE pattern mora da bude uokviren delimiter-ima, a karakteri koji se najčešće koriste u te svrhe su kosa crta (/), taraba (#) i uspravna crta (|). E sad ako npr. kao delimiter koristiš kosu crtu, a negde unutar tvog patterna-a moraš da match-uješ baš taj karakter, rešenje je ili da promeniš delimiter ili da escape-uješ tu kosu crtu u pattern-u.
 
Odgovor na temu

Stranger2
Stranger2

Član broj: 143429
Poruke: 2572
*.adsl.net.t-com.hr.

Sajt: www.videomajstor.com


+43 Profil

icon Re: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!07.11.2010. u 15:16 - pre 164 meseci
hvala!

Citat:
Jel ti uopšte znaš na šta sam ja mislio kad sam spomenuo delimiter-e? Pogledaj šta o njima piše u manual-u, možda će ti onda biti jasnije. Svaki PCRE pattern mora da bude uokviren delimiter-ima, a karakteri koji se najčešće koriste u te svrhe su kosa crta (/), taraba (#) i uspravna crta (|). E sad ako npr. kao delimiter koristiš kosu crtu, a negde unutar tvog patterna-a moraš da match-uješ baš taj karakter, rešenje je ili da promeniš delimiter ili da escape-uješ tu kosu crtu u pattern-u.


Znam sta su delimeteri u smislu sto znam na pamet tu definiciju, ali nisam shvatao poentu i u primerima koje sam gledao negde ih ima a negde nema... Pretpostavljam da je najbolje da uvek koristim "/" na pocetku i na kraju i da ne pitam.
 
Odgovor na temu

[es] :: PHP :: Treba mi regular expression kod za detektovanje <!--reklama--> , Hitno!

[ Pregleda: 1915 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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