Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [poszukuję funkcji] Ujednolicenie tekstu
Forum PHP.pl > Forum > PHP
nanoo
Witam,
nie wiem jak poradzić sobie z czymś takim:
  1. <span class='klasa1'>N</span><span class='klasa2'>i</span>

Chodzi o to, że każda literka ma inny kolor (w klasa1 jest inny kolor i w klasa2 też inny). Ale zdarza się, że jest obok siebie
  1. <span class='klasa1'>N</span><span class='klasa1'>i</span>
czyli takie same klasy (kolory). Jest to trochę marnowanie pamięci, bo mogłoby to wyglądać
  1. <span class='klasa1'>Ni</span>
- od razu zajmuje mniej miejsca. Czasami zdarza się, że i 10 liter ma tę samą klasę i każda jest w innym span, mimo że wszystkie powinny być w jednym.
Mam tekst, w którym występuje ok 10k liter i poszukuję funkcji, która pomogłaby mi ujednolicić tekst (ze spanami).

Szukałem dużo w sieci jednak ani moja wiedza ani wyniki poszukiwań nie pomogły mi rozwiązać mojego problemu.
Liczę na Waszą pomoc.
Pozdrawiam
tehaha
możesz użyć tutaj preg_replace()
nanoo
Prawdę powiedziawszy preg_replace() zawsze sprawia mi wielki problem i za każdym razem kiedy jestem zmuszony tego użyć korzystam z manuala w taki sposób, że pod gotowce podstawiam to co potrzebuję. Ale teraz nie wiem... Kombinowałem z tym:

  1. <?php
  2. $string = 'April 15, 2003';
  3. $pattern = '/(\w+) (\d+), (\d+)/i';
  4. $replacement = '${1}1,$3';
  5. echo preg_replace($pattern, $replacement, $string);
  6. ?>

ale to działa na "statycznych" danych, a u mnie są dwie zmienne, tzn. (pogrubione) <span class='klasa1'>N</span>
I tak już kombinowałem, że teraz sam nie wiem co robię, a i tak nie działa...
lukaskolista
Napisy wyswietlasz w petli czy inaczej?
nanoo
Próbowałem wykorzystać pętlę while ale to ogólnie nie był dobry pomysł...
Plan miałem taki, by "wskaźnik" przesuwał się przez całą długość tekstu i co określoną ilość znaków sprawdzał, czy to co pomiędzy pierwszymi apostrofami (w przypadku poniżej to 'klasa1') jest takie samo jak to co w kolejnych apostrofach i jeśli jest takie samo to explode() po apostrofach i porównanie pierwszego i ostatniego elementu tablicy. i później if z odpowiednim działaniem.
  1. <span class='klasa1'>N</span><span class='klasa2'>i</span>

Ogólnie to był zły, bardzo zły pomysł :/
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.