Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pliki tekstowe
Forum PHP.pl > Forum > Przedszkole
XSL
Zaczne od opisu problemu.
Mam sporo plikow tekstowych i chcialbym je jakos ladnie wyswietlic na jednej stronie.

Znalazlem taki skrypt:
Kod
<?
   $sciezkadokatalogu = "D:/Arkadia/bib/";
   $f = opendir($sciezkadokatalogu);
   while (false !== ($plikitekstowe = readdir($f)))
   {
     if (eregi(".(txt)$",$plikitekstowe))
       include("$sciezkadokatalogu$plikitekstowe");
   }
   closedir($f);
?>


I tutaj pojawia sie problem.
Skrypt ignoruje znaki konca lini z pliku, przez co tekst jest wyswietlany w postaci wielkiego bloku tekstu. Jak temu zaradzic?

W ogole chcialbym docelowo dodac spis tresci w postaci nazw plikow z hyperlinkiem do pierwszego znaku kazdego z tych plikow. Czy takie cos jest w ogole mozliwe?
Jarod
Cytat(XSL @ 31.03.2008, 03:22:10 ) *
I tutaj pojawia sie problem.
Skrypt ignoruje znaki konca lini z pliku, przez co tekst jest wyswietlany w postaci wielkiego bloku tekstu. Jak temu zaradzic?

Może jestem jeszcze śpiący ale czy chodzi Ci o to aby każdy plik był w osobnym wierszu wyświetlany?

Cytat(XSL @ 31.03.2008, 03:22:10 ) *
W ogole chcialbym docelowo dodac spis tresci w postaci nazw plikow z hyperlinkiem do pierwszego znaku kazdego z tych plikow. Czy takie cos jest w ogole mozliwe?

Tak. Zajrzyj do manuala jak listować zawartość katalogu. http://php.net.pl/manual/pl/function.readdir.php
Pierwszą literę uzyskasz przez $file[0]

pzdr
dr_bonzo
XSL: jak sie w HTMLu zaznacza/przechodzi do nastepnej linii? <BR />em, nie? a \n nie dzialaja, wiec uzyj nl2br()
Crozin
Cytat
W ogole chcialbym docelowo dodac spis tresci w postaci nazw plikow z hyperlinkiem do pierwszego znaku kazdego z tych plikow. Czy takie cos jest w ogole mozliwe?
Wystarczy użyć "kotwic"
Kod
<a href="#abc1">link 1</a>
<a href="#abc2">link 2</a>

<div style="height: 1500px;">odstęp trzeba zrobić;)</div>

<p id="abc1">To jest tekst 1</p>

<div style="height: 1500px;">odstęp trzeba zrobić;)</div>

<p id="abc2">To jest tekst2</p>
Teraz wystarczy, że takie coś zrobisz w soim skrypcie.
XSL
Kod wyglada teraz tak:

Kod
<?php
  $sciezkadokatalogu = "D:/sciezka/dostepu/";

  if ($handle = opendir($sciezkadokatalogu))
  {
    while (false !== ($file = readdir($handle)))
    {
        echo "$file<br>";
    }
    closedir($handle);
  }

  echo "<br><br><br>";

  if ($handle = opendir($sciezkadokatalogu))
  {
    while (false !== ($plikitekstowe = readdir($handle)))
    {
      if (eregi(".(txt)$",$plikitekstowe))
         include("$sciezkadokatalogu$plikitekstowe");
      echo "<br><br><br>";
    }
    closedir($handle);
  }
?>


Ladnie robi listowanie, hyperlinkow jeszcze nie zapinalem, gdyz nadal mam problem z wyswietleniem plikow tekstowych. nl2br() nie przynosi rezultatow, choc mozliwe takze, ze zle go uzywam.

include nl2br("$sciezkadokatalogu$plikitekstowe");

Zatem czy tak sformuowane polecenie ma sens? W man nl2br() uzyte jest w odniesieniu do echo(). Czy moze byc uzyte w odniesieniu do include()? Czy moze lepiej wykorzystac inny sposob wyswietlania plikow?


edit:
Obszedlem problem stosujac takie wyrazenie:

echo nl2br(file_get_contents("$sciezkadokatalogu$plikitekstowe"));

edit2:
Czego kwestia sa znikajace spacje? Da sie to obejsc?
nevt
zamiast
  1. <?php
  2. echo nl2br(file_get_contents("$sciezkadokatalogu$plikitekstowe"));
  3. ?>

daj
  1. <?php
  2. echo '<textarea readonly="readonly">'.file_get_contents($sciezkadokatalogu.$plikitekstowe).'</textarea>';
  3. ?>

i wszystkie zmiany linii i spacje z pliku zostaną na swoim miejscu...
XSL
Ponownie kod:
Kod
<?php
  echo '<p id="powrot"></p>';
  $sciezkadokatalogu = "D:/sciezka/dostepu/";

  if ($handle = opendir($sciezkadokatalogu))
  {
    while (false !== ($file = readdir($handle)))
    {
      if (($file != '.') AND ($file != '..'))
        echo "$file<br>";
    }
    closedir($handle);
  }


  echo "<br><br><br>";

  if ($handle = opendir($sciezkadokatalogu))
  {
    while (false !== ($plikitekstowe = readdir($handle)))
    {
      if (eregi(".(txt)$",$plikitekstowe))
      {
         echo ("$plikitekstowe<br>");
         echo '<textarea readonly="readonly" cols="82" rows="20">'.file_get_contents($sciezkadokatalogu.$plikitekstowe).'</textarea>';
         echo '</br><a href="#powrot">wroc</a>';
      }
      echo "<br><br><br>";
    }
    closedir($handle);
  }
?>


Robi najpierw liste plikow, a pozniej wyswietla je w polach tekstowych.
Jak powiazac te dwie rzeczy? Chcialbym, by po kliknieciu nazwy pliku na liscie, przeskakiwal do odpowiedniego fragmentu strony.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.