PHP-da regulýar ifadeler arkaly gözlegde gapjyk
Geliň, bizde bir domaini öz içine alýan setir bolsun:
<?php
$str = 'eee site.ru bbb';
?>
Geliň şu domaini tapalyň we ony böleklerine bölýäliň: domain adyny onuň zolagyndan aýyralyň. Bun üçin biz regulýar ifadeleriň ýörite gapjyk ulanyarys.
Gapjyk massiwiň elementleridir, regulýar ifade tarapyndan tapylan bölekler solýa bilinýär. Bizim ýagdaýymyzda birinji gapjyga biz domain adyny, ikinjisine bolsa onuň zolagyny goýup bileris.
Geliň muny edeliň. Ilki bilen, setirdäki domaini tapýan regulýar ifadeny ýazalyň:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Geliň indi öz regulýar ifademizde, haýsy bölekleriň haýsy gapjyga düşmelidigini belgileýäliň. Bu aýlawly möşükler kömegi bilen amala aşyrylýar. Geliň olar bilen domain adyny gözleýän regulýar bölegini we domain zolagyny gözleýän bölegini aýyralyň:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Indi preg_match funksiýasynda
üçünji parametr hökmünde üýtgeýjini (ady islendik) görkezeliň:
<?php
preg_match($reg, $str, $res);
?>
Görkezilen üýtgeýji tapylan gapjyk bilen massiw bilen doldurylar. Şol ýerde, massiwiň nol elementinde tapylan setir ýerleşer, birinji elementde - birinji gapjyk, ikinji elementde - ikinji gapjyk we ş.m.:
<?php
preg_match($reg, $str, $res);
var_dump($res); // ['site.ru', 'site', 'ru'] çykarýar
?>
Sene bilen setir berlen:
<?php
$str = '2025-12-31';
?>
Ýyly, aýy we güni aýratyn gapjyk goýuň.
Faýl ady bilen setir berlen:
<?php
$str = 'index.html';
?>
Faýlyň adyny we onuň giňeltmesini aýratyn gapjyk goýuň.