Seite 1 von 1

php - edit einer gespeicherten seite

Verfasst: 26.12.2008, 01:34
von barry123
hallo habe folgendes problem und bitte um eure unterstuetzung.
habe im cacheordner gespeicherte files. die will ich jetzt aendern bzw nur einen teil rausholen und diese dann im anderen ordner speichern.
will einfach nur platz reduzieren. bitte aber nicht die verwendung einer DB sugerieren.
hier mein codeausschnitt

Code: Alles auswählen

foreach($filelist as $key => $file_mod){ //soll fuer alle im cache befindlichen dateien gelten          
fopen ($file_mod, "a");// oeffnen
$data = file_get_contents($file_mod);//einlesen der Seite

preg_match_all&#40;"/,b&#58;'rlt',tp&#58;'&#40;.+?&#41;'&#125;\&#41;\"&#40;.+?&#41;>&#40;.+?&#41;<\/a><\/div>/", $data, $keywords&#41;;//herholen dessen was ich will

foreach &#40;$keywords&#91;3&#93; as $numword => $outputkeyword&#41;&#123;
    chdir&#40;$cachefolder_mod&#41;;
    $open = fopen &#40;$file_mod, "w"&#41;;//oeffnet die neue &#40;schon im neuen ordner&#41; kw file und ...
    $savekeywords .= str_replace&#40;" ", "-", strip_tags&#40;$outputkeyword."\n"&#41;&#41;;
    fputs&#40;$open, $savekeywords&#41;;//...schreibt die kw's rein &#40;*&#41;
    &#125;
    chdir&#40;$cachefolder&#41;;
&#125;
exit;
(*) und beim naechsten durchlauf der schleife behaelt sie einschliesslich der neuen Kw's.

wie schaffe ich es also nur die aktuell benoetigten kw's in die jeweilige dazugehoerige datei zu speichern nicht aber die mit den davor schon hergeholten und entsprechend schon gespeicherten?

vielen dank fuer eure hilfe :)

Verfasst:
von

Verfasst: 26.12.2008, 02:39
von barry123
habe selber nun die loesung gefunden und zerbricht euch nicht mehr den kopf aber danke denjenigen die sich schon die haare aus dem kopf herausgerissen haben.

loesung: unset();



fputs($open, $savekeywords);//...schreibt die kw's rein (*)
}
unset ($savekeywords);
chdir($cachefolder);

Verfasst: 27.12.2008, 13:37
von Mork vom Ork
barry123 hat geschrieben:loesung: unset();
unset() ist hier fehl am Platz, da du damit die Variable gänzlich löschst und der Anhängeoperator .= somit auf keine Variable mehr zugreifen kann. Nun sieht PHP geflissentlich über diesen (und viele andere) Anfängerfehler hinweg und hinterlässt lediglich eine Warnung, nichtsdestotrotz korrekt wäre schlichtweg, die Variable $savekeywords vor der Schleife zu initialisieren:

Code: Alles auswählen

foreach&#40;$filelist as $key => $file_mod&#41;&#123; //soll fuer alle im cache befindlichen dateien gelten 
    &#91;bla&#93;

    $savekeywords = ""; // Variable initialisieren
    foreach &#40;$keywords&#91;3&#93; as $numword => $outputkeyword&#41; &#123;
        &#91;bla&#93;
        $savekeywords .= str_replace&#40;" ", "-", strip_tags&#40;$outputkeyword."\n"&#41;&#41;;
        fputs&#40;$open, $savekeywords&#41;;//...schreibt die kw's rein &#40;*&#41;
    &#125; 
    chdir&#40;$cachefolder&#41;;
&#125;