Гурӯҳбандӣ дар ҷустуҷӯ бо истифода аз ибораҳои оддӣ дар PHP
Бигзор мо сатреро дошта бошем, ки доменро дар бар мегирад:
<?php
$str = 'eee site.ru bbb';
?>
Биёед ин доменро ёбем ва онро ба қисмҳо тақсим кунем: номи доменро аз минтақаи он ҷудо кунем. Барои ин мо аз гурӯҳбандӣ (карманы)-и ибораҳои оддӣ истифода мебарем.
Гурӯҳбандӣ элементҳои массиверо ташкил медиҳанд, ки ба онҳо метавон қисмҳои ёфташудаи ибораи оддӣ гузошт. Дар ҳолати мо, ба гурӯҳи якум мо метавонем номи доменро, ва ба гурӯҳи дуюм - минтақаи онро гузорем.
Биёед ин корро анҷом диҳем. Аввал ибораи оддиеро нависем, ки доменро дар сатр меёбад:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Биёед акнун дар ибораи оддии худ муайян кунем, ки кадом қисмҳо ба кадом гурӯҳ бояд биафтанд. Ин бо истифода аз қавсҳои даврӣ анҷом дода мешавад. Биёед ба ёрии онҳо қисмеро, ки номи доменро меҷӯяд, ва он қисмеро, ки минтақаи домениро меҷӯяд, ҳимоя кунем:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Акнун дар функсияи preg_match ҳамчун
параметри сеюм тағирёбандаеро (номи дилхоҳ) муайян кунем:
<?php
preg_match($reg, $str, $res);
?>
Ба тағирёбандаи муайянкардашуда массиве бо гурӯҳҳои ёфташуда меафтад. Дар ин ҳол, дар унсури сифрии массив сатри ёфташуда хоҳад буд, дар унсури якум - гурӯҳи якум, дар унсури дуюм - гурӯҳи дуюм ва ҳамин тавр:
<?php
preg_match($reg, $str, $res);
var_dump($res); // массиви ['site.ru', 'site', 'ru']-ро бармегардонад
?>
Сатр бо сана дода шудааст:
<?php
$str = '2025-12-31';
?>
Сол, моҳ ва рӯзро ба гурӯҳҳои ҷудогона гузоред.
Сатр бо номи файл дода шудааст:
<?php
$str = 'index.html';
?>
Номи файл ва васеъшавии онро ба гурӯҳҳои ҷудогона гузоред.