PHP Fehler!



  • Hi,

    ich hab eine variable in der ich einen namen abgespeichert habe, den möchte ich jetzt gerne in 'eregi_replace' benutzen, doch das will nicht, ich bekomme einen leeren string 😞

    $path_images = "images/";
                                                       // HIER WIRD BENUTZT
        $str = eregi_replace(";)", "<img alt=\";)\" src=\"".$path_images."smilies/wink.gif\">", $str);
    

    Was muss ich tun damit das funktioniert?


  • Mod

    1. verwendet man _nie_ ereg, sondern immer preg
    2. du brauchst ein str_replace, nichts anderes


  • Danke,

    ich hätte nur noch 1. frage:

    $path_images = "images/";
    $path_smilies = $path_images."smilies/";
    
    function changetext($str)
    {
        $str = str_replace(";)", "<img alt=\";)\" src=\"".$paths['smilies']."wink.gif\">", $str);
    
        $str = nl2br($str);
    
        return $str;
    }
    

    Wenn ich die beiden variablen außerhalb setze passiert nichts, mach ich jedoch folgendes:

    function changetext($str)
    {
    $path_images = "images/";
    $path_smilies = $path_images."smilies/";
    
        $str = str_replace(";)", "<img alt=\";)\" src=\"".$paths['smilies']."wink.gif\">", $str);
    
        $str = nl2br($str);
    
        return $str;
    }
    

    klappt es einwandfrei? Wieso? Ich möchte die beiden variablen jedoch global haben 😞



  • achja, ersetzt das

    .$paths['smilies'].

    durch

    .$path_smilies.

    das $paths['smilies'] war nur ein array-test der das selbe ergebnies lieferte. Außerhalb klappte es nicht, innerhalb jedoch wunderbar 😞


  • Mod

    globale variablen sind in einer Funktion nicht sichtbar.

    entweder du sprichst die Variablen direkt an:
    $GLOBALS['path_smilies']
    oder du machst sie in der Funktion bekannt:
    global $path_smilies;


Anmelden zum Antworten