PHP.mk документација

preg_filter

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.preg-filter.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.preg-filter.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
preg_filter

Референца за `function.preg-filter.php` со подобрена типографија и навигација.

function.preg-filter.php

preg_filter

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

preg_filterИзврши пребарување и замена со регуларен израз

= NULL

preg_filter(
         string|array $pattern,
         string|array $replacement,
         string|array $subject,
         int $limit = -1,
         int &$count = null
): string|array|null

preg_filter() е идентично со preg_replace() освен што враќа само (можеби трансформирани) предмети каде што имало совпаѓање. За детали за тоа како работи оваа функција, прочитајте го preg_replace() documentation.

Параметри

Параметрите се опишани во документацијата за preg_replace().

Вратени вредности

Враќа array ако subject параметарот е array, или string otherwise.

Ако не се најдат совпаѓања или се случи грешка, празно array се враќа кога subject е array or null otherwise.

Errors/Exceptions

Ако дадениот регуларен израз не може да се состави во валиден регуларен израз, еден E_WARNING се емитува.

Примери

Пример #1 Пример за споредба preg_filter() with preg_replace()

<?php
$subject
= array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$pattern = array('/\d/', '/[a-z]/', '/[1a]/');
$replace = array('A:$0', 'B:$0', 'C:$0');

echo
"preg_filter returns\n";
print_r(preg_filter($pattern, $replace, $subject));

echo
"preg_replace returns\n";
print_r(preg_replace($pattern, $replace, $subject));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

preg_filter returns
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace returns
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)

Види Исто така

  • — Parle\ParserException класа
  • preg_quote() - Квотирајте знаци за регуларни изрази
  • preg_replace() - Изврши пребарување и замена на регуларни изрази
  • preg_replace_callback() - Изврши пребарување и замена со регуларен израз со користење на повици
  • preg_grep() - Врати ги записите од низата што одговараат на моделот
  • preg_last_error() - Враќа код за грешка од последното извршување на PCRE регуларен израз

Белешки од корисници 3 белешки

forsoap на gmail точка com
пред 9 години
For those who read manual not in English and figure out that example code returns not the same result as in documentation

You need put in example patter modifier "u" to get same result:

<?php
$subject = array('1', 'а', '2', 'б', '3', 'А', 'Б', '4');
// Added "u"
$pattern = array('/\d/u', '/[а-я]/u', '/[1а]/u');
$replace = array('А:$0', 'Б:$0', 'В:$0');
?>
. И двете од следниве резултираат со грешка при компилација:
пред 8 години
If you don't want to actually replace the matches, just filter the array to them, make the replacement parameter '$0'.

<?php
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); 
$result = preg_filter('/\d/', '$0', $subject);  // ['1','2','3','4']
?>
sajina_99 на hotmail точка de
пред 14 години
As I had to work with PHP5.2.X and needed preg_filter I wrote a quick and dirty workaround.

<?php
  if (!function_exists('preg_filter')) {
  
    function preg_filter($pattern, $replace, $subject, $limit = -1 , &$count = null) {
    
      if(!is_array($subject)) {
        $noArray = 1 ;
        $subject = array($subject);
      }

      $preg = preg_replace($pattern, $replace, $subject, $limit,  &$count);

      $diff = array_diff($preg, $subject);
      
      if($noArray == 1) $diff = implode($diff) ;

      return $diff ;
      
    }
    
  }
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.