Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usunięcie niechcianego przecinka
Greg23
post 12.07.2012, 12:38:43
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 6.04.2012

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


Mam skrypt, który wyświetla mi na stronie tagi:

  1. if (!empty($rekordow2[8])){
  2. echo '<p>Tagi: ';
  3. $tags24=explode(",", $rekordow2[8]);
  4.  
  5. foreach($tags24 as $f ){
  6. echo "<a href='' title='".$f."'><strong>$f</strong></a>, ";
  7.  
  8. }
  9. echo '</p>';
  10. }


W wyniku dostaję coś takiego:
  1. Tagi: ala, ma, kota,


Jak pozbyć się tego ostatniego, niepotrzebnego przecinka ?



--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
irmidjusz
post 15.07.2012, 12:48:46
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Przekonaliście mnie, rzeczywiście ten zapis SmokaAnaloga wygląda prościej, czytelniej smile.gif
Chociaż osobiście nie lubię pisać tego typu konstrukcji, gdzie wykonuje się coś niepotrzebnie mnóstwo razy (jak to przypisanie separatora w pętli), to jednak w typowych zastosowaniach nie ma to żadnego znaczenia i dla uproszczenia kodu jest OK. Działa dobrze i jest łatwe w czytaniu i to mnie przekonało.

Natomiast jeśli chodzi o czas wykonania czy zużycie pamięci:

1.
Jeśli echo ma wypluć niewielkie ilości niedługich łańcuchów, to czas wykonania czy pamięciożerność w ogóle się nie liczy smile.gif Dla tak małych liczb, są to rzeczy zupełnie bez znaczenia i pomijalne i nie ma nawet się co zastanawiać nad tym czy coś się wykona szybciej albo zajmie mniej RAMu, bo są to nieistotne różnice. Gdybanie o tym, co jest szybsze od czego nie jest profilowaniem i często ma się nijak do rzeczywistości. W ogóle rozmyślanie o tym i używanie jako argumentów, że jakieś rozwiązanie jest lepsze od innego, jest w takim przypadku (małych ilości przetwarzanych elementów) bez sensu.

Co to są "niewielkie ilości"? Zależy smile.gif Ale w praktyce, ile takich elementów wyświetlisz? 100? 500? Więcej się zwykle nie daje, bo to utrudnia przeglądanie strony - do tego jest paginacja albo filtrowanie. Nawet dla 500 kilkuset znakowych łańcuchów nie ma praktycznego znaczenia, który sposób zastosujesz. No chyba, że piszesz w PHP aplikację na najnowszy zegarek Bonda z wbudowanym mikroserwerem www z 1 MB RAMu dla PHPa, wówczas to co innego... ;P

A teraz zagadka: przy jakiej ilości elementów w tablicy będzie różnica wykonania rzędu 100 ms? Zależy od serwera smile.gif ale mogę strzelać, że będą to ilości 100000+ (o ile oczywiście nie sprawdzamy na zegarku Bonda z prockiem 400 MHz... biggrin.gif) Poza tym, takie rzeczy to się sprawdza w realnym środowisku wykonawczym podczas profilowania i optymalizuje tylko wtedy, gdy w ogóle ma jakiekolwiek istotne znaczenie.

2.
Jeśli echo nie jest buforowane, to im więcej operacji echo, tym dłużej to trwa i prosty test pokazuje, że dla dużych ilości echo, lepiej jest zgromadzić stringi w tablicy i wypluć jednym echo implode, bo trwa to sumarycznie krócej. Oczywiście, można też gromadzić w tymczasowym stringu i wypluć go na koniec w całości. A najszybciej (i zużywa najmniej RAMu) jest stosować echo przy włączonym buforowaniu.



--------------------
there is much to be learned
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 28.06.2025 - 01:23