functie-preghighlight

Gesponsorde koppelingen

PHP script bestanden

  1. functie-preghighlight

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
error_reporting (E_ALL);

// paar defines voor extra typen
define ('PREG_HIGHLIGHT_CASELESS', 1);
define ('PREG_HIGHLIGHT_MULTILINE', 2);
define ('PREG_HIGHLIGHT_DOTALL', 4);
define ('PREG_HIGHLIGHT_EXTENDED', 8);

/*
*    string preg_highlight (string pattern, string subject[, int args[, int sub]])
*
*    @param    string    pattern
*    @param    string    subject
*    @param    integer   args      optional
*    @param    integer   sub       optional
*
*    @return   string
*/

function preg_highlight ($pattern, $subject, $args = 0, $sub = 0)
{

    // hoe moeten resultaten gehighlight worden
    // 1e %s = kleur, 2e %s = de text

    $highlight = '<span style="background-color: %s">%s</span>';
    // kleuren - all = hele match
    // sub = subpatroon

    $colors = array (
        'all' => '#808080',
        'sub' => '#c0c0c0'
    );

    // het patroon, delimiter escapen
    $pattern = '/' . str_replace ('/', '\/', $pattern) . '/';

    // caseless
    if ($args & PREG_HIGHLIGHT_CASELESS)
    {

        $pattern .= 'i';
    }

    // multiline
    if ($args & PREG_HIGHLIGHT_MULTILINE)
    {

        $pattern .= 'm';
    }

    // dot match all
    if ($args & PREG_HIGHLIGHT_DOTALL)
    {

        $pattern .= 's';
    }

    // extended match - comments allowed
    if ($args & PREG_HIGHLIGHT_EXTENDED)
    {

        $pattern .= 'x';
    }


    // als er geen subpatroon aangegeven is
    if ($sub == 0)
    {

        // is de replacement simpel
        $replacement = sprintf ($highlight, $colors['all'], $sub);
    }

    // als er wel een subpatroon is
    else
    {
        // evaluaten als php
        $pattern .= 'e';

        // begin met replacement, de code moet goed intact gehouden worden
        $replacement = "' . str_replace ('\\" . $sub . "', '" . sprintf ($highlight, $colors['sub'], '\\' . $sub) . "', '\\0') . '";
        // en nu de complete replacement
        $replacement = "'" . sprintf ($highlight, $colors['all'], $replacement) . "'";
    }


    // return het resultaat
    return preg_replace ($pattern, $replacement, $subject);
}
// ** END preg_highlight
// ** EOF **

?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.