citaten-f-quotes

Gesponsorde koppelingen

PHP script bestanden

  1. citaten-f-quotes

« 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?php
// functie "citaten"
// Aanroepen: $tekst = citaten($tekst, $zoekwoorden, $rondom, $beetje);
// Of kort: $tekst = citaten($tekst, $zoekwoorden);
// Voorbeeld: $tekst = citaten($tekst, $zoekwoorden, 20, 5);


function citaten($begintekst, $zoekwoorden, $rondom = 75, $beetje = 10 )
    {
    
    // vars instellen
    $begintekst = strip_tags($begintekst);
    $rondom = intval($rondom);
    $beetje = intval($beetje);
    $tekst = "";
    $i = 0;
    $positie = "";
    $maximaal = strlen($begintekst);
    $minimaal = 0;
    $getallen = array();
    $offset = 0;
    $extra = 0;
    $aantal = 0;

    // controleer of $begintekst een string is
    if (!is_string($begintekst))
        {

        // is dit een array? Wellicht kunnen we nog iets doen?
        if(is_array($begintekst))
            {

            // als $begintekst een array is met maar 1 waarde... dan pakken we die gewoon
            if(count($begintekst) == 1)
                 {

                // neem key 0 (1 waarde dus) als $begintekst
                $begintekst = $begintekst[0];
                }
            }

        else
            {
            // return false... met $begintekst kunnen we niets
            return false;
            }
        }

    
    
    // controleer of $zoekwoorden een array is
    if(!is_array($zoekwoorden))
        {

        // zo niet: exploden op komma/spatie
        if(strpos($zoekwoorden, ", ")){explode(", ",$zoekwoorden);}
        }

    // nogmaals controleren
    if(!is_array($zoekwoorden))
        {

        // return false... met $begintekst kunnen we niets
        return false;
        }
    

    
    // alle zoekwoorden afgaan
    foreach ($zoekwoorden as $woord)
        {
                        
        // kijk hoeveel keer dit woord voor komt        
        preg_match_all("/$woord/i", $begintekst, $keren);

        // alle woorden vinden
        while($offset = strpos($begintekst, $woord, $offset + 1))
            {

            // tellers instellen
            $i++;
            $aantal = $i;
            
            // gegevens opslaan
            $posities[$i]['woord'] = $woord;
            $posities[$i]['lengte'] = strlen($woord);
            
            // zoeken naar eerste letter van dit woord
            $posities[$i]['woord_begin'] = $offset;
            
            // einde van dit woord berekenen
            $posities[$i]['woord_eind'] = $posities[$i]['woord_begin'] + $posities[$i]['lengte'];
            
            // begin van deze regel berekenen    
            $posities[$i]['zin_begin'] = $posities[$i]['woord_begin'] - $rondom;
            if ($posities[$i]['zin_begin'] < $minimaal)                {$posities[$i]['zin_begin'] = $minimaal;}
            if ($posities[$i]['zin_begin'] < $beetje)                {$posities[$i]['zin_begin'] = $minimaal;}
    
            // eind van deze regel uitrekenen
            $posities[$i]['zin_eind'] = $posities[$i]['woord_eind'] + $rondom;
            if ($posities[$i]['zin_eind'] > $maximaal)                {$posities[$i]['zin_eind'] = $maximaal;}
            if (($maximaal - $posities[$i]['zin_eind'])< $beetje)    {$posities[$i]['zin_eind'] = $maximaal;}
            }
        }


    // kijk of er resultaten zijn in $posties
    if (isset($posities))
        {

        //toon_array($posities);
    
        // de array $posities sorteren op volgorde

        usort($posities, "sort_key_eigen");
        
        // teller weer instellen op 1
        $i = 0;    
        
        // loop alle getallen af
        while($i <= $aantal - 1)
            {
    
        //    echo "\$i is nu $i<br>";
            
            // deze zin uit de begintekst halen

            $temp = substr($begintekst, $posities[$i]['zin_begin'], ($posities[$i]['zin_eind'] - $posities[$i]['zin_begin']));
        
            // highlight de gezochte woorden met behulp van de functie
            $temp = highlight($temp, $zoekwoorden);
            
            // als er nog een zin is
            if (!empty($temp))
                {

                // als de zin met NIET op 0 begint: geen punten tonen
                if ($posities[$i]['zin_begin'] != 0)    {$tekst = $tekst . "...";}
                
                // tekst aanvullen met de nieuwe gegevens
                $tekst = $tekst . $temp;
                
                // als de zin met NIET op $maximaal stopt: geen punten tonen
                if ($posities[$i]['zin_eind'] != $maximaal)    {$tekst = $tekst . "...";}
                
                // sowieso een enter toevoegen
                $tekst = $tekst . "<br>";
                }

            
            
            // kijk of we het eind van het bericht al hebben berijkt (zo ja: $i met $aantal verhogen)
            if ($posities[$i]['zin_eind'] == $maximaal)
                {

                // volgende overslaan (stoppen dus)
                $extra = $aantal;
                }

            
            // kijk of het woord al een keer in deze zin staat
            if (strpos($temp, $posities[$i]['woord'], ($rondom+1)))
                {

                // volgende overslaan
                $extra = 0;
                }

            
            // teller verhogen
            $i = $i + 1 + $extra ;
            }
        }
    
    
    // $tekst terugeven
    return $tekst;
    }


?>

 
 

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.