Filesystem originell anzeigen - Special

IR-Bastian

Mitglied
Hi Zusammen,


Ich verweise per link auf einen Sever(sogar auf mehere) auf dennen/welchem ein Ordner freiggeben ist.
Dann kann mann dadurchbrowsen und bei klick auf eine Datei diese herunterladen.

Das sieht dann bei click auf den Link aus wie hier auf dem Screenshot(ich hab die Adressen unkenntlich gemacht^^)

Das scheint ein "Standart" zu sein.


Nun meine Frage, das sieht ja häßlich² aus, kann ich das nicht irgendwie in meine Seite einbinden. (optisch)
Ich habe eine ganz "normale" Seite mit CSS, HTML und viel PHP.

Auf den Server auf den ich verweise habe ich keinerlei Zugriff.

Irgendwelche Ideen oder Ansatzpunkte?

Grazie
Bastian
 

Anhänge

  • special.JPG
    special.JPG
    55,2 KB · Aufrufe: 56
Hi,

du könntest es z.B. in einen iFrame laden (oder noch besser: per Ajax einladen), dann durch den Einsatz von Javascript und RegEx die einzelnen "Spalten" erfassen und entsprechend formatieren.


Gruß

.:lay-z-cow:.
 
Es gab Header und Footer Dateien die man angeben konnte, und so seine eigenes Logo darüber o.Ä. darüber lässt es sich leicht umformatieren.

Aber das Anzeigeformat ist allgemein bekannt und ich denke nicht das es als störend empfunden wird. So sieht man immer gleich das man sich auf einem fileserver befindet.
 
Da bewerten mein Vorgesetzten die Ansicht anders :-)))
Ich finds auch grottehäßlich!

Mhm, also wenn es echt keine Möglichkeit gibt... schade schade.
 
Es gibt verschiedene Lösungen, aber alle recht unkomfortabel, da angeblich weder Zugriff auf das Filesystem besteht noch ein Sourcecode verfügbar ist, mit dem man arbeiten könnte. Sollte letzteres nachgereicht werden, könnte man ein bisschen mit regulären Ausdrücken arbeiten und es so hinbiegen...
 
Ja Quelltext:

So sieht der Code aus den das Filesystem wiedergibt, wobei ich aber auch nicht weiss wie ich den würde dann bearbeiten sollen.

Als Beispiel mit dem ich schon weiterarbeiten könnte würde mir eine HTML/PHP Datei reichen, welche die Links übernimmt und ein Tag davor/dahinterschreibt.


PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>xxxx.xxxx.xxxx.com - /</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<META content="MSHTML 6.00.2900.3157" name=GENERATOR></HEAD>
<BODY>
<H1>xxxx.xxxx.xxxx.com - /</H1>
<HR>
<PRE>  Thursday, December 13, 2007  4:20 PM        &lt;dir&gt; <A href="http://xxxx.xxxx.xxxx.com:88/1_NL/">1_NL</A><BR>
       Thursday, December 13, 2007 10:01 AM        &lt;dir&gt; <A href="http://xxxx.xxxx.xxxx.com:88/2_D/">2_D</A><BR>
       
</PRE>
<HR>
</BODY></HTML>
 
Ich habs einfach mal so runtergenudelt, ist eventuell nicht die effektivste Lösung.

PHP:
<?php

$string = <<<ORIG_HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>xxxx.xxxx.xxxx.com - /</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<META content="MSHTML 6.00.2900.3157" name=GENERATOR></HEAD>
<BODY>
<H1>xxxx.xxxx.xxxx.com - /</H1>
<HR>
<PRE>  Thursday, December 13, 2007  4:20 PM        &lt;dir&gt; <A href="http://xxxx.xxxx.xxxx.com:88/1_NL/">1_NL</A><BR>
       Thursday, December 13, 2007 10:01 AM        &lt;dir&gt; <A href="http://xxxx.xxxx.xxxx.com:88/2_D/">2_D</A><BR>
       
</PRE>
<HR>
</BODY></HTML>
ORIG_HTML;

// $string = file_get_contents( $url );

if ( 1 !== preg_match(
            "%<html>(?:.*)<h1>(.*)</h1>(?:.*)<pre>(.*)</pre>(?:.*)</html>%Uis",
            $string,
            $matches
        )
    ) {
    echo "Unerwartete Eingabe";
    exit;
}

list( , $title, $content ) = $matches;

preg_match_all(
        "%(?:[\s]*)(.+)(?:[\s]{3,})&lt;(.*)&gt; <a href=\"([^\"]+)\">([^<]+)</a><br>%Ui",
        $content,
        $matches,
        PREG_SET_ORDER
    );

date_default_timezone_set( "Europe/Berlin" );
$items = array();
foreach ( $matches as $item ) {
    $items[] = array(
            'date' => strtotime( trim( $item[ 1 ] ) ),
            'type' => trim( $item[ 2 ] ),
            'url'  => trim( $item[ 3 ] ),
            'name' => trim( $item[ 4 ] )
        );
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title><?php echo htmlentities( $title ); ?></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  </head>
  <body>
    <h1><?php echo htmlentities( $title ); ?></h1>

    <table width="800px">
      <colgroup>
        <col width="100px" />
        <col />
        <col width="200px" />
      </colgroup>
      <thead>
        <tr>
          <td>Typ</td>
          <td>Eintrag</td>
          <td>Datum</td>
        </tr>
      </thead>
      <tbody>
<?php
foreach ( $items as $item ):
    ?>
        <tr>
          <td><?php echo htmlentities( $item['type'] ); ?></td>
          <td><a href="<?php echo htmlentities( $item['url'] ); ?>"><?php echo htmlentities( $item['name'] ); ?></a></td>
          <td><?php echo strftime( "%d. %B %Y, %H:%M:%S", $item['date'] ); ?></td>
        </tr>
<?php
endforeach;
?>
      </tbody>
    </table>
  </body>
</html>

Unten erfolgt die Ausgabe, wenn es im erwarteten Format vorliegt - Da kann dann noch ein wenig rumgespielt werden mit Stylesheeteinbindungen und was weiß man nicht.
 
Das ist doch schon cool.(und auch als cool bewertet)

Die HTML Seite als String kann mann übrigens mit:


PHP:
$string= file_get_contents(http://test.xyz.de/info.php);

einlesen.

Aber nun geht meine Frage noch weiter, hinter, bzw auf dieser Seite sind ja weiterführende Links, welche irgendwann zu "normalen" Dateien(Excelsheets und so was) führen. Die Tiefe der Ordnderstruktur ist aber dynamisch.

Wie kriege ich es hin, dass wenn ich einen der Links anwählen, die nächste Seite, auch dynamisch angezeigt wird?
 
Zurück