Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formatowanie tekstu z plików txt
Forum PHP.pl > Forum > PHP
gigabyte
Założenie:
mam plik tekstowy (o nazwie np."plik.txt") w którym są następujące wpisy:
Kod
tekst w 1 linijce

tekst w 2 linijce

tekst w 3 linijce

kiedy wstawiam

[php:1:bde4ac3224]<?php
include("plik.txt");
?>[/php:1:bde4ac3224]

to wywala mi tekst w jednym ciągu, tzn:
Kod
tekst w 1 linijce tekst w 2 linijce tekst w 3 linijce

A co zrobić żeby było tak jak jest to rzeczywiście zapisane w pliku tekstowym "plik.txt" - czyli linijka pod linijką?

Z góry dziękuję za odp.
BzikOS
Użyj funkcji nl2br();

[php:1:c4242a3759]<?php
$text = nl2br($text);
?>[/php:1:c4242a3759]
gigabyte
Nie działa.
A w jaki inny sposób "wyciągnąć" te dane z pliku - bo jak wpisze
[php:1:7f6e071449]<?php
include ("plik.txt");
?>[/php:1:7f6e071449]to odrazu wywala mi je na strone?
DeyV
oczywiście najpier należy ten tekst pobrać, np. przy pomocy funkcji [manual:7613986e0a]file_get_contents[/manual:7613986e0a] lub fopen - fread.
Include nie do tego jest... smile.gif
kubatron
daj w plikach txt <br> i wszystko ok
scanner
Cytat
daj w plikach txt <br> i wszystko ok
Gratuluję pomysłu. Taki plik wstaw następnie do <textarea> i powiedz użytkownikowi, że nie może naciskać [ enter ] tylko na wstawiać jakieś krzaczki, bo programista raczkuje.
kubatron
tylko że są funkcje które ukrywają w formularzach to biggrin.gif biggrin.gif biggrin.gif
BzikOS
Cytat
tylko że są funkcje które ukrywają w formularzach to biggrin.gif  :D  :D

questionmark.gifquestionmark.gif?
chfast
Cytat
A co zrobić żeby było tak jak jest to rzeczywiście zapisane w pliku tekstowym "plik.txt" - czyli linijka pod linijką?

Spróbuj tak:
[php:1:4a5cf0b524]<?php
$file = file('plik.txt');
$text = implode('<br/>', $file);

echo $text;
?>[/php:1:4a5cf0b524]

A jak bardzo ci zależy to możesz sobie ten kod trochę zoptymalizować:
[php:1:4a5cf0b524]<?php
echo implode('<br/>', file('plik.txt'));
?>[/php:1:4a5cf0b524]
DeyV
A czemu nie zrobić po prostu tak?
[php:1:6f738485c6]
<pre>
<?
include 'plik.txt';
?>
</pre>
[/php:1:6f738485c6]
loo
a moze dodaj na koncu kazdej linijki n
chfast
Cytat
a moze dodaj na koncu kazdej linijki n

Znak n zastępuje znak końca linii. Skoro w pliku tekstowym tekst jest podzielony na linijki to znaczy ze znak końca linii znajduje się na końcu każdej linijki (może oprócz ostatniej). Po includowaniu pliku znak końca linii znajduje się także w kodzie php oraz w wynikowym kodzie HTML.
Problem jest w tym, że HTML (tzn. przeglądarka) pomija znaki końca linii (traktuje je jako spacje), znaki tabulacji oraz wielokrotnie powtarzane spacje. Dlatego trzeba umieszczać w kodzie znaczniki <br/>.
DeyV
ludzie - wcale nie trzeba w zawartości pliku umieszczać <br> tak samo jak nie umieszcza się go zazwyczaj w bazie danych.
By nie mieć z tym problemów są funkcje typu [manual:38ac9abf27]nl2br[/manual:38ac9abf27], które zamieniają w podanym tekstcie znak n na <br>n
Tak więc zazwyczaj robi się to tak, ze pobiera się dany fragemtnt tekstu, np. przy pomocy fopen, fread, a następnie drukuje poprzez echo ( nl2br($text ) ) ;
chfast
Cytat
ludzie - wcale nie trzeba w zawartości pliku umieszczać <br> tak samo jak nie umieszcza się go zazwyczaj w bazie danych.
By nie mieć z tym problemów są funkcje typu [manual:49b8812edf]nl2br[/manual:49b8812edf], które zamieniają w podanym tekstcie znak n na <br>n

A czy użycie funkcji nl2br() nie jest umieszczeniem w kodzie znacznika <br/>?
spenalzo
Cytat
A czy użycie funkcji nl2br() nie jest umieszczeniem w kodzie znacznika <br/>?

Jak już chcesz się tak spierać to powiem, że nie ;-P - w starszych wersjach php nl2br dodawalo <br> a nie <br /> (jak już to ze spacją).
chfast
Cytat
Jak już chcesz się tak spierać...

Nie chce się spierać tylko DeyV mnie źle przeczytał...
DeyV
Nie sądziłem żę można tyle napisać na temat zwykłego br... sad.gif
Odniosłem wrazenie, że sugerujesz, tak jak wcześniej kubatron, że należy zapisywać w pliku te tagi (<br>) co, zazwyczaj jest najgorszym z możłiwych rozwiażań.
I tyle.
Eot.
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.