Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Optymalizacja kodu
Forum PHP.pl > Forum > PHP
Esc
Schemat jest taki dany tekst naznaczam znacznikiem [OBRAZEK=nazwa.jpg][/OBRAZEK] Nastepnie sprawdzam ile jest takich obrazkow w tekscie - zapamietuje nazwe. Ta nazwe porownuje w bazie danych - jezeli istnieje to wyciagam reszte informacji o obrazku typu numer katalogowy, opis czy inne tam po czym dopiero w petli zamieszczam ereg_replace do podmiany znacznika na wszystkie opisy - czy to nie jest troche za duzo dla serverka ? Nie dalo by sie tego jakos zoptymalizowac ?

  1. <?php
  2.  
  3. $tekst = explode(&#092;"[OBRAZEK=\", $opis);
  4. for($x=1; $x < count($tekst); $x++){
  5. $slowo= explode(&#092;"][/OBRAZEK]\", $tekst[$x]);
  6. $szukane_slowo[$x]= $slowo[0];
  7. }
  8.  
  9. $table_name3 = &#092;"01_zdjecia\";
  10. $sql3 = &#092;"SELECT * FROM $table_name3\";
  11. $pyt3 = mysql_query($sql3,$connection);
  12. while ($rekord3 = mysql_fetch_array ($pyt3)) {
  13. $y++;
  14. if (($szukane_slowo[$y] == $rekord3[Nazwa]) or ($x > $y)) {
  15. $z_bazy[$y] = $rekord3[Nazwa];
  16. $z_bazy_opis[$y] = $rekord3[Opis];
  17. }}
  18.  
  19. for ($z=1; $z < $x; $z++) {
  20. $opis = ereg_replace(&#092;"[OBRAZEK=$z_bazy[$z]][/OBRAZEK]\", \"<BR><CENTER><a href =\"img/$z_bazy[$z]\">$z_bazy[$z]</A><BR>$z_bazy_opis[$z]</CENTER><BR>\", $opis);
  21. }
  22.  
  23. ?>
bendi
Ja bym to zrobil tak:
  1. <?
  2. //szukamy obrazkow
  3. preg_match_all( '%[OBRAZEK=\"(.*?)\"][/OBRAZEK]%s', $opis, $aSzukaneSlowo );
  4.  
  5. //tablica $aSzukaneSlowo[1] zawiera interesujace nas informacje
  6. //nastepnie pobieramy informacje o plikach z bazy
  7. $hRes = mysql_query( 'SELECT * FROM 01_zdjecia WHERE Nazwa IN (\"'. join( '\",\"', $aSzukaneSlowo[1] ) . '\")' );
  8.  
  9. //no i zamieniamy co trzeba korzystajac z str_replace zamiast ereg_replace, bo jes
  10.  szybsze
  11. while( ( $aRow = mysql_fetch_array( $hRes ) ) !== false ) {
  12.     $opis = str_replace('[OBRAZEK=\"' . $aRow['Nazwa'] . '][/OBRAZEK]', '<div style=\"text-align:center;\"><a href =\"img/' . $aRow['Nazwa'] . '\">' . $aRow['Nazwa'] . '</a><br >' . $aRow['Opis'] . '</div>', $opis);
  13. }
  14. ?>

Zastapilem tez znacznik <center> div'em, gdyz ten pierwszy zostal wycofany nawet ze specyfikacji HTML 4.0.
Esc
Dzieki serdeczne bendi po Twojemu znacznie sie przyspieszylo wykonywanie a dziala dokladnie tak samo jak powinno.
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.