Avatar billede dingkee Nybegynder
24. april 2007 - 14:29 Der er 7 kommentarer og
1 løsning

Skrive til en fil

Hej,

Jeg skal skrive noget data til en anden fil (en .inf) og har fundet ud af at skrive "alm" data til den, men jeg skal også have skrevet et loop til den, hvordan gør man det??

Her er min kode:
<?php
$File = "ArtScene.inf";
$Handle = fopen($File, 'w');
$Data = "Applet=ArtScene\n";
fwrite($Handle, $Data);
$Data = "
&Copyright=
&ID=ArtScene
&Width=495
&Height=100
&PageBgColor=000000
&BgColor=000000
&BgGradientColor=000000
&CaptionGlowColor=FFFFFF
&CaptionGlowDepth=30
&CaptionHeight=30
&CaptionLinkEnterUnderline=Yes
&CaptionLinkUnderline=No
&CaptionNudge=0
&CaptionTextColor=D8DBE6
&CaptionTextFocusColor=3399FF
&CaptionTextPressColor=FFFFFF
&CaptionFont=Verdana|Sans,9,Plain
&DefaultTarget=_self
&AnimationDelay=10
&FlashSelector=Yes
&ImageSpacing=20
&LimitImageExpand=Yes
&ReflectionDepth=30
&SelectorColor=C0C0C0
&ShowSelector=Yes
&ThumbnailHandCursor=No
&ThumbnailHeight=0
&LoadProgressBorderColor=606074
&LoadProgressFillColor=9090A0
&LoadProgressGradientColor=282835
&LoadText=Loading...
&LoadTextColor=D8DBE6
&NudgeCenterLine=0
&SatelliteAuto=No
&ScrollArrowColor=FFFFFF
&ScrollArrowDisabledColor=FFFFFF
&ScrollArrowFocusColor=FFFFFF
&ScrollColor=000000
&ScrollGradientColor=000000
&ScrollHandCursor=No
&SelectedImage=3
&ShowVersion=No";
fwrite($Handle, $Data);
print "$Data, $fil2";
fclose($Handle);
?>

Mit loop:
<?PHP
$sql1 = mysql_query("SELECT * FROM film WHERE kat_id = '$id'");
                                                    while ($r1 = mysql_fetch_array($sql1)) {
                                                    echo"
                                                    &Image1=$r1[id]_forsidelille.jpg
                                                    &Caption1=$r1[titel]
                                                    ";}

?>
Avatar billede jakobdo Ekspert
24. april 2007 - 15:24 #1
Sådan måske:

<?php
$filename = 'test.txt';

// Let's make sure the file exists and is writable first.
if (is_writable($filename))
{
    // In our example we're opening $filename in append mode.
    // The file pointer is at the bottom of the file hence
    // that's where $somecontent will go when we fwrite() it.
    if (!$handle = fopen($filename, 'a'))
    {
        echo "Cannot open file ($filename)";
        exit;
    }

    $sql1 = mysql_query("SELECT * FROM film WHERE kat_id = '$id'");
    if(mysql_num_rows($sql1)>0)
    {
        while ($r1 = mysql_fetch_array($sql1))
        {
            $content = "&Image1=$r1[id]_forsidelille.jpg&Caption1=$r1[titel]\n";
           
            // Write $somecontent to our opened file.
            if (fwrite($handle, $content) === FALSE)
            {
                echo "Cannot write to file ($filename)";
                exit;
            }
        }
    }
    fclose($handle);
}
else
{
    echo "The file $filename is not writable";
}
?>
Avatar billede dingkee Nybegynder
24. april 2007 - 16:30 #2
Så sker der desværre ingen ting... Siden er bare helt blank
Avatar billede jakobdo Ekspert
24. april 2007 - 16:49 #3
Det er fordi den jo skriver alt data til en fil.
Du skal dog også huske at forbinde til databasen.

Du kan evt. tilføje lidt kode lige over: fclose($handle);
hvor den skriver:
echo "Success, wrote SQL-content to file ($filename)";
Avatar billede dingkee Nybegynder
25. april 2007 - 12:16 #4
Jeg har nu prøvet igen, og der sker ingen ting, hverken i den fil den skal skrive til, eller den som den skriver fra (heller ikke den success sætning)

Jeg har kopieret din kode direkte, uden at lave nogle ændringen, dog har jeg sat min connect sætning ind i toppen :)
Avatar billede jakobdo Ekspert
25. april 2007 - 12:34 #5
Du skal huske at sætte skrive rettigheder på filen: test.txt
Avatar billede jakobdo Ekspert
25. april 2007 - 15:51 #6
Det virkede måske?
Avatar billede dingkee Nybegynder
26. april 2007 - 09:58 #7
Nej det virkede desværre ikke...

Jeg fik det her til at virke:
$sql1 = mysql_query("SELECT * FROM film WHERE kat_id = '$katid' ORDER BY titel LIMIT 10");
while ($r1 = mysql_fetch_array($sql1)) {
$i++;
$c++;
$url = "&url$i=index.php?id=$r1[id]&katid=$katid";
$titelen = $r1["titel"];
$titelen = str_replace('Â', "?•", $titelen);
$titelen = str_replace('¯', "??", $titelen);
$titelen = str_replace('Ê', "?¶", $titelen);
$titelen = "&Caption$c=$titelen";
$iden = "&Image$i=../poulin/images/$r1[id]_forsidelille.jpg";
$content = "$iden\n$titelen\n$url\n";
fwrite($Handle, $content);

Men synes du skal have point alligevel, fordi du gider hjælpe mig :) hvis det ikke var for dig var jeg ikke kommet i gang med de tanker...
Avatar billede jakobdo Ekspert
26. april 2007 - 10:15 #8
Jeg takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester