rtgx

Regulárne výrazy v PHP

Popis skratiek

^

začiatok reťazca

$

koniec reťazca

.

jeden ľuvovoľný znak

*

opakovanie, ľubovoľný počet

+

opakovanie jeden krát

?

opakovánie maximálne jeden krát

{min,max}

opakovanie od min do max

{n}

opakovanie práve n-krát

0(podvýraz)

vytvorenie podvýrazu

[abc]

zoznam znakov (znaky a,b,c)

[a-zA-Z]

zoznam znakov (všechna písmena)

[^0-9]

negácia zoznamu (všetko okrem číslic)

Triedy znakov

Pri písaní regulárnych výrazov môžeme použiť triedy znakov.
Výraz [[:trieda:]] predstavuje jeden znak z danej triedy.

Trieda

Popis

alnum

alfanumerické znaky (písmená angl. abecedy + číslice)

alpha

písmená anglickej abecedy

blank

medzera a tabulátor

cntrl

riadiace znaky

digit

číslice

graph

znaky majúce grafické znázornenie

lower

malé písmená anglickej abecedy

print

tlačiteľné znaky

punct

interpunkčné a ďalšie znaky (zavináč, zátvorky...)

space

akákoľvek medzera (medzera, tabulátor, nový riadok, nová stránka...)

upper

velké písmená anglickej abecedy

xdigit

číslice šetnástkovej sústavy

Napríklad regulárnímu výrazu [[:digit:]]{2} vyhovuje reťazec obsahujúci dvojmiestne číslo (54, ale aj sdf78fd).

Príklady

Funkcia strip_tags_attributes odstráni zo vstupného reťazca HTML tagy okrem vybraných (definovaných ako pole v premennej aAllowedTags) a odstráni atribúty HTMl tagov definované v premennej  disabledAttributes tiež ako pole.

	/*
* Strip HTML tags and selected attributes.
*
* Example:
* $aAllowedTags = array( '<p>', '<b>', '<strong>', '<ul>', '<ol>', '<li>' );
* $disabledAttributes = array( 'class', 'style', 'align', 'color', 'font' );
* strip_tags_attributes( $string, $aAllowedTags, $disabledAttributes );
*
* @author Kalle Sommer Nielsen
* @url www.php.net/strip-tags
*
* @param string $sSource: source string
* @param array $aAllowedTags: alllowed HTML tags
* @param array $aDisabledAttributes: removed attributes
* @return string return: parsed string
*/
function strip_tags_attributes( $sSource, $aAllowedTags = array( '<p>', '<b>', '<strong>', '<ul>', '<ol>', '<li>' ), $aDisabledAttributes = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavaible', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragdrop', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterupdate', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmoveout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload' ) ) {

$sSource = stripslashes( $sSource );

if( empty( $aDisabledAttributes ) )
return ( strip_tags( $sSource, implode( '', $aAllowedTags ) ) );
return ( preg_replace( '/<(.*?)>/ie', "'<' . preg_replace(array('/javascript:[^\"\']*/i', '/(" . implode('|', $aDisabledAttributes) . ")[ \\t\\n]*=[ \\t\\n]*[\"\'][^\"\']*[\"\']/i', '/\s+/'), array('', '', ' '), stripslashes('\\1')) . '>'", strip_tags($sSource, implode('', $aAllowedTags)) ) );
}

Funkcia replaceLinks skonvertuje všetky mailové a URL adresy vo vstupnom reťazci na adresa s odkazom (anchor tagom).

	/*
* Convert text with email and URL addres to text with anchors.
*
* 1. convert support@pogoda.in into <a href="mailto:support@pogoda.in">support@pogoda.in</a>
* 2. convert www.pogoda.in/new_york/eng/ into <a href="http://pogoda.in/new_york/eng/">pogoda.in/new_york/eng/</a>
* 3. convert www.pogoda.in/new_york/eng/ into <a href="http://www.pogoda.in/new_york/eng/">www.pogoda.in/new_york/eng/</a>
*
* @author Vladimir Luchaninov
* @url www.php.net/function.eregi-replace
*
* @param string $text: source string
* @return string return: parsed string
*/
function replaceLinks( $text ) {

$text = ereg_replace('[-a-z0-9.!#$%&\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*', '<a href="mailto:\\0">\\0</a>',$text);
$text = ereg_replace('[a-zA-Z]+://(([.]?[a-zA-Z0-9_/-])*)', '<a href="\\0">\\1</a>',$text);
$text = ereg_replace('(^| )(www([-]*[.]?[a-zA-Z0-9_/-?&%])*)', ' <a href="http://\\2">\\2</a>',$text);
return $text;
}

Generátor typoscriptu

Vytvára typoscript pre bežné použitie. Generátor je jednoduchý na obsluhu, stačí vyplniť zopár položiek formulára.

Odkazy