Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Jak zamienić w ciągu znaków co drugie wystąpienie podciągu ?
jolam
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

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


Mam taki problem, że zrobiłam obie tabelki w Markdown i chciałabym teraz zamienić co drugi tag <tr> na <tr class="dwa">. Przy czym raz chciałabym zamieniać od pierwszego wiersza a raz od drugiego (zamieniać na: <tr class="dwa"> i odpowiednio <tr class="jeden">). Wcześniej jak miałam tabelki html w plikach to bez problemu odczytywałam je komendą file i zamineiałm w co drugim wierszu. A teraz mam całą tabelkę w łańcuch. Jak to zamienić? Przy czym chciałabym najpierw poznać najprostszy sposób bez wyrażeń regularnych.
Bardzo proszę o pomoc.

pozdrawiam serdecznie Jola
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Tak jak wspomniał Vokiel, uchyl rąbka tajemnicy i wklej kod.

Strzelając na ślepo: Twoim dzielnikiem w explode może być np. <tr>. Jeżeli Twoja zmienna to ciąg typu $zmienna = "<tr><td>cośtam</td><td>cośtam></tr><tr><td>cośtam</td><td>cośtam></tr><tr><td>cośtam</td><td>cośtam></tr>"; Wtedy:
  1. <?php
  2. $tr = explode("<tr>", $zmienna);
  3. $j = 2; //pomocnicza zmienna
  4. echo "<table>"; // początek tablicy
  5.  
  6. for($i=0; $i < count($tr); ++$i) { // Pierwsza pętla która "przeleci" wszystkie wyniki
  7. if ($j%2 ==0) { // tu sprawdzasz czy liczba jest parzysta
  8. echo "<tr class='parzysta'>" . $tr[$i]; //bez zamknięcia </tr> bo $tr[0] = "<td>cośtam</td><td>cośtam></tr>";
  9. } else { //wyświetla cześć nieparzystą
  10. echo "<tr class='nieparzysta'>" . $tr[$i];
  11. }
  12. $j=$j+1; // żeby liczby były na przemian parzyste i nieparzyste
  13. }
  14. echo "</table>";

Pisane "z ręki" bez sprawdzania, więc mogą pojawić się błędy. Analogicznie możesz to zrobić dla innej części tabeli.
Go to the top of the page
+Quote Post

Posty w temacie


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.10.2025 - 14:19