Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Čestný člen
Čestný člen
rozne funkcie, vacsinou regexp

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 08.04.2008 22:16

som akurat trochu kodil a povedal som si, ze par funkcii mozno niekomu z vas pomoze, pripadne sa predide v buducnosti nejakym zbytocnym otazkam, tak nech sa paci
Kód:
/**
 *   Make perex with highlighted searched expression.
 *   @param string [$text] text
 *   @param string [$search] searched expression
 *   @param int [$lenght] perex lenght
 *   @return string perex with searched highlighted expression or false
 */
function searchAndMakePerex($text, $search, $lenght = 250) {
   //strip tags from text
   $text = strip_tags($text);
   //if find expression $search
   if(eregi($search, $text)) {
      //set default start and lenght of substring
      $start = $lenght / 2;
      //find position of searched expression
      $pos = stripos($text, $search);
      if($pos - $start < 0) {
         $start = $pos;
      }
      //cut text where searched expression is found
      $substr = substr($text, $pos - $start, strlen($search) + $lenght);
      //highlight found expression
      return eregi_replace($search,"<strong>$search</strong>", $substr);
   } else {
      return false;
   }
}

/**
 *   Make hyperlinks in text.
 *   @param string [$text] text with raw url address
 *   @return string text with hyperlinks
 */
function makeHyperLinks($text) {
   //make hyperlinks from protocol://some-address
   $text = eregi_replace("(([a-zA-Z]{3,5})://([/:;?=&+_a-zA-Z0-9\.\-]+)*)", "<a href=\"\\0\">odkaz</a>(<a href=\"\\0\" target=\"blank\">nove okno</a>)", $text);
   //make hyperlinks from www.some-address
   $text = eregi_replace("([^/]([w]{3})\.)([/:;?=&+_a-zA-Z0-9\.\-]+)", " <a href=\"http://\\2.\\3\">odkaz</a>(<a href=\"http://\\2.\\3\" target=\"blank\">nove okno</a>)", $text);
   //make hyperlinks from ftp.some-address
   $text = eregi_replace("([^/](ftp)\.)([/:;?=&+_a-zA-Z0-9\.\-]+)", " <a href=\"ftp://\\3\">odkaz</a>(<a href=\"ftp://\\3\" target=\"blank\">nove okno</a>)", $text);
   //make mailto hyperlinks from some@email.tdl
   $text = eregi_replace("([/&+_a-zA-Z0-9\.\-]+)@([/&+_a-zA-Z0-9\.\-]+)\.([a-zA-Z]{2,5})", "<a href=\"mailto:\\0\">mail</a>", $text);
   return $text;
}

/**
 *   Check string if is a phone number
 *   @param string [$text] phone number wich is beginning with preset of country
 *   @param int [$lenght] minimal lenght of phone number
 *   @param int [$lenght2] maximal lenght of phone number
 *   @return bolean
 */
function isPhoneNumber($num, $lenght = null, $lenght2 = null) {
   if(!is_null($lenght) and !is_null($lenght2)) {
      return(ereg("^(\+([0-9]{ " . $lenght . "," . $lenght2 . "}))$", $num) ? true : false);
   } elseif(!is_null($lenght)) {
      return(ereg("^(\+([0-9]{ $lenght }))$", $num) ? true : false);
   } else {
      return(ereg("^(\+([0-9]+))$", $num) ? true : false);
   }
}

/**
 *   Check string if is an email address
 *   @param string [$email] email address
 *   @return bolean
 */
function isEmail($email) {
   return(ereg("^([/&+_a-zA-Z0-9\.\-]+)@([/&+_a-zA-Z0-9\.\-]+)\.([a-zA-Z]{2,5})$", $email) ? true : false);
}

/**
 *   Check string if is a date in YYYY-mm-dd format
 *   @param string [$date] phone number wich is beginning with preset of country
 *   @return bolean
 */
function isDate($date) {
   return(ereg("^([0-9]{4})-([0-9]{2})-([0-9]{2})$", $date) ? true : false);
}

/**
 *   Make string from array
 *   @param array [$array] some array
 *   @return string
 */
function makeStringFromArray($array) {
   foreach($array as $arr) {
      $string .= $arr . "|";
   }
   $string = trim($string,"|");
   return $string;
}


Naposledy upravil suchy dňa 11.06.2008 0:20, celkovo upravené 1






_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1
Bydlisko: 127.0.0.1
Príspevok NapísalOffline : 09.04.2008 9:57

niektore v pohode. ale imho chyba davka abstrakcie hlavne pri telefonnych cislach. a fcia. makestringfromarray? neni lepsie pouzit fciu implode? :P







_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Čestný člen
Čestný člen
rozne funkcie, vacsinou regexp

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok Napísal autor témyOffline : 09.04.2008 13:00

heh. ale ano :D len v tej chvili ma vsak nenapadlo hladat taku funkciu. nevadi, aspon som o nieco mudrejsi







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 09.04.2008 14:32

preco su popisi v anglictine? ved sme slovenske forum :)


Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1
Bydlisko: 127.0.0.1
Príspevok NapísalOffline : 09.04.2008 16:52

Drako píše:
preco su popisi v anglictine? ved sme slovenske forum :)

pretoze k IT neodmyslitelne patri anglictina. a uprimne povedane slovensky ani iny jazyk do IT nepatri ;)
Suchy-> myslim ze funkcia na linky ti v pripade https:// fungovat nebude. mohol by si to dorobit ;)







_________________
PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber...
Offline

Čestný člen
Čestný člen
rozne funkcie, vacsinou regexp

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok Napísal autor témyOffline : 09.04.2008 17:20

funguje, mas to hned prvy replace ;)
a drako to, ze sme slovenske forum nevadi, predpokladam, ze vacsina ludi v it svete ovlada anglicky aspon citat. v kode by sa nemala prekryvat anglictina so slovencinou.







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 09.04.2008 17:51

ale asopn do poznamok si to mohol dat...nechce sa mi velmi teraz si to prekladat kedze anglinu nemam v malicku


Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 09.04.2008 19:10

parada.. akurat take neco zhanam :) zide sa !!!
tu je anglina na mieste







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.06.08
Prihlásený: 09.07.08
Príspevky: 39
Témy: 1
Príspevok NapísalOffline : 11.06.2008 0:08

mozno trosku opozdene ale len nedavno som sa regol a pozeral som starsie veci. vsimol som si tu chybu

konkretne tu
Kód:
$text = eregi_replace("([/&+_a-zA-Z0-9\.\-]+)@([/&+_a-zA-Z0-9\.\-]+)\.([a-zA-Z]{2-5})", "<a href=\"mailto:\\0\">mail</a>", $text);


ma byt hadam {2,5} namiesto {2-5} alebo sa mylim? :)


Offline

Čestný člen
Čestný člen
rozne funkcie, vacsinou regexp

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok Napísal autor témyOffline : 11.06.2008 0:19

heh. nemylis sa. opravim to. dik za upozornenie.







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12
Príspevok NapísalOffline : 10.07.2008 10:47

No ked uz sme pri tych regexoch :)
Spravil som si taky jednoduchy filter na prechadzanie BB kodu, konkretne napriklad tag
Kód:
[i]

a vsetko co je v nom, je rozpoznavane filtrom:
Kód:
/\[i\](.+)\[\/i\]/

(to je filter na odchytavanie, to potom ide do preg_replace no a replacuje sa to za toto:
Kód:
<i>\\1</i>

(\\1 odkazuje na match v prvej zatvorke v tom filtri... )
Ono to krasne slape, ale ak mam text, kde je viac takychto oblasti za sebou, priklad:
Kód:
[i]formatovany text[/i]neformatovany text[i]znova formatovany text[/i]

tak ten match "zozerie" uplne vsetko, od prveho zacinajuceho tagu po POSLEDNY ukoncovaci tag...
takze moja otazka: ako odladit ten filter tak, aby to parsoval tak, ako ma, teda kazdu oblast zvlast?
PS: Tam ako je to (.+) nemozem dat nieco taketo:
Kód:
([^\[\]]+)

pretoze potom by nefungovali vnorene tagy (keby som chcel dat napriklad text kurzivou a NAVYSE podskrtnuty...)


Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 10.07.2008 12:17

takto
Kód:
/\[i\](.+?)\[\/i\]/

musis nato pouzit lenivy kvantifikator


Offline

Skúsený užívateľ
Skúsený užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 10.07.2008 12:56

isDate by som spravil skôr pomocou explode a checkdate(). Používať na všetko regexp neodporúčam, pretože to je trocha pomalé. Inak táto tvoja funkcia by ti odsúhlasila dátum 0001-99-54, čo samozrejme nemôže byť dátum


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12
Príspevok NapísalOffline : 10.07.2008 14:26

juho píše:
takto
Kód:
/\[i\](.+?)\[\/i\]/

musis nato pouzit lenivy kvantifikator


Diky, uz to bezi :)
Este jedna otazka: . zrejme neznamena uplne hocijaky znak, pretoze akonahle sa tam vyskytne enter (crlf; chr(13) + chr(10); atd... no chapeme sa :D ) tak to nematchne.. takze treba tam dat nejaky modifikator aby do mnoziny znakov ktore su zastupene bodkou (.) bral aj crlf ?

EDIT: Charset je vsade UTF-8


Offline

Užívateľ
Užívateľ
rozne funkcie, vacsinou regexp

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 10.07.2008 15:01

ked to chces mat v podobe bbcode tak radsej pouzi
Kód:
nl2br($text);
a nad ziadnymi [\r\n] nemusis rozmyslat


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12
Príspevok NapísalOffline : 10.07.2008 16:36

Noo take nieco tam uz je, ale asi nie takto.. skusim pozriet
Keby to neslo, da sa to aj cez nejaky modifikator pre regex ?

EDIT: Už som na to prišiel... modifikátor /s bolo treba použiť, ten je priamo na to, aby bodka . matchovala aj newline :)


Odpovedať na tému [ Príspevkov: 16 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. rozne menu pre rozne podstranky

v PHP, ASP

1

522

22.01.2008 22:08

qacer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SESSION regexp

v Webhosting a servery

9

739

08.11.2008 16:27

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. regexp help

v PHP, ASP

2

364

10.06.2009 17:44

Draex Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zvuk - obcas ide, vacsinou nie

v Zvuk

8

487

03.10.2011 14:42

Skyro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pc vacsinou internet do 200€

v PC zostavy

13

418

09.04.2012 20:13

MaTT753 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc z regexp

v PHP, ASP

8

536

25.01.2010 10:26

pilná lama glama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PC+Monitor do 600€ (Väčšinou na hranie)

v PC zostavy

0

265

11.03.2014 15:47

eXpoler Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zend_Db a multiple REGEXP

v PHP, ASP

11

660

21.04.2010 19:55

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. T-Com zdražil všetky programy, väčšinou iba kozmeticky

v Novinky

5

492

16.10.2010 14:14

Johnnny Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. regexp - iba cisla a line break

v JavaScript, VBScript, Ajax

2

290

22.04.2012 10:43

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. funkcie

v Assembler, C, C++, Pascal, Java

5

867

15.11.2007 9:57

sento Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. excel - funkcie

v Ostatné programy

5

438

20.03.2013 15:56

Winnetou Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. API funkcie

v Assembler, C, C++, Pascal, Java

21

1975

12.09.2008 23:05

stopa27 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel - funkcie

v Ostatné programy

0

422

24.02.2016 10:06

mio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POLYNOMICKE FUNKCIE

v Assembler, C, C++, Pascal, Java

2

735

17.01.2009 20:48

dianka10 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ajaxove funkcie

v JavaScript, VBScript, Ajax

13

809

11.05.2009 23:01

feko.yxo Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra