Preg_replace werkt niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

/home/joost

/home/joost

06/08/2009 19:29:00
Quote Anchor link
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
<?php
$smileys
=array(
            '#:D#' => '<img src="../images/smileys/grin.gif" alt="Grijns">',
            '#:alien:#' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            '#:angel:#' => '<img src="../images/smileys/angel.gif" alt="Angel">',
            '#:ballon:#' => '<img src="../images/smileys/balloon.gif" alt="Ballon">',
            '#:ban:#' => '<img src="../images/smileys/ban.gif" alt="Ban">',
            '#:batman:#' => '<img src="../images/smileys/batman.gif" alt="Batman">',
            '#:=#' => '<img src="../images/smileys/clap.gif" alt="Klappen">',
            '#:klappen:#' => '<img src="../images/smileys/clap.gif" alt="Klappen">',
            '#:cowboy:#' => '<img src="../images/smileys/cowboy.gif" alt="Cowboy">',
            '#:alien:#' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            '#:666:#' => '<img src="../images/smileys/devil.gif" alt="Duiveltje">',
            '#:duivel:#' => '<img src="../images/smileys/devil.gif" alt="Duiveltje">',
            '#:...:#' => '<img src="../images/smileys/dots.gif" alt="...">',
            '#:o#' => '<img src="../images/smileys/eek.gif" alt=":o">',
            '#:eek:#' => '<img src="../images/smileys/eek.gif" alt=":o">',
            '#:fuck:#' => '<img src="../images/smileys/fuck.jpg" alt="Fuck">',
            '#:alien:#' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            '#:guns:#' => '<img src="../images/smileys/guns.gif" alt="Guns">'
        );
        $_GET["text"]=preg_replace(array_keys($smileys), array_values($smileys), $_GET["text"]);
?>


Het probleem: als $_GET["text"] #:D bevat, word er niets meer weergeven na #:D.
(#:D is ook niet zichtbaar).
Hoe kan ik dit probleem oplossen ?
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
PHP hulp

PHP hulp

29/03/2024 06:48:36
 
Jan Koehoorn

Jan Koehoorn

06/08/2009 19:45:00
Quote Anchor link
Ik zou nooit rechtstreeks de GET array aanpassen. Verder heb je preg_replace niet nodig; gebruik gewoon str_replace:
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
<?php
        $smileys
=array(
            ':D' => '<img src="../images/smileys/grin.gif" alt="Grijns">',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            ':angel:' => '<img src="../images/smileys/angel.gif" alt="Angel">',
            ':ballon:' => '<img src="../images/smileys/balloon.gif" alt="Ballon">',
            ':ban:' => '<img src="../images/smileys/ban.gif" alt="Ban">',
            ':batman:' => '<img src="../images/smileys/batman.gif" alt="Batman">',
            ':=' => '<img src="../images/smileys/clap.gif" alt="Klappen">',
            ':klappen:' => '<img src="../images/smileys/clap.gif" alt="Klappen">',
            ':cowboy:' => '<img src="../images/smileys/cowboy.gif" alt="Cowboy">',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            ':666:' => '<img src="../images/smileys/devil.gif" alt="Duiveltje">',
            ':duivel:' => '<img src="../images/smileys/devil.gif" alt="Duiveltje">',
            ':...:' => '<img src="../images/smileys/dots.gif" alt="...">',
            ':o' => '<img src="../images/smileys/eek.gif" alt=":o">',
            ':eek:' => '<img src="../images/smileys/eek.gif" alt=":o">',
            ':fuck:' => '<img src="../images/smileys/fuck.jpg" alt="Fuck">',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            ':guns:' => '<img src="../images/smileys/guns.gif" alt="Guns">'
        );
        $text = 'Hallo :D';
        $text = str_replace (array_keys ($smileys), array_values ($smileys), $text);
        echo '<pre>' . print_r ($text, true) . '</pre>';
?>
 
/home/joost

/home/joost

06/08/2009 19:46:00
Quote Anchor link
str_replace gaat er bij PHP6 toch uit ??
 
Jan Koehoorn

Jan Koehoorn

06/08/2009 20:12:00
Quote Anchor link
/home/joost schreef op 06.08.2009 19:46:
str_replace gaat er bij PHP6 toch uit ??

Waar heb je dat gelezen?
 
/home/joost

/home/joost

06/08/2009 20:17:00
Quote Anchor link
Geen idee, dacht het ooit gelezen te hebben..... maar dan gebruik ik str_replace wel ;) bedankt voor je hulp!
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
Jan Koehoorn

Jan Koehoorn

06/08/2009 20:20:00
Quote Anchor link
Ik denk niet dat str_replace zal verdwijnen. Bovendien is hij waarschijnlijk nog een stuk sneller ook dan preg_replace, omdat er geen regexen geëvalueerd hoeven te worden. En graag gedaan natuurlijk ;-)
 
/home/joost

/home/joost

06/08/2009 20:24:00
Quote Anchor link
Alle tekst na een # valt gewoon weg :s, kan dit komen door het gebruik van jQuery ??

Script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$("textarea#toon_preview").keyup(function() {
        var content = document.getElementById('toon_preview').value;
        $.ajax({
            type: "GET",
            url: "pages/ubb.php?smileys=enabled&ubb=enabled&text="+content,
            success: function(preview) {
                $('#preview_content').html('');
                $('#preview_content').append(preview);
            }
        });
    });
 
- SanThe -

- SanThe -

06/08/2009 20:32:00
Quote Anchor link
In een GET heeft # de 'anchor' waarde, dus de rest krijg je niet binnen.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
/home/joost

/home/joost

06/08/2009 20:35:00
Quote Anchor link
dus moet dat veranderen naar POST ?
 
- SanThe -

- SanThe -

06/08/2009 20:36:00
Quote Anchor link
Probeer het eens.
 
/home/joost

/home/joost

06/08/2009 20:53:00
Quote Anchor link
Ja dat werkte :D thnx, nu het volgende probleem, het word niet meer omgezet...

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
<?php
$text
=$_POST["text"];
if (isset($_POST["smileys"]) && $_POST["smileys"] == "enabled") {
    if (isset($text)) {
        $smileys=array(
            ':D' => '<img src="../images/smileys/grin.gif" alt="Grijns">',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            ':angel:' => '<img src="../images/smileys/angel.gif" alt="Angel">',
            ':ballon:' => '<img src="../images/smileys/balloon.gif" alt="Ballon">',
            ':ban:' => '<img src="../images/smileys/ban.gif" alt="Ban">',
            ':batman:' => '<img src="../images/smileys/batman.gif" alt="Batman">',
            ':=' => '<img src="../images/smileys/clap.gif" alt="Klappen">',
            ':klappen:' => '<img src="../images/smileys/clap.gif" alt="Klappen">',
            ':cowboy:' => '<img src="../images/smileys/cowboy.gif" alt="Cowboy">',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            ':666:' => '<img src="../images/smileys/devil.gif" alt="Duiveltje">',
            ':duivel:' => '<img src="../images/smileys/devil.gif" alt="Duiveltje">',
            ':...:' => '<img src="../images/smileys/dots.gif" alt="...">',
            ':o' => '<img src="../images/smileys/eek.gif" alt=":o">',
            ':eek:' => '<img src="../images/smileys/eek.gif" alt=":o">',
            ':fuck:' => '<img src="../images/smileys/fuck.jpg" alt="Fuck">',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien">',
            ':guns:' => '<img src="../images/smileys/guns.gif" alt="Guns">'
        );
        //$text=preg_replace(array_keys($smileys), array_values($smileys), $text);
        $text = str_replace(array_keys($smileys), array_values($smileys), $text);
        echo 'Blaat';
    }
}

echo $text;
?>


Blaat word wel geecho'ed ;)

Edit::
Volgens firebug krijg ik gewoon :D terug ipv een <img tag

Edit2::
Probleem opgelost, de variabel werd overset door $_POST["text"] zodat alles weer normaal werd gezet :P

Edit3::
Heb nu het volgende script:
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
<?php
$text
=$_POST["text"];
$text=str_replace('<', '&lt;', $text);
$text=str_replace('>', '&gt;', $text);
if (isset($_POST["smileys"]) && $_POST["smileys"] == "enabled") {
    if (isset($text)) {
        $smileys=array(
            ':D' => '<img src="../images/smileys/grin.gif" alt="Grijns" />',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien" />',
            ':angel:' => '<img src="../images/smileys/angel.gif" alt="Angel" />',
            ':ballon:' => '<img src="../images/smileys/balloon.gif" alt="Ballon" />',
            ':ban:' => '<img src="../images/smileys/ban.gif" alt="Ban" />',
            ':batman:' => '<img src="../images/smileys/batman.gif" alt="Batman" />',
            ':=' => '<img src="../images/smileys/clap.gif" alt="Klappen" />',
            ':klappen:' => '<img src="../images/smileys/clap.gif" alt="Klappen" />',
            ':cowboy:' => '<img src="../images/smileys/cowboy.gif" alt="Cowboy" />',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien" />',
            ':666:' => '<img src="../images/smileys/devil.gif" alt="Duiveltje" />',
            ':duivel:' => '<img src="../images/smileys/devil.gif" alt="Duiveltje" />',
            ':...:' => '<img src="../images/smileys/dots.gif" alt="..." />',
            ':o' => '<img src="../images/smileys/eek.gif" alt=":o" />',
            ':eek:' => '<img src="../images/smileys/eek.gif" alt=":o" />',
            ':fuck:' => '<img src="../images/smileys/fuck.jpg" alt="Fuck" />',
            ':alien:' => '<img src="../images/smileys/alien.gif" alt="Alien" />',
            ':guns:' => '<img src="../images/smileys/guns.gif" alt="Guns" />'
        );
        $text = str_replace(array_keys($smileys), array_values($smileys), $text);
    }
}

if (isset($_POST["ubb"]) && $_POST["ubb"] == "enabled") {
    if (isset($text)) {
        $ubb = array(
            '#\[b\](.*?)\[/b\]#si' => '<b>\\1</b>',
            '#\[u\](.*?)\[/u\]#si' => '<u>\\1</u>',
            '#\[i\](.*?)\[/i\]#si' => '<i>\\1</i>',
            '#\[s\](.*?)\[/s\]#si' => '<s>\\1</s>'
        );
        $text=preg_replace(array_keys($ubb), array_values($ubb), $text);
    }
}

$text=str_replace('  ', '&nbsp;&nbsp;', $text);
echo stripslashes(nl2br($text));
?>
Iemand nog commentaar, wat kan er evt beter ? :P
Gewijzigd op 01/01/1970 01:00:00 door /home/joost
 
/home/joost

/home/joost

14/08/2009 20:53:00
 
Jan Koehoorn

Jan Koehoorn

14/08/2009 20:56:00
Quote Anchor link
@ /home/joost: wat bedoel je precies?
 



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.