Versio

Preg_replace werkt niet goed

Overzicht Reageren

/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

25/05/2012 11:40:19
Gesponsorde koppelingen:
 
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