Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Akapity zamian pierwszych liter.
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
  1. <?php
  2. $robocza['tresc_sformatowana'] = nl2br(stripslashes($dane_wspisow_do_formatowania['tresc']));
  3. $tablica = explode( '<br /><br />', $robocza['tresc_sformatowana'] );
  4. ?>


Kolejność zdarzeń jest następująca:

Do bazy danych dodawany jest tekst:

"Coś tam...

jest...

tutaj..."

Powyższy skrypt zamienia ten wpis na taki:

"Coś tam...<br />
<br />
jest...<br />
<br />
tutaj..."

...a następnie rozbija go na akapity:

$tablica['0'] = 'Coś tam...';
$tablica['1'] = 'jest...';
$tablica['2'] = 'tutaj...';

I tu moje pytanie. W jaki sposób zamienić pierwszą literę każdego z takich akapitów na jakiś ciąg znaków (konkretnie chodzi o coś takiego w przypadku pierwszego akapitu:

"<span style="color: #000000;">C</span>oś tam..."

W zasadzie jest jeden problem, który może się tu pojawić. Zamieniany ma być dowolny znak widzialny dla użytkowników, a więc jeśli akapit będzie wyglądał tak:

coś tam...

A więc ze spacjami wcześniej, zamieniana ma być litera C. Chodzi więc o wszystkie drukowalne znaki wpisywane przez użytkownika.

Z góry dzięki za pomoc...
lopik
Nie musisz kombinować z atrybutami style.

Możesz zastosować pseudo element.

p:first-letter {font-size:20px; itd. }
I pierwsza litera, będzie miała taki styl jak zastosujesz w CSS'ie.

BTW: http://www.azk.pl/web/css1-pseudo.php
The Night Shadow
No tak tylko problem polega na tym, że mam w bazie danych już dość dużo tekstu i wstawianie wszędzie takich akapitów byłoby niezbyt łątwe... ale pokombinuję z połączeniem pseudo elementu i tego o czym wczesniej mówiłem...
lopik
Nie rozumiem chyba za bardzo co chcesz osiągnąć.

Pierwszą literę w php możesz zmienić też tak:

  1. <?php
  2. $tablica[0] = 'Jakiś tekst';
  3.  
  4. $cos = substr($tablica[0], 0, 1);
  5. $cos2 = substr($tablica[0], 1);
  6.  
  7.  
  8. echo '<p><span style="font-size:20px">'.$cos.'</span>'.$cos2.'</p>';
  9. ?>
The Night Shadow
Zrobiłem tak jak mówiłeś, ale bez potrzeby dodawania ręcznie znaczników P:

  1. <?php
  2. $tresc_postu = str_replace("r", '', nl2br(stripslashes($dane_wypowiedzi_do_formatowania['privtresc_tresc'])));
  3. $tresc_postu = str_replace("n", '', $tresc_postu);
  4. $tablica_tresci = explode( '<br /><br />', $tresc_postu );
  5. $ilosc = count($tablica_tresci);
  6. $tresc_formatowanie = '';
  7. $i = '0';
  8. foreach ( $tablica_tresci as $tablica_tresci )
  9. {
  10. $tresc_formatowanie .= '<p>'.$tablica_tresci.'</p>';
  11. $i++;
  12. if ( $i <> $ilosc )
  13. {
  14. $tresc_formatowanie .= '<br />';
  15. }
  16. }
  17. ?>


Działą idealnie... dzięki za pomoc :- )
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.