Autor Zpráva
slovakCZ
Profil
Dobrý den,

zkouším pracovat se soubory a ukládat do nic nějaký obsah. Ovšem mám problém, že mi to do souboru uloží veškerý obsah 2x. konkrétně to jede přes tento kód:
<?php
  function drawNavigationImgBanners($table, $url) {    
    $data .= "<div id=\"adds\" class=\"clearfix\">";               
    $query = "SELECT * FROM ".$table." WHERE active=1";
    $draw = mysql_query("$query");
    while ($v = mysql_fetch_array($draw) ){
      if($v['img']=="null"){}else{

          $data .= "
            <a href=\"".$v['url']."\" title=\"Odkaz na ".$v['title']."\">
              <img src=\"".$url."resources/banners/".$v['img']."\" alt=\"".$v['title']."\" />
            </a>
          ";
      }    
    }

    $data .= "<div class=\"clear\"></div></div>"; 



  $soubor = fopen("cache/sidebar/banners-with-images.php", "a+");
  fwrite($soubor, $data);
  fclose($soubor);    
}
?>


v závěru ukládám data do souboru a data se mi uloží takto a nechápu proč:
<div id="adds" class="clearfix">
  <a href="xxx" title="aaa">  
    <img src="http://localhost/css/resources/banners/bbb.jpg" alt="ccc" />
  </a>                     
  <div class="clear">
  </div>
</div>
<div id="adds" class="clearfix">
  <a href="xxx" title="aaa">  
    <img src="http://localhost/css/resources/banners/bbb.jpg" alt="ccc" />
  </a>                    
  <div class="clear">
  </div>
</div>


nevidíte v kódu někdo prosím chybu?

//edit:
Když na úplný konec celého skriptu dám echo $data; tak mi to do stránky vypíše potřebný html kód pouze jednou ale do souboru ho potvora uloží 2x =o/ je to vůbec možné?
Jan Tvrdík
Profil
slovakCZ:
Nechtěl jsi soubor otevřít místo v módu a+ (připisování na konec souboru) spíš v módu w+ (přepis stávajícího obsahu)? Viz také dokumentace: fopen.
slovakCZ
Profil
Jan Tvrdík:
Děkuju za radu, to je ono... pracoval jsem se soubory kde jsem připisoval nějaká data nakonec a tak jsem si to neuvědomil.

Ale i tak mi je divné, že pri módu a+ to obsah jakoby "zduplikuje" i přes to, že soubor je před spuštěním skriptu prázdný. Každopádně v módu w+ vše funguje, takže děkuji.
Jan Tvrdík
Profil
Ale i tak mi je divné, že pri módu a+ to obsah jakoby "zduplikuje"
Tipuji, že tu funkci drawNavigationImgBanners voláš 2× a ani o tom nevíš.
slovakCZ
Profil
Jan Tvrdík:
ne ne.. 2x ji stoprocentne nevolam. Zkousel jsem na konec teto funkce pridat: echo $data (tim padem se html kod, ktery chci vlozit do souboru vypise i do stranky) a kdybych fci volal 2x tak by se mi kod vepsal na web taktez 2x. takto se mi ovsem 2x vepsal jen do souboru.... fci volat 2x take nemohu z toho duvodu, ze jsem ji tesne pred testovanim napsal a do stranky jsem jeji volani stoprocentne vlozil jen jednou. Nevim tedy kde byla chyba, ale na reseni ted neni cas :) hlavne ze to funguje :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0