Hallo,
Verbesserungswürdig ist es sicher:
Ich schreib mal rein was mir aufgefallen ist.
$marks = array (
'http://' => '<img src="/img/.type.link.gif" width="10" height="10" alt="Externer Link:" /> ',
'mailto:' => '<img src="/img/.type.mail.gif" width="10" height="10" alt="Maillink:" /> ',
);
Was ist mit https, ftp und all den vielen anderen protokolen? Die Höhe und Breite würde ich da nicht angeben, sondern wenn überhaupt, dann würde ich dem Link eine Klasse mitgeben und dann die Angaben im CSS für alle Links einmalig machen.
$buffer = file_get_contents($_GET['source']);
Naja hier würde ich glaube ich erst mal schauen wie das mit den magic_quotes aussieht. Und die direkte übernahme ist natürlich auch nicht so der Brüller, wenn sie aber im Admincenter ist wo nur vertrauenswürdige Personen zugang haben, macht das nicht sehr viel aus.
$buffer = preg_replace('~href="'.$protocol.'(.+)">((?!'.$mark.').+)</a>~iU', 'href="'.$protocol.'$1">'.$mark.'$2</a>', $buffer);
es dürfen ja als Anführungszeichen für HTML Attribute einfache Anführungszeichen gesetzt werden ' außerdem erlaubst du innerhalb von href="" jedes Zeichen, also auch ein > also wird vor <a href="httpbla>blub.html">foobar.html</a> auch unnötig eine fahne gesetzt, naja auch nicht so schlimm. Was aber schlimmer ist, dass man ja für interne Links genau so http oder https oder ftp usw. angeben kann, und manchmal auch muss, wenn man ein anderes Protokol nutzen möchte.
Ich bin der Meinung dass eine solche Automatisation nicht wirklich trivial ist. Das script müsste lernen "interne" und "externe" Links zu unterscheiden, dazu bräuchte man aber erst eine genaue Definition von "internen" und "externen" Links, die es allgemeingültig wohl auch nicht so einfach geben wird, da hat jeder so seine eigenen Vorstellungen davon, wohl auch jedes Gericht (wobei die Kennzeichnung nur für die Besucher evtl sinnvoll ist, dem Gericht wird das egal sein). Roberg geht ja sogar so weit zu sagen, dass alle Links für die man selbst verantwortlich ist "interne" Links sind. Wenn ich also auf meine zweite Seite verweise, dann ist das auch ein interner Link, oder wenn ich auf die Seite meiner Mutter, für die ich sowieso alles rund um die Seite mache weil sie es selbst nicht kann, dann ist das auch ein "interner" Link?
Grüße
Jeena Paradies