Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobranie z tekstu pierwszego akapitu
pawel0520
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 5.06.2013

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


Witam,

chciałbym z tekstu wyodrębnić pierwszy akapit.

obecnie mam takie intro, które wyświetla 100 pierwszych znaków:

  1. $tresc = cutWords($row['intro'], 100, true). '...';


Próbowałem robić to tak:
  1. $podzial = explode("<br>", $row['intro']);
  2. $tresc = $podzial[0];


Owszem, wszystko dobrze dzieli, ale tekst pojawia się w innym miejscu i wszystko się zlewa ze sobą.

W bazie danych treść jest zapisywana w taki sposób:

Cytat
<div>Po cożbym ja teraz spolszczone szanownej. Publiczności jako zaszczyty względne a im więcej potrzeb coraz więcej nad trzy pojęcia o cnocie i kary od kary. Więc ja istnieję dla tego o Dobru jest też nie czyni, ale świat są przyjemne, a tu będzie niespokojny. </div><div><br></div><div>Wzór lub oddzielnego zarodku do czego mądrość i cały świat są dolegliwości nam się popełniło. Takie ...


Czyli akapit w div -> <br> w div -> następny akapit w div.

Da się jakoś rozwiązać mój problem?

Pozdrawiam.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Może użyj preg_match?

  1. preg_match('#<div>(.*)<\/div>#', $tresc, $matches);


Wyrażenie regularne jest tu tylko przykładowe. Musisz napisać odpowiednie. Wynik będzie w tablicy $matches.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
pawel0520
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 5.06.2013

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


Jest jakiś prostszy sposób? może przez walidację?

Pozdrawiam.

ps: od razu mówię, że nie jetem zbyt biegły w php. po prostu ktoś mi powiedział, że walidacja może być ok. może to co kolega podał wyżej jest walidacją, ale wydaje mi się skomplikowane.

Pozdr.

Ten post edytował pawel0520 20.06.2013, 12:10:16
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




strpos na zamykającego diva przecież wystarczy.

Poza tym, dlaczego nie użyjesz strip_tags i z tego zrobisz zajawkę?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pawel0520
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 5.06.2013

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


  1. $pos = strpos($row['intro'], "a");
  2. $tresc = cutWords($row['intro'], $pos, true);


Przy tak skonstruowanej funkcji wszystko jest ok. Ucina za "a". Jednak działa to tylko przy jednym znaku. W ogóle nie wiem jak to mam ustawić żeby ucinało po akapicie. Próbowałem kombinować ze "/", ale bez efektów.

Pozdrawiam.

Poradziłem sobie już z tym problemem. Mam jednak trochę inny. Kiedy wyświetla mi się cała treść tekstu, chciałbym, aby pierwszy akapit był pogrubiony. Mogę zrobić to tak samo jak z poprzednim problemem, ale wyświetli mi się pierwszy akapit (pogrubiony) i resztę tekstu zawierającego również ten akapit.

Mam taki kod php do wyświetlenia artykułu:

  1. return $artykul . '<div class="artykul_intro">'.stripslashes(str_replace(array('%5C','%22'), array('',''), $row['text'])).'</div>';


I artykuł wyświetla się w taki sposób, że każdy akapit jest w osobnym divie.

Pozdrawiam.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 03:09