Loading:


    preg_replace_callback
    preg_replace_callback ( $pattern $callback , $subject [, int $limit [, int &$count ]] )

    preg_replace_callback — Wykona wyszukiwania wyrażeń regularnych i zastąpi je za pomocą wywołani


    Zachowanie tej funkcji jest niemal identyczny z preg_replace (), z wyjątkiem faktu, że zamiast zastąpienia parametru, należy określić callback .



    Parametry

     

    pattern

    Wzorzec do wyszukania. Może być ciągiem znaków lub tablicą z łańcuchem znaków.

    callback

    Wywołanie, które zostanie wykonane i przejdzie tablicę dopasowanych elemenów  w temacie ciągu. Wywołanie powinno zwrócić ciąg.


    Bedziesz musiał często wzwyzwać funkcję dla preg_replace_callback () tylko w jednym miejscu. W takim przypadku można użyć create_function () zadeklarować anonimową funkcję jako wywołanie preg_replace_callback().



    Example #1 preg_replace_callback() and create_function()


    <?php
    /* a unix-style command line filter to convert uppercase
     * letters at the beginning of paragraphs to lowercase */
    $fp fopen("php://stdin""r") or die("can't read stdin");
    while (!
    feof($fp)) {
        
    $line fgets($fp);
        
    $line preg_replace_callback(
            
    '|<p>\s*\w|',
            
    create_function(
                
    // single quotes are essential here,
                // or alternative escape all $ as \$
                
    '$matches',
                
    'return strtolower($matches[0]);'
            
    ),
            
    $line
        
    );
        echo 
    $line;
    }
    fclose($fp);
    ?>


    subject

      ciąg znaków lub tablica z ciągami do wyszukania i zastąpienia.

    limit
    Maksymalna możliwa zastępstw dla każdego wzoru w odniesieniu do każdego przedmiotu ciągu. Domyślna wartość to -1 (bez ograniczeń).


    count
    Jeśli określony, zmienna ta zostanie wypełniona liczbą wykonanych zastępstw.



    Zwracane wartości

    preg_replace_callback ()  zwraca tablicę, jeżeli parametr $subject  jest tablicą, lub ciągiem.

     



    Napisz Artyku³

    Listing


    //Example #2 preg_replace_callback() example

    <?php
    // ten tekst był użyty w 2002
    // chcemy zmienić tą date na  2003
    $text = "Prima Aprilis jest w dniu 04/01/2002\n";
    $text.= "Ostatnie święta były w  12/24/2001\n";
    // wywołanie funkcji
    function next_year($matches)
    {
      // jak zwykle: $matches[0] jest kompletnym dopasowaniem
      // $matches[1] dopasowanie dla pierwszego podwzorca
      //zamknięte w '(...)' i tak dalej
      return $matches[1].($matches[2]+1);
    }
    echo preg_replace_callback(
                "|(\d{2}/\d{2}/)(\d{4})|",
                "następny rok",
                $text);

    ?>

    //Powyższy przykład wyświetli:

    Prima Aprilis jest w dniu 04/01/2003
    Ostatnie święta były w 12/24/2002


       

    //Example #3 preg_replace_callback() użycie struktury do obsługi BB code

    <?php
    $input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";

    function parseTagsRecursive($input)
    {

        $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

        if (is_array($input)) {
            $input = '<div style="margin-left: 10px">'.$input[1].'</div>';
        }

        return preg_replace_callback($regex, 'parseTagsRecursive', $input);
    }

    $output = parseTagsRecursive($input);

    echo $output;
    ?>
     




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors