[ 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: 1757
Témy: 17 | 17
NapísalOffline : 08.04.2008 22:16 | rozne funkcie, vacsinou regexp

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 | 1
Bydlisko: 127.0.0.1
NapísalOffline : 09.04.2008 9:57 | rozne funkcie, vacsinou regexp

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: 1757
Témy: 17 | 17
Napísal autor témyOffline : 09.04.2008 13:00 | rozne funkcie, vacsinou regexp

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 09.04.2008 14:32 | rozne funkcie, vacsinou regexp

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 22.11.07
Prihlásený: 26.02.10
Príspevky: 253
Témy: 1 | 1
Bydlisko: 127.0.0.1
NapísalOffline : 09.04.2008 16:52 | rozne funkcie, vacsinou regexp

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: 1757
Témy: 17 | 17
Napísal autor témyOffline : 09.04.2008 17:20 | rozne funkcie, vacsinou regexp

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 09.04.2008 17:51 | rozne funkcie, vacsinou regexp

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 09.04.2008 19:10 | rozne funkcie, vacsinou regexp

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 | 1
NapísalOffline : 11.06.2008 0:08 | rozne funkcie, vacsinou regexp

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: 1757
Témy: 17 | 17
Napísal autor témyOffline : 11.06.2008 0:19 | rozne funkcie, vacsinou regexp

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 | 12
NapísalOffline : 10.07.2008 10:47 | rozne funkcie, vacsinou regexp

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 | 6
NapísalOffline : 10.07.2008 12:17 | rozne funkcie, vacsinou regexp

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: 1586
Témy: 96 | 96
NapísalOffline : 10.07.2008 12:56 | rozne funkcie, vacsinou regexp

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 | 12
NapísalOffline : 10.07.2008 14:26 | rozne funkcie, vacsinou regexp

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 | 6
NapísalOffline : 10.07.2008 15:01 | rozne funkcie, vacsinou regexp

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 | 12
NapísalOffline : 10.07.2008 16:36 | rozne funkcie, vacsinou regexp

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 :)


 [ Príspevkov: 16 ] 


rozne funkcie, vacsinou regexp



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

262

22.01.2008 22:08

qacer

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

Pc vacsinou internet do 200€

v PC zostavy

13

275

09.04.2012 20:13

MaTT753

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

Zvuk - obcas ide, vacsinou nie

v Zvuk

8

283

03.10.2011 14:42

Skyro

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

regexp help

v PHP, ASP

2

202

10.06.2009 17:44

Draex

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

SESSION regexp

v Webhosting a servery

9

574

08.11.2008 16:27

Tominator

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

pomoc z regexp

v PHP, ASP

8

356

25.01.2010 10:26

pilná lama glama

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

PC+Monitor do 600€ (Väčšinou na hranie)

v PC zostavy

0

151

11.03.2014 15:47

eXpoler

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

Zend_Db a multiple REGEXP

v PHP, ASP

11

363

21.04.2010 19:55

rooobertek

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

303

16.10.2010 14:14

Johnnny

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

regexp - iba cisla a line break

v JavaScript, VBScript, Ajax

2

129

22.04.2012 10:43

neopagan

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

funkcie

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

5

639

15.11.2007 9:57

sento

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

Excel - funkcie

v Ostatné programy

0

163

24.02.2016 10:06

mio

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

POLYNOMICKE FUNKCIE

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

2

440

17.01.2009 20:48

dianka10

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

Ajaxove funkcie

v JavaScript, VBScript, Ajax

13

556

11.05.2009 23:01

feko.yxo

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

excel - funkcie

v Ostatné programy

5

173

20.03.2013 15:56

Winnetou

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

API funkcie

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

21

1575

12.09.2008 23:05

stopa27



© 2005 - 2017 PCforum, edited by JanoF