suit: Mit eregi_replace href erweitern

Beitrag lesen

  1. Grundsätzlich sollte der Link nur mit "http://example.com/link.php?link=" erweitert werden.

wenn du das machst, funktionierts nicht mehr - das sage ich dir bereits - darum willst du
a) links erkennen
b) wenn sie spezifische muster erfüllen etwas davor setzen
c) die verweisziele kontextspezifisch codieren

  1. Ist es ein interner Link sollte er nicht erweitert werden.

sagtest du breits - doch ein interner link hat "viele gesichter"

  1. Es sollen nur Links mit den Protokolen HTTP, HTTPS und FTP erweitert werden.

auch das sagtest du bereits

  1. Der Link sollte wenn möglich mit urlencode codiert werden.

siehe 1c) - nicht wenn möglich sonder zwingend

Wenn möglich sollte der Link dannach so aussehen:
"http://example.com/link.php?protokol=protokol&host=hostname&link=restlicherLink&filetyp=dateiextension"

das ist neu

wie schon erwähnt, analysiere was du möchtest - im detail

was du theoretisch möchtest, hast du ja bereits dargelegt - jetzt gehts an die praxis

ein einziger regulärer ausdruck der all das erfüllt was du möchtest scheint mir etwas utopisch bzw unnötig kompliziert und unverständlich, bzw wenig flexibel/erweiterbar - beschränke dich auch teilbereiche deines problems

wie schon erwähnt eignet sich dafür preg_replace besser als die erg-funktionen - imho noch sinnvoller wäre preg_replace_callback

ich würde mit "finde mit einem regulären ausdrück den inhalt jedes href-attributs eines a-elements" beginnen

tu dieses und teile dann deine fortschritte mit bzw schildere, wo genau dein problem liegt