Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrocenie stringa
Forum PHP.pl > Forum > Przedszkole
jackraymund
Więc mam przykładowy string z wikipedi
Cytat
W tradycyjnych realizacjach Pascala (np. Turbo Pascal) zmienna typu String może przechowywać do 255 znaków, a w definicji String[długość] może przechowywać do długość znaków, a ma rozmiar długość+1 i jest zaimplementowana jako tablica, której element o indeksie 0 przechowuje liczbę znaków w tym ciągu (typu bajt więc maksymalna długość łańcucha wynosi 255). W późniejszych implementacjach tego języka (np. Object Pascal w Delphi) dodano inną formę reprezentacji łańcucha, w którym maksymalna długość wynosi 2^32 bajtów i jest dynamicznie przydzielana w zależności od długości napisu, typ ten jest rozszerzeniem sposobu implementacji używanego przez C, dodano również typ w stylu C (PChar).

I chciałbym aby po 255 stringach zaczęło szukać kropki, i po kropce usunęło reszte i dodało (...)
np.
Cytat
W tradycyjnych realizacjach Pascala (np. Turbo Pascal) zmienna typu String może przechowywać do 255 znaków, a w definicji String[długość] może przechowywać do długość znaków, a ma rozmiar długość+1 i jest zaimplementowana jako tablica, której element o indeksie 0 przechowuje liczbę znaków w tym ciągu (typu bajt więc maksymalna długość łańcucha wynosi 255).(...)

potrzebuje tego do systemu newsów, np. jak jest tutaj
http://eune.leagueoflegends.com/news
Są skrócone newsy, i po kliknięciu wyskakuje cały news.A niechciałbym robić 2 osobnych wersji
poli25
IF(strlen($string)>=255)
{
$string=substr($string,0,255)."(...)";
}
lobopol
Po pierwsze "skrócenie"
Najłatwiej to zrobisz dzieląc to sobie na kilka kroków:
1. Zliczenie czy ciąg ma przynajmniej 255 znaków mb_strlen
2. Jeżeli ma to użyć na nim metody strpos z 3 parametrem równym 255 i sprawdzić czy nie zwróci false
3. masz teraz pozycje pierwszej kropki po 255 znakach mb_substr z odpowiednimi parametrami i dodajesz te trzy kropki
jackraymund
@edit
  1. IF(strlen($rekord['opis'])>=255)
  2. {
  3. $string = strpos($rekord['opis'], ".",255);
  4. $string=substr($rekord['opis'],0,$string).".(...)";
  5. echo $string;
  6. }
  7. else
  8. {
  9. echo $rekord['opis'];
  10. }


działa pięknie, dziękuje wam obu
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.