Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][CSS]Wychodzący tekst i nowa linia
Strarus
post
Post #1





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


cześć:)
Chciałbym zrobić automatycznie generowany kod, który wyświetliłby pokolorowane za pomocą funkcji highlight_string ciągi znaków w nowej lini i pokazywał numer lini, czyli coś takiego jak jest tutaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) example:
  1. <?php
  2. if(isset( $_GET[ 'site' ] )){
  3. $site = htmlspecialchars( $_GET['site'] ) .'.inc.php';
  4. if( file_exists( $site )){
  5. include( $site );
  6. }else{
  7. echo'strona o podanym adresienie istnieje';
  8. }
  9. }else{
  10. echo ':)';
  11. }
  12. ?>
Jak widać po lewej stronie są numery lini 1,2 itd. I jak coś takiego zrobić? Drugie pytanie wiąże się z pierwszym. Mam div o jakimś id zdefiniowanym w style.css. Jakiej funkcji css użyć, aby w przypadku, gdy zabraknie miejsca w lini, tekst był automatycznie przenoszony do następnej lini (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) PS. próbowałem display:block; ale nie pomaga...

Ten post edytował Strarus 3.01.2009, 12:37:10
Go to the top of the page
+Quote Post
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




co to pierwszego to: http://www.google.pl/search?q=bbcode+php&a...lient=firefox-a
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


co do kolorowania składni, to jest to kupa roboty jeśli się chce samemu. jednak numerowanie linii da się łatwo uzyskać. wiemy, że każda linia pliku tekstowego, to kolejny element tablicy (uzyskanej za pomocą funkcji file). czyli wyświetlasz oprócz wartości elementu tablicy także jego numer. obsługę file znajdziesz w manualu, foreach także. są przykłady dobre.

swoją drogą zapoznaj się z projektem "codepress", jest chyba na licencji cc więc można stosować. tam jednak numerowanie linii uzyskali w css: po prostu dali obrazek z liczbami, bardzo wysoki, ma z 2000 liczb. ten obrazek wrzucają jako tło dla textarea w którym jest kod.

odnośnie drugiego problemu: wystarczy zdefiniować szerokość elementu. Od razu piszę: jeżeli wystąpi przypadek, że jeden wyraz będzie szerszy od szerokości Twojego czegoś (np div'a), to niema rady na to, żeby się załamał o następnej linii. trzeba wtedy kombinować z javascript. css'em może jedynie ucinać taki wyraz (często są to linki) za pomocą overflow-x: hidden
Go to the top of the page
+Quote Post
Strarus
post
Post #4





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Dzięki, nie będzie problemu z długością, bo to tylko dla mojego użytku. Ale overflow-x: hidden chyba ukrywa resztę? Zastosuję chyba to z tym obrazkiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #5





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


no dosłownie zasłania tekst który się nie zmieści, może się zdarzyć, że nawet w połowie literki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
wrzucaj tekst do elementu blokowego o zdefiniowanej szerokości i się sam tekst będzie zawijał do nowej linii.
Cytat
Zastosuję chyba to z tym obrazkiem

wg mnie jednak lepiej to z numerowaniem normalnym, ale to już kwestia gustu.

Ten post edytował hiszpanespaniol 3.01.2009, 13:04:15
Go to the top of the page
+Quote Post
Strarus
post
Post #6





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Na razie pozostanę przy obrazku, bo ładnie wygląda (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Kod CSS:
Kod
#kolor {
    background-image: url(back.jpg);
    font-family: verdana;
    font-size: 14px;
    color: navy;
    border: 1px navy solid;
    width: 700px;
    display: block;
    overflow-x: hidden;
}

Kod php mi wystaje i to właśnie przecięty w połowie litery (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) Myślałem nad funkcją php wordwrap ale ona się chyba nie sprawdzi...
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #7





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


skasuj to hidden skoro masz zwykłe słowa krótkie i zdefiniowaną szerokość. jeszcze może dodaj background-repeat: repeat-x żeby nie było niespodzianek
Go to the top of the page
+Quote Post
Strarus
post
Post #8





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


chyba repeat-y (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale co z tą nową linią (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) teraz wystają mi słowa poza div...

edit: a jeszcze pytanie: jest może coś takiego w php, że "po n znaków daj <br/>" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował Strarus 3.01.2009, 13:21:25
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #9





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


racja, y.
czysty tekst wewnątrz elementu blokowego o zdefiniowanej szerokości nie może wystawać (pomijając zbyt długie wyrazy). musisz mieć jakieś style co mieszają. Albo nie masz czystego tekstu tylko jakieś dodatkowe HTML wewnątrz tego div. Jak to u Ciebie wygląda? css podałeś, możesz wynikowy HTML też podać?

edit:
Cytat
a jeszcze pytanie:

jest na to wiele sposobów, ale nie jest to dobre rozwiązanie jeśli tylko chcesz zawinąć tekst

Ten post edytował hiszpanespaniol 3.01.2009, 13:22:37
Go to the top of the page
+Quote Post
Strarus
post
Post #10





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Wszystko jest tutaj:
http://strarus.cba.pl/index.php?site=other (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #11





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




A nie lepiej do numerowania linii zastosować listę <ol>? Wtedy podczas zaznaczania kodu numerki się nie skopiują (co w przykładzie ~hiszpanespaniol będzie miało miesjce).
Go to the top of the page
+Quote Post
Strarus
post
Post #12





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Może i tak, ale wtedy trzeba dodawać ręcznie przy każdej linijce <li/>...
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #13





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


@phpion masz absolutną rację. najzwyklejsza lista numerowana.
@Strarus pod podanym linkiem nic nie ma, 404.

powiedzmy, że masz kod zapisany w pliku tekstowym, to wtedy robisz tak:
  1. <?php
  2. $plik = 'kod.txt';
  3.  
  4. $tekst = file($plik)
  5. $kolorowo = '<ol>';
  6. foreach ($tekst as $linijka) {
  7. $kolorowo .= '<li>'.$linijka.'</li>';
  8. }
  9. $kolorowo .= </ol>;
  10.  
  11. echo $kolorowo;
  12. ?>


edit:

Cytat
dlaczego w $kolorowo .= </ol>; po kolorowo jest .

to jest po to, żeby dopisywać rzeczy na końcu zmiennej, ale żeby tej zmiennej nie nadpisywać.

Ten post edytował hiszpanespaniol 3.01.2009, 13:46:13
Go to the top of the page
+Quote Post
Strarus
post
Post #14





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Ok, dzięki będzie wygodniej, bo będę umieszczał skrypty w plikach txt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak 404?? Mi się otwiera (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

jeszcze jedno pytanie: dlaczego w $kolorowo .= </ol>; po kolorowo jest . (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

i jeszcze jedno (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) jak zrobić, żeby pokazywały się te liczby po lewej? a kod na środku?

Ten post edytował Strarus 3.01.2009, 13:39:27
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #15





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


nic nie musisz robić. lista numerowana sama wyświetla sobie numerki, bez żadnych css'ów. cssem możesz dopieścić wygląd takiej listy, ewntualnie skoro pytasz jak zrobić wyświetlanie liczb, to możliwe, że masz gdzieś list-style ustawione na none dla listy.

do czego służy ".=" napisałem w poprzednim poście.
Go to the top of the page
+Quote Post
Strarus
post
Post #16





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Dzięki wielkie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit: mam teraz problem z zakolorowaniem składni...

Jak mam ten kod:
  1. <?php
  2.  
  3. $plik = 'kod.txt';
  4.  
  5. $tekst = file($plik);
  6.  
  7. $kolorowo = '<ol>';
  8.  
  9. foreach ($tekst as $linijka) {
  10.  
  11. $kolorowo .= '<font class="left"><li></font>'.$linijka.'</li>';
  12.  
  13. }
  14.  
  15. $kolorowo .= '</ol>';
  16.  
  17. echo $kolorowo;
  18.  
  19. ?>

To gdzie mam dać highlight_string (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo chcę to wyświetlać tak jak to jest na tym forum (tylko, że tutaj są table), a u mnie może być na tym co jest teraz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Strarus 3.01.2009, 15:19:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 03:09