Max: htmlspecialchars($url) automatisch, global machen

Bis jetzt setze ich vor jeden Link ein htmlspecialchars
also so:

<a href="'.htmlspecialchars($url).'">Link</a>

jetzt habe ich mir überlegt, ob es nicht möglich wäre den Befehl htmlspecialchars so zu hinterlegen, das er immer bei href automatisch angewandt wird!
ist das möglich ?

Max

  1. Tach!

    Bis jetzt setze ich vor jeden Link ein htmlspecialchars
    jetzt habe ich mir überlegt, ob es nicht möglich wäre den Befehl htmlspecialchars so zu hinterlegen, das er immer bei href automatisch angewandt wird! ist das möglich ?

    Ja, aber nicht sehr sinnvoll. Wobei "automatisch" oft nur eine Wunschvorstellung ist. Entweder es gibt etwas in PHP, das man einschalten kann (in dem Fall gibts das nicht), oder du musst dir was selbst erstellen. Es ist natürlich möglich, dass du dir einen Parser schreibst, der alle href-Situationen erfasst und eine Ersetzung vornimmt. Das wirst du sicher auch auf andere Situationen ausdehnen wollen, denn Links sind ja nur ein Teil der Geschichte. Aber irgendwann kommst du an den Punkt, dass du nicht mehr durch einen Automatismus entscheiden lassen kannst, wann eine Ersetzung erfolgen soll und wann nicht. Dann hast du am Ende einen schönen Mischmasch, bei dem du aufpassen musst, wann du noch reagieren musst und wann das der Automatismus erledigt. Besser wäre es, wenn du dir eine Funktion erstellst, die aus Rohdaten einen korrekt formatierten Link erstellt.

    dedlfix.

  2. Moin,

    Bis jetzt setze ich vor jeden Link ein htmlspecialchars
    also so:
    <a href="'.htmlspecialchars($url).'">Link</a>
    jetzt habe ich mir überlegt, ob es nicht möglich wäre den Befehl htmlspecialchars so zu hinterlegen, das er immer bei href automatisch angewandt wird!
    ist das möglich ?

    Man könnte sich eine Funktion schreiben, die das Linkerstellen übernimmt und dann immer diese Funktion aufrufen; ob das sinnvoll ist halte ich für strittig^^

    //Funktion  
    function gl($a, $text) {  
       return '<a href="'.htmlspecialchars($a).'">'.$text.'</a>';  
    }  
      
    // Nutzung  
    print "Und hier ist der Text, in dem ein ".gl("http://google.de", "Link zu Google")." eingebettet ist.";  
    
    

    Grüße Marco

    --
    Ich spreche Spaghetticode - fließend.