Hallo Tom,
Sorry, wenn es jetzt etwas dürftig bleibt. Ich habe im Moment keine Zeit.
gut, aber das Wesentliche ist (zumindest aus meiner Sicht) jetzt klar.
$path = 'testbild.jpg.lnk'; ## (ohne .lnk gibt es false)
Natürlich erhältst du ohne die Extenstion ".lnk" kein sinnvolles Ergebnis, denn testbild.jpg existiert ja in diesem Verzeichnis nicht. Die Datei testbild.jpg.lnk, die auf testbild.jpg verweist, ist wie schon erklärt eine ganz gewöhnliche Datei ohne jede Sonderbedeutung. Die Funktion eines Links implementiert ausschließlich der Windows-Explorer.
$realrealpath = file_get_contents($realpath);
Und hier liest du den Inhalt von testbild.jpg.lnk aus - der liegt aber weder in einer lesbaren, textbasierten Form vor, noch hat er irgendwas mit JPEG zu tun.
# header('Content-Type: image/jpg');
# readfile($realrealpath);
Böses Foul: Du willst hier dem Client (Browser) den Inhalt von testbild.jpg.lnk als JPEG-Bilddaten verkaufen.
echo "<p>Der Pfad lautet <b>$realpath</b></p>\r\n";
echo "<p>Der reale Pfad lautet <b>$realrealpath</b></p>\r\n";
Was du hier als $realrealpath angibst, ist nur der (binär strukturierte) Inhalt der testbild.jpg.lnk, wie jetzt klar sein sollte.
Dein Ergebnis ist daher genau das, was man erwarten müsste.
Ein Aufwand für die Widerleung einer solch simplen Falsch-Behauptung!
Realpath ist keine reine Stringfunktion!
Nein, sicher nicht. Kann sie auch nicht, wenn sie -wie im PHP-Manual steht- auch Querverweise im Filesystem auflösen soll.
'testbild.jpg.lnk' ist wohl auch das, was readdir() liefern würde.
Richtig. Es ist das, was an dieser Stelle wirklich als Datei gespeichert ist.
Windows zeigt aber nur testbild.jpg an im Filesystem-Explorer.
Natürlich, der ist drauf dressiert, die Extensions ".lnk", ".url" und ".pif" *niemals* anzuzeigen, unabhängig von den Explorer-Einstellungen. Aber lösch mal den standardmäßig vorhandenen Registry-Schlüssel
[HKCR\lnkfile\NeverShowExt]
und du wirst feststellen, dass der Windows-Explorer dann plötzlich auch diese bisher verborgene Extension anzeigt - zum Beispiel auch bei sämtlichen Verknüpfungen im Startmenü.
Den Rest musst Du bitte mal selber rausfummeln :-)
Wie gesagt: Diese Art von Verknüpfungen sind kein Feature des Filesystems, sondern eine übergestülpte Interpretation bestimmter Dateien durch die Shell.
Schönen Sonntag noch,
Martin
--
Programmierer (m), seltener auch ~in (w):
Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.
P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.
P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.