PHP හි නිත්‍ය ප්‍රකාශනවල නම්ලිය ගිලිහුණු

preg_match භාවිතයෙන් අපට දිනය දින, මාසය සහ වර්ෂය ලෙස කඩා ඇති බවට කැමති යැයි සිතමු. මේ සඳහා ගිලිහුණු භාවිතා කරමු:

php<?php
  $str = '2025-10-29';
  $reg = '#(\d{4})-(\d{2})-(\d{2})#';
  
  preg_match($reg, $str, $match);
  var_dump($match); // ප්‍රතිදානය වන්නේ ['2025-10-29', '2025', '10', '29']
?>

ඔබට පෙනෙන පරිදි, ප්‍රතිඵලය ලෙස අපට අරාවක් ලැබේ, එහි ශුන්‍යවන මූලද්‍රව්‍යයේ සම්පූර්ණ දිනය වනු ඇත, පළමුවැන්න - වර්ෂය, දෙවැන්න - මාසය, තෙවැන්න - දිනය.

කෙසේ වෙතත්, සමහර විට, ගිලිහුණු වල අන්තර්ගතය සංස්ථා අරාවක් ලෙස ලබා ගැනීම පහසු වනු ඇත. එනම් අපගේ නඩුවේදී ලබා ගැනීම හොඳයි මේ වගේ අරාවක්:

php[
  'year'  => '2025',
  'month' => '10',
  'day'   => '29'
]

මේ සඳහා නිත්‍ය ප්‍රකාශනවල විශේෂ වාක්‍ය රීතියක් පවතී. එය නම්: (?<name>pattern), මෙහි pattern - මෙය නිත්‍ය ප්‍රකාශනයක් වන අතර name - මෙය ගිලිහුණුවේ නම වේ.

දැන් අපි අපගේ දිනය සඳහා නිත්‍ය ප්‍රකාශනය නම්ලිය ගිලිහුණු ඔස්සේ යළි ලියමු:

php<?php
  $str = '2025-10-29';
  $reg = '#(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})#';
  
  preg_match($reg, $str, $match);
  var_dump($match);
?>

ප්‍රතිඵලයක් ලෙස අපට සංස්ථා අරාවක් ලැබෙනු ඇත, එහි යතුරු ගිලිහුණු වල නම් වන අතර, අගයන් - ඒවායින් ඇතුළු වූ දේ:

php[
  'year'  => '2025',
  'month' => '10',
  'day'   => '29',
]

ඇත්ත වශයෙන්ම, ප්‍රතිඵල සමඟ ඇති අරාවේ අගයන් ගිලිහුණු වලට නම හරහා සහ අනුක්‍රමික අංකය හරහා ප්‍රවේශ විය හැකිය. එනම්, උදාහරණයක් ලෙස, වර්ෂයට යතුර 'year' හරහා සහ අංකය 1 හරහා ප්‍රවේශ විය හැකිය, මාසය - යතුර 'month' හරහා සහ අංකය 2 හරහා සහ එසේම:

php[
  'year'  => '2025',
  'month' => '10',
  'day'   => '29',
  
  1       => '2025',
  2       => '10',
  3       => '29'
]

විස්තර කර ඇති නම්ලිය ගිලිහුණු වලට තවත් කිහිපයක් විකල්ප වාක්‍ය රීති ඇත: (?P<name>pattern) සහ (?'name'pattern).

Задание 1

වේලාව සමඟ නූලක් ලබා දී ඇත:

php<?php
  $str = '12:59:59';
?>

පැය, මිනිත්තු සහ තත්පර වෙනම නම්ලිය ගිලිහුණු වලට තබන්න.

Задание 2

ප්‍රතිඵල සමඟ ඇති අරාවේ සියලුම අංකන ගිලිහුණු මකා දමන, ඉතිරි කර කෙලින්ම නම්ලිය ගිලිහුණු පමණක් ඇති කාර්යයක් ලියන්න.