Preg_filter ֆունկցիա

preg_filter ֆունկցիան կատարում է որոնում և փոխարինում տողում կամ տողերի զանգվածում կանոնավոր արտահայտությամբ: Ի տարբերություն preg_replace-ի, այն վերադարձնում է միայն այն տարրերը, որոնցում հայտնաբերվել է համընկնում: Առաջին պարամետրով ընդունում է կանոնավոր արտահայտություն, երկրորդով՝ փոխարինման տող, երրորդով՝ մշակման ենթակա տող կամ զանգված: Չորրորդ ընտրովի պարամետրում կարելի է սահմանել յուրաքանչյուր տարրում փոխարինումների առավելագույն քանակը (լռելայնով -1, ինչը նշանակում է «առանց սահմանափակումների»): Հինգերորդ ընտրովի պարամետրում նշվում է փոփոխական, որի մեջ կգրանցվի կատարված փոխարինումների քանակը:

Շարահյուսություն

phppreg_filter(pattern, replacement, subject, [limit = -1], [count]);

Օրինակ

Փոխարինենք բոլոր թվանշանները տողում 'X' նշանով:

php<?php
  $res = preg_filter('/\d/', 'X', 'a1b2c3');
  var_dump($res);
?>

Կոդի կատարման արդյունքը:

php'aXbXcX'

Օրինակ

Մշակենք տողերի զանգված՝ թվանշանները փոխարինելով '#'-ով:

php<?php
  $res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
  var_dump($res);
?>

Կոդի կատարման արդյունքը:

php['a#', 'b#', 'd#']

Օրինակ

Ցուցադրենք տարբերությունը preg_replace-ից:

php<?php
  $input = ['a1', 'b2', 'c', 'd4'];
  $res_filter = preg_filter('/\d/', '#', $input);
  $res_replace = preg_replace('/\d/', '#', $input);
  echo "Filter result: ";
  var_dump($res_filter);
  echo "Replace result: ";
  var_dump($res_replace);
?>

Կոդի կատարման արդյունքը:

phpFilter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']

Տես նաև

  • preg_replace ֆունկցիան,
    որը կատարում է փոխարինում կանոնավոր արտահայտությամբ
  • preg_match ֆունկցիան,
    որը ստուգում է համապատասխանությունը կանոնավոր արտահայտությանը