[PHP] Datei-Endung entfernen im Script

Dieses Thema im Forum "Webentwicklung" wurde erstellt von everniZe, 14. Oktober 2009 .

Schlagworte:
  1. 14. Oktober 2009
    Datei-Endung entfernen im Script

    Hallo zusammen, ich hab hier an nem Script rumgebastelt... ist auch schon alles so wie ich es möchte (er sucht sich Dateien mit .html Endung im Hauptverzeichnis und erstelt dazu Links)

    Nur möchte ich das er an dieser Stelle (die Rot makiert und Fett ist)
    Das er da (aber nur an der Stelle, er soll natürlich nicht generell ".html" löschen...)
    das .html abzieht bzw. die Datei Endung.

    Code:
    <?php
    $verzeichnis = dir(".");
    $endung = ".html";
    while($datei = $verzeichnis->read()) {
     if(substr($datei,strlen($endung)*(-1)) == $endung) {
     [b][color=red]echo "<a href=\"http://www.********.de/kunden/test/index.php?pageid=$datei\">";[/b][/color]
     $fp = fopen($datei,"r");
     while (!feof($fp)) {
     $linie = fgets($fp, 1024);
     if(eregi("<title>(.*)</title>", $linie, $title))
     break;
     }
     $title = $title[1];
    
     if($title != "")
     {
     echo "$title<br><br></a>";
     }
     fclose($fp);
     }
    }
    $verzeichnis->close();
    ?>
    
    
    Zur Erklärung:
    die html Dateien werden auf der Seite in die "index.php" per include Befehl geholt.
    Die Sitemap.php erstellt aber natürlich sonst nur Links zur Datei Direkt, aber ich möchte ja das er Links erstellt so das die Datei ganz normal in die Seite geladen wird.

    der include geht also ?pageid=BEISPIEL - die Datei dazu heißt auch beispiel.html
    also soll er beim Sitemap script jetzt nur beim Link das .html am ende entfernen da sonst der Link nicht klappt.
     
  2. 14. Oktober 2009
    AW: Datei-Endung entfernen im Script

    Stichwort reguläre Ausdrücke

    PHP:
    $datei  preg_replace ( "/^(.*?)\.html$/i" "$1" $datei );
     
  3. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    Klappt nicht.
    Oder muss es an bestimmter stelle eingefügt werden? habs ganz oben unter $endung eingefügt.
    Links werden aber immernoch mit .html am ende erstellt.
     
  4. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    Naja man sollte es schon an die richtige Stelle setzen...und die ist, wenn ich den Ausdruck richtig verstanden habe, direkt vor dem echo. Allerdings solltest du den Ausdruck lieber in einer 2. Variable speichern, da du den Original-Dateiname ja nochmal benutzt (oder alternativ .html wieder dranhängen).
     
  5. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    ungetestet, sollte aber gehen:
    PHP:
    <? php
    $verzeichnis 
    dir ( "." );
    $endung  ".html" ;
    while(
    $datei  $verzeichnis -> read ()) {
      if(
    substr ( $datei , strlen ( $endung )*(- 1 )) ==  $endung ) {
        echo 
    "<a href=\"http://www.********.de/kunden/test/index.php?pageid=" . str_replace (array( '.html' ), array( '' ),  $datei ). "\">" ;
        
    $fp  fopen ( $datei , "r" );
        while (!
    feof ( $fp )) {
          
    $linie  fgets ( $fp 1024 );
          if(
    eregi ( "<title>(.*)</title>" $linie $title ))
          break;
        }
        
    $title  $title [ 1 ];

        if(
    $title  !=  "" )
        {
        echo 
    " $title <br><br></a>" ;
        }
        
    fclose ( $fp );
      }
    }
    $verzeichnis -> close ();
    ?>
     
  6. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    Oh davon würde ich aber abraten!

    Angenommen du hast eine Datei die heißt: "meine.neue.seite.in.html.html", gut, dummes Beispiel, aber kann passieren, kommt "meine.neue.seite.in" raus. Es geht um die Dateiendung und nicht um diesen String im Allgemeinen.
     
  7. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    echo $hallo;

    PHP:
    <? php
    $verzeichnis 
    dir ( "." );
    $endung  ".html" ;
    while(
    $datei  $verzeichnis -> read ()) {
      if(
    substr ( $datei , strlen ( $endung )*(- 1 )) ==  $endung ) {
        echo 
    "<a href=\"http://www.********.de/kunden/test/index.php?pageid=" . substr ( $datei 0 , -( strlen ( $endung ))). "\">" ;
        
    $fp  fopen ( $datei , "r" );
        while (!
    feof ( $fp )) {
          
    $linie  fgets ( $fp 1024 );
          if(
    eregi ( "<title>(.*)</title>" $linie $title ))
          break;
        }
        
    $title  $title [ 1 ];

        if(
    $title  !=  "" )
        {
        echo 
    " $title <br><br></a>" ;
        }
        
    fclose ( $fp );
      }
    }
    $verzeichnis -> close ();
    ?> 
    exit("mfg");
     
  8. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    BW an alle raus schonmal!

    Weiß jetzt noch jemand wie ich das als liste ausgebe?

    Gruß und Danke!

    (mit <li> davor habe ich das schon soweit hinbekommen, hat sich also eigentlich erledigt)
     
  9. 15. Oktober 2009
    AW: Datei-Endung entfernen im Script

    PHP:
    <? php
    $verzeichnis 
    dir ( "nav/1/1/" );
    $endung  ".html" ;
    echo 
    '<ul>' ;
    while(
    $datei  $verzeichnis -> read ()) {
      if(
    substr ( $datei , strlen ( $endung )*(- 1 )) ==  $endung ) {
        echo 
    "<li><a href=\"http://www.********.de/kunden/test/index.php?pageid=" . substr ( $datei 0 , -( strlen ( $endung ))). "\">" ;
        
    $fp  fopen ( $datei , "r" );
        while (!
    feof ( $fp )) {
          
    $linie  fgets ( $fp 1024 );
          if(
    eregi ( "<title>(.*)</title>" $linie $title ))
          break;
        }
        
    $title  $title [ 1 ];

        if(
    $title  !=  "" )
        {
        echo 
    " $title </a></li>" ;
        }
        
    fclose ( $fp );
      }
    }
    $verzeichnis -> close ();
    echo 
    '</ul>' ;
    ?> 
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.