Pomoc oko Regularnih izraza

3

Pomoc oko Regularnih izraza

offline
  • Pridružio: 05 Nov 2007
  • Poruke: 21
  • Gde živiš: Malta

Svemirko ::ljuba973 ::mozes li da testiras ?
ja sam testirao i gledao razlike....
strpas to u for petlju da odradi jedno 20-ak puta (ili vise zavisi koliko je potrebno da se izvali razlika) i vidis koji ce brze da se zavrsi Smile


Hehe ...

Nisam se dobro 'odrazio'. Mislio sam vise zbog servera da mi se hosting provajder ne dere na usi da ga davim ... Jer stranice cu da postavim sa nekim imenima ryiuyrweyuweirtwur.php koje cu da pokrecem iz cron-jobsa na svakih 12 sati ili svaki dan ... videcu jos ... znaci vreme ucitavanja nije problem koliko da ne udavim server ako skinem 1000 rezultata, parsiram ih i posle trebam da ih smestim u bazu. Nebi smelo da je problem ali eto pitam Smile

PS: A druga dva pitanja?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

kazes svakih 12 sati svaki dan.
A koliko treba da se izvrsi skripta ? vremenski u sek, minutima ili cemu vec.
Ne znam ni koji hosting.... satro imas odredjeno procesorko vreme koje ti se da i tako ta cuda....
ali ako nije bas predugacko i ako je van domasaja korisnika i njihovog kliktanja mislim da nece biti problema.

a sto se tice ostalih pitanja cekaj blood a Smile
kao sto vidis, ja krajnje mrzim ovo i ja sam ti rekao kako sam sebi nesto radio.... strpos, substr, str_replace i tako dalje Smile



offline
  • Pridružio: 05 Nov 2007
  • Poruke: 21
  • Gde živiš: Malta

Svemirko ::kazes svakih 12 sati svaki dan.
A koliko treba da se izvrsi skripta ? vremenski u sek, minutima ili cemu vec.
Ne znam ni koji hosting.... satro imas odredjeno procesorko vreme koje ti se da i tako ta cuda....
ali ako nije bas predugacko i ako je van domasaja korisnika i njihovog kliktanja mislim da nece biti problema.
Pa imam 3 servera zakupljena u USA (reseller) gde hostujem projekte/klijente i na svakom imam neko ogranicenje. Na mnogim serverima ako tvoj account uzme 5-6% CPU vremena ili RAM - iz predostroznosti te suspenduju pa ako ti se proces 'opameti' i oslobodi CPU/RAM onda te ponovo aktiviraju za 5 minuta. Ipak je to shared server a ne dedicated pa da mogu sta hocu. Ali ako neciji account na serveru jako cesto bude suspendovan onda te trajno suspenduju. E sad, ovaj projekat ce da ide na bluehost.com na kome vec imam jedan account i super sam zadovoljan. Nemogu da proguram na isti account jer imam tamo vec dva jako 'teska' sajta - svaki sa po 3000 unikatnih posetilaca dnevno - tako da bi me dodavanje ovoga pod isti account ubilo ko zeca. Ovi primeri koje pravim se izvrse jako brzo i prikazu za sekund-dva. Na to vreme i CPU/RAM se treba jos dodati i ubacivanje u MySQL tako da ako mogu ikako da napravim RE da je laksi za obradu za server - voleo bi da ga tako napravim.

Svemirko ::a sto se tice ostalih pitanja cekaj blood a Smile
kao sto vidis, ja krajnje mrzim ovo i ja sam ti rekao kako sam sebi nesto radio.... strpos, substr, str_replace i tako dalje Smile
Ako pokusam moj primer ">(.*)<\/a>(.*)\btxtSiteUrl=(.*)&amp; on mi odradi kao sto ovaj program prikaze:


Nije mi jasno zasto ne stane na "> koji su ispred CountPosts vec ode na onaj ispred njega ... kako da 'prikoci'?

I naravno ovde u ovom i slicnim programima imam ove opcije i za case sensitive, s, m, ... ali u kod kad ih stavim /">(.*)<\/a>(.*)\btxtSiteUrl=(.*)&amp;/simxg

on mi javlja gresku?! Da li ima neki redosled kako da pisem te dodatke iza /?

Pozdrav

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

1. U svakom slucaju radi sporije nego da ima samo jedan ili dva parametra, ali preg f-je su u svakom slucaju brze.
2. Mislim da ne moze, ali ovde ima bas svega o regexp pa mozda naidjes na nesto gde kaze da mozes: http://aspn.activestate.com/ASPN/docs/ActivePerl-5.6/lib/Pod/perlre.html

Ovaj tvoj reg exp mi nema bas nesto smisla, ajd stavi mi tacno sta ti treba pa da napisemo regexp za to.

Dopuna: 08 Nov 2007 20:20

Citat:
Nije mi jasno zasto ne stane na "> koji su ispred CountPosts vec ode na onaj ispred njega ... kako da 'prikoci'?

Po defaultu kod regexpa match je "greedy" tj. pokusava da pronadje najveci moguci match. U tvom slucaju pokupi sve izmedju prvog "> i poslednjeg & (ukljucujuci i ko zna koliko istih unutra). Znak '?' u ovom slucaju bi to trebao da iskljuci, znaci umesto (.*) kucas (.*?)

Dopuna: 08 Nov 2007 20:28

druga stvar, zar ti nije lakse da izvuces samo url i uradis mu explode po / i tako si dobio ceo url koji ti treba u nizu, posle samo isprintas onaj deo koji ti treba recimo
$url = explode("/",$urlFromRegExp); echo $url[4]; // ili koji ti gog vec treba //

offline
  • Pridružio: 05 Nov 2007
  • Poruke: 21
  • Gde živiš: Malta

Cao,

Hvala na odgovorima.

Blood ::1. U svakom slucaju radi sporije nego da ima samo jedan ili dva parametra, ali preg f-je su u svakom slucaju brze.Jasno

Blood ::2. Mislim da ne moze, ali ovde ima bas svega o regexp pa mozda naidjes na nesto gde kaze da mozes: aspn.activestate.com/ASPN/docs/ActivePerl-5.6/lib/Pod/perlre.html

Ovaj tvoj reg exp mi nema bas nesto smisla, ajd stavi mi tacno sta ti treba pa da napisemo regexp za to.

Radim prikupljanje linkova i stranica sa Google, MSN, i Yahoo. Google sam postavio ovde, MSN gradi linkove na isti nacin kao i Google pa je bilo lako da promenim skriptu i uradio sam za MSN. Yahoo se prave pametni pa u link ugrade i neki svoj redirekter a ne link - tako da ako primenim fazon kao u Google i MSN resenju - pokupi mi rds.yahoo.com/... pa kojesta iza.

Kada odradim getcontent iz PHP dobijam sledeci kod iz kog cupam podatke:

<li id="li5" class="yscheven no1" onmouseover="javascript:liOver(this,5)" onmouseout="javascript:liOut(this,5)"> <a class="yschttl" href="http://rds.yahoo.com/blog/razno/countposts-v-10-wordpress-plugin/">CountPosts v 1.0 - WordPress Plugin - Ðukijev blog</a> <address class="no1">   <span id="rslt1details5" class="ysrsltsdetails" style="position:inherit;display:none;"><span><a href='http://rds.yahoo.com/sitereg?.scrumb=0&amp;crumb=&amp;txtSiteUrl=http%3A%2F%2Fdjuki.padrino.rs%2Fblog%2Frazno%2Fcountposts-v-10-wordpress-plugin%2F&amp;btnRegSite'>Authenticate the site</a> to see additional information</span><span></span>&nbsp;&nbsp;&nbsp;&nbsp;<span></span></span>     <span class="yschurlline" style="padding-top:0;"><span id="ysrsltsurlinfo"><em class="yschurl"><b>djuki.padrino.rs</b>/blog/razno/<wbr>countposts-v-10-wordpress-plugin</em> - <em>81k</em> - <a href="http://rds.yahoo.com/search/cache?ipc=1&amp;.intl=&amp;u=djuki.padrino.rs/blog/razno/countposts-v-10-wordpress-plugin/&amp;d=JenSjPL9Pvgg&amp;p=http%3A%2F%2Fwww.elitesecurity.org">Cached</a></span>

Podaci koje odavde moram da pocupam su:
1. CountPosts v 1.0 - WordPress Plugin - Ðukijev blog
2. http%3A%2F%2Fdjuki.padrino.rs%2Fblog%2Frazno%2Fcountposts-v-10-wordpress-plugin%2F

Moje resenje je: mycity.rs/must-login.png

Blood ::Po defaultu kod regexpa match je "greedy" tj. pokusava da pronadje najveci moguci match. U tvom slucaju pokupi sve izmedju prvog "> i poslednjeg & (ukljucujuci i ko zna koliko istih unutra). Znak '?' u ovom slucaju bi to trebao da iskljuci, znaci umesto (.*) kucas (.*?)Jasno

Blood :: druga stvar, zar ti nije lakse da izvuces samo url i uradis mu explode po / i tako si dobio ceo url koji ti treba u nizu, posle samo isprintas onaj deo koji ti treba recimo
$url = explode("/",$urlFromRegExp); echo $url[4]; // ili koji ti gog vec treba //

Lakse bi bilo da Yahoo ne stavlja u link budzu od kojekakvih stvari i pravi link je iza txtSiteUrl= Neznam jel moze nesto kao: $url = explode("txtSiteUrl=",$urlFromRegExp);
Ko zna, mozda i moze ali mi nekako bilo prirodnije i logicnije da txtSiteUrl= koristim ko granicnik odakle da uzimam podatke.

Hvala puno

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

$pattern    = '{<a class="yschttl".*?">(.*?)</a>.*?u=(.*?)&amp;}s'; $content    = '<li id="li5" class="yscheven no1" onmouseover="javascript:liOver(this,5)" onmouseout="javascript:liOut(this,5)"> <a class="yschttl" href="http://rds.yahoo.com/blog/razno/countposts-v-10-wordpress-plugin/">CountPosts v 1.0 - WordPress Plugin - Ðukijev blog</a> <address class="no1">   <span id="rslt1details5" class="ysrsltsdetails" style="position:inherit;display:none;"><span><a href=\'http://rds.yahoo.com/sitereg?.scrumb=0&amp;crumb=&amp;txtSiteUrl=http%3A%2F%2Fdjuki.padrino.rs%2Fblog%2Frazno%2Fcountposts-v-10-wordpress-plugin%2F&amp;btnRegSite\'>Authenticate the site</a> to see additional information</span><span></span>&nbsp;&nbsp;&nbsp;&nbsp;<span></span></span>     <span class="yschurlline" style="padding-top:0;"><span id="ysrsltsurlinfo"><em class="yschurl"><b>djuki.padrino.rs</b>/blog/razno/<wbr>countposts-v-10-wordpress-plugin</em> - <em>81k</em> - <a href="http://rds.yahoo.com/search/cache?ipc=1&amp;.intl=&amp;u=djuki.padrino.rs/blog/razno/countposts-v-10-wordpress-plugin/&amp;d=JenSjPL9Pvgg&amp;p=http%3A%2F%2Fwww.elitesecurity.org">Cached</a></span>';     preg_match_all($pattern,$content,$result); $i = 0; while ($i < count($result[1])) {     echo $result[1][$i].' => '.$result[2][$i]."<br />\n";     $i++; };

Ja sam kao rezultat dobio ovo Wink
CountPosts v 1.0 - WordPress Plugin - Ðukijev blog => djuki.padrino.rs/blog/razno/countposts-v-10-wordpress-plugin/

offline
  • Pridružio: 05 Nov 2007
  • Poruke: 21
  • Gde živiš: Malta

Blood ::Ja sam kao rezultat dobio ovo Wink
Hehe ... hvatas drugu instancu stringa ... ko zna zna ... ko ne zna - naucice Smile Za mene je to bilo 'predaleko' da bi ga ciljao sa gladnim i sitim kukicama i kvakicama Smile Pa sam hteo ovog blizeg Smile

Hvala na pomoci

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

heh, pravo da ti kazem ovaj gornji nisam ni video Smile ali i da jesam verovatno bi opet uFatio ovaj donji jer je url lepsi, ti sada samo ispred dodaj http:// i zavrsio si posao. Nisam siguran ali mislim da je ovaj gornji url enkodovan, posle bi morao da koristis jos najmanje jednu f-ju za dekodovanje, ili str_replace pa da menjas %2F u / zato mislim da je ovako lakse.

Np.

Ko je trenutno na forumu
 

Ukupno su 858 korisnika na forumu :: 32 registrovanih, 9 sakrivenih i 817 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., Aleksandar Tomić, Apok, Ben Roj, bojank, bokisha253, comi_pfc, doloress, draggan, HrcAk47, ILGromovnik, Krvava Devetka, kunktator, milenko crazy north, ostoja, Parker, Romibrat, saputnik plavetnila, sasa87, Sir Budimir, Sićko, slonic_tonic, sovanova95, SR-3m, stalja, tubular, uruk, vaso1, VojvodaMisic, wolverined4, zlaya011, šumar bk2