Anti dubbele quote

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart Waarom verplicht

Bart Waarom verplicht

05/06/2005 21:32:00
Quote Anchor link
Ik heb voor mijn site een quote functie, en aangezien ik geen dubbele quote wil, gebruik ik het volgende stukkie om van de oudere quote [...] te maken.

a:
b:
aa[ /quote ]bb[ /quote ]

Wordt dan dus

a:
[...]bb[ /quote ]

Een probleem, mijn scriptje werkt niet.
Dit heb ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$mbody
= eregi_replace('\[quote=([^\[]*)\][quote=([^\[]*)\]([^\[]*)\[/quote\]([^\[]*)\[/quote\]([^\[]*)', '\[quote=\\1\][...]\\4\[/quote\]', $mbody);
?>


Weet iemand wat er fout aan is?
Gewijzigd op 05/06/2005 21:33:00 door Bart Waarom verplicht
 
PHP hulp

PHP hulp

27/07/2021 11:49:36
 
Bart Waarom verplicht

Bart Waarom verplicht

10/06/2005 14:03:00
Quote Anchor link
Niemand met een ideetje :o?
 
Martijn B

Martijn B

10/06/2005 15:59:00
Quote Anchor link
Een wat omslachtige manier maar het script lijkt het wel te doen. Ik ben nog bezig regex te leren namelijk.

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
<?php
error_reporting(E_ALL);

$tekst = '[ quote=a ][ quote=b ]aa[ /quote ]bb[ /quote ]';

$tekst = ' '.$tekst;

function
my_sort_length( $a, $b )
{

    if($a == $b)
        return 0;

    if(strlen($a) == strlen($b))
        return ($a > $b) ? -1 : 1;

    return (strlen($a) > strlen($b)) ? -1 : 1;
}



if( strpos($tekst, '[') && strpos($tekst, ']') ){
    
    $regex = "#\[[ ]*quote[ ]*=[ ]*[a-z0-9_]+[ ]*\]([\s\S]*)\[[ ]*/[ ]*quote[ ]*\]#si";
    
    if( preg_match_all( $regex, $tekst, $quotes ) ){
    
        $quotes[1] = array_unique($quotes[1]);
        usort($quotes[1], 'my_sort_length');
                
        foreach( $quotes[1] as $quote )
            $tekst = str_replace($quote, preg_replace($regex, '[...]', $quote), $tekst);            
    }
}


$tekst = substr($tekst, 1);

echo $tekst;
?>
Gewijzigd op 10/06/2005 16:11:00 door Martijn B
 



Overzicht Reageren

 
 

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.