PHP - Regex mit Sonderzeichen in URL

teqqy

Enthusiast
Thread Starter
Mitglied seit
30.07.2012
Beiträge
1.162
Ort
Rheinhessen
Hallo zusammen,

meine PHP Kenntnisse sind leider recht bescheiden. Dennoch habe ich ein Problem mit einem vorhandenen Skript welches preg_replace nutzt mit URLs in denen ? und & enthalten sind.

Die Funktion in dem Skript sieht so aus:
PHP:
    public function createLink($id)
    {
        return '<a href="'
            . preg_replace('/\$1/', urlencode($id[1]), $this->url)
            . '" target="_blank">' . $id[0] . '</a>';
    }

Die URL entsprechend
Code:
  url = "https://ww7.xxx.net/xxx/xxx/ExecuteCommand.aspx?Code=OpenTicketDetail&TicketNumber=$1"

Ich bekomme dann folgende Fehlermeldung:
Code:
Server error: preg_replace_callback(): Empty regular expression

Kann mir da einer helfen? Ich gehe zumindest davon aus, dass es an der URL liegen muss.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hmm, ich hab versucht das Ganze zu reproduzieren:
Code:
class Foobar {

    protected $url = 'https://ww7.xxx.net/xxx/xxx/ExecuteCommand.aspx?Code=OpenTicketDetail&TicketNumber=$1';

    public function createLink($id)
    {
        return '<a href="'
            . preg_replace('/\$1/', urlencode($id[1]), $this->url)
            . '" target="_blank">' . $id[0] . '</a>';
    }

}

Läuft recht fehlerfrei.

Sieht die Klasse bei dir ähnlich aus?

Was noch auffällig ist; wenn deine URL so aussieht, kannst du entweder einfach die Nummer hinten dran hängen und gar keine Replace-Mechaniken verwenden oder du verwendest str_replace, was vermutlicherweise ne Ecke schneller als Regex ist. In dem gezeigten Fall sehe ich ehrlich gesagt keinen Grund Regex zu nutzen.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh