2 functies maar 1 moet niet altijd toegepast worden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Roose

Robert Roose

30/06/2005 17:54:00
Quote Anchor link
niet echt duidelijke titel maar ik zal het hier ruimer uitleggen.

ik heb 1 file waar ik mijn functies in wil plaatsen (om het overzichtelijk te houden)

Nu heb ik een php code highlight die alles tussen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? en ?>
omzet naar kleurcodes. (werkt)
ook heb ik een smiley functie die de smileys en hun activation key uit dbase haalt en :) omzet naar het corresponderende plaatje.

alleen hier komt het tricky gedeelte....

als ik vervolgens dit doe:

Gewone tekst etc etc. :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$bladiebla
="Hallo";
echo $bladiebla;
// enzovoorts
echo":)"; //deze moet dus niet omgezet worden
?>


gewone tekst verder :)

Ik wil dus dat de smiley die in de php code staat niet omgezet hebben.
Hoe exclude ik die in mijn smiley parser?

Code:
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
<?

// highlight source
function showsource ($code) {
    ob_start();
    $code = stripslashes($code);
    highlight_string($code);
    $colorsource = ob_get_contents();
        ob_end_clean();
        $colorsource = str_replace (" ", " ",$colorsource);
        $colorsource = str_replace("<?", "<pre><?", $colorsource);
        $colorsource = str_replace("?>", "?></pre>", $colorsource);
        
        return $colorsource;
                            }


// Smileys parsen    
    function smiley($input)  
        {
              
             $query=mysql_query("select id, keycode, image, CHAR_LENGTH(keycode) as lengte from smilies order by lengte desc");
                 while($data=mysql_fetch_object($query)) {
      $key="$data->keycode";
      $image="$data->image";
$input = str_replace($key, "<img src=\"$image\" align=\"absmiddle\">", $input);  
                                                         }
        
                 return $input;      
        }
        

?>
Gewijzigd op 30/06/2005 17:56:00 door Robert Roose
 
PHP hulp

PHP hulp

16/11/2024 23:33:36
 
Steff   an

Steff an

30/06/2005 18:37:00
Quote Anchor link
Ik had dit ergens gelezen een tijd geleden, en het stond hier.
 
Robert Roose

Robert Roose

30/06/2005 19:31:00
Quote Anchor link
Als ik het allemaal goed lees zet deze dan alles netjes als "code" neer.. maar vervangt hij alsnog mijn smilies.

Ik werk trouwens niet met UBB Codes. Maar met HTML Area.

Heb de code toch maar even gebruikt en idd vervangt hij nu geen enkele :) meer..
Gewijzigd op 30/06/2005 19:37:00 door Robert Roose
 
Robert Roose

Robert Roose

01/07/2005 10:18:00
Quote Anchor link
Zo.... opgelost.

werkende code:
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
<?
// Highlight functies
function phphighlite_replace($code) {
    $code = trim(str_replace("\\\"", "\"", $code));
  #$code = str_replace("\\\"","\"",$code);
    if(empty($code)) {
        return " ";
    }
else {
        array_push($GLOBALS['phphighlite'], $code);
        return "".(count($GLOBALS['phphighlite'])-1)."";
    }
}

function
phphighlite($id, $fixed=1) {
    $code = $GLOBALS['phphighlite'][$id];
    $splitted = explode("\n", $code);
    $grootte = count($splitted)+1;
    if(!strpos($code,"<?") && substr($code,0,2)!="<?") {
        $code="<?".trim($code)."?>";
        $addedtags=1;
    }

    ob_start();
    $oldlevel=error_reporting(0);
    highlight_string($code);
    error_reporting($oldlevel);
    $buffer = ob_get_contents();
    ob_end_clean();
    if(!empty($addedtags)) {
        $openingpos = strpos($buffer,'&lt;?');
        $closingpos = strrpos($buffer, '?');
        $buffer = substr($buffer, 0, $openingpos).substr($buffer, $openingpos+5, $closingpos-($openingpos+5)).substr($buffer, $closingpos+5);
    }

    $page_popup = "";

  $return = $buffer;
    return $return;
}

function
ubb($string) {
 // Code
 $GLOBALS['phphighlite'] = array("dummy");
 $string = preg_replace("_<\?(.*?)\?>_ise","phphighlite_replace('<? \\1 ?>')",$string);
 #$string = preg_replace("_\[code\](.*?)\[/code\]_ise","phphighlite_replace('\\1')",$string);
 // HTML codes wegwerken

 $string = htmlspecialchars($string);
 // Enters maken
 $string = nl2br($string);

 // Smileys

                   
                 $query=mysql_query("select id, keycode, image, CHAR_LENGTH(keycode) as lengte from smilies order by lengte desc");
                while($data=mysql_fetch_object($query)) {
                $key="$data->keycode";
                $image="$data->image";
                $string = str_replace($key, "<img src=\"$image\" align=\"absmiddle\">", $string);  
                                                         }
        
 
 // Code
 $string = preg_replace("_\[code\]([0-9])\[/code\]_ise", "phphighlite('\\1')", $string);
 
 // Return
 return $string;
}

?>
 



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.