Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

sammenlægning txt filer

48 views
Skip to first unread message

Martin

unread,
Jun 28, 2012, 9:53:38 AM6/28/12
to
Hej php folk

I en servermappe findes fx 100 txt filer med forskellige navne.

Der ønskes vha php at tage fil_1 og skrive indholdet af fil_2 i
slutningen af filen, evt gemme, skrive fil_3 i slutningen igen osv.

således at tilsidst har man een stor fil med indholdet af de 100
oprindelige filer med sortering fil_1, fil_2, fil_3.....fil_100

filer adskilles med <br><br>

Det må være noget med fopen med argumenterne w og a og så en lykke...

Nogle gode forslag?

Martin

Bertel Lund Hansen

unread,
Jun 28, 2012, 10:20:01 AM6/28/12
to
Martin skrev:

> I en servermappe findes fx 100 txt filer med forskellige navne.

> Der ønskes vha php at tage fil_1 og skrive indholdet af fil_2 i
> slutningen af filen, evt gemme, skrive fil_3 i slutningen igen osv.

> således at tilsidst har man een stor fil med indholdet af de 100
> oprindelige filer med sortering fil_1, fil_2, fil_3.....fil_100

> filer adskilles med <br><br>

$handle=fopen ('final_file.txt','a');
foreach (glob('mappe/*.*') as $file) {
$contents=file_get_contents($file);
fwrite($handle,$file);
fwrite($handle,'<br><br>');
}
fclose($handle);

> Det må være noget med fopen med argumenterne w og a og så en lykke...
(løkke)

Det er ikke nødvendigt med w. Hvis man åbner med append (a),
oprettes filen automatisk hvis den ikke eksisterer. Men det vil
også virke uden fejl med w først.

To gange <br> er en HTML-fejl. Hvad med at omkranse hver fil med
<p></p>?

--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/

Martin

unread,
Jun 28, 2012, 10:28:54 AM6/28/12
to
Den 28-06-2012 16:20, Bertel Lund Hansen skrev:
> Martin skrev:
>
>> I en servermappe findes fx 100 txt filer med forskellige navne.
>
>> Der ønskes vha php at tage fil_1 og skrive indholdet af fil_2 i
>> slutningen af filen, evt gemme, skrive fil_3 i slutningen igen osv.
>
>> således at tilsidst har man een stor fil med indholdet af de 100
>> oprindelige filer med sortering fil_1, fil_2, fil_3.....fil_100
>
>> filer adskilles med <br><br>


> Bertel skrev
> $handle=fopen ('final_file.txt','a');
> foreach (glob('mappe/*.*') as $file) {
> $contents=file_get_contents($file);
> fwrite($handle,$file);
> fwrite($handle,'<br><br>');
> }
> fclose($handle);
>
>> Det må være noget med fopen med argumenterne w og a og så en lykke...
> (løkke)
>
> Det er ikke nødvendigt med w. Hvis man åbner med append (a),
> oprettes filen automatisk hvis den ikke eksisterer. Men det vil
> også virke uden fejl med w først.
>
> To gange <br> er en HTML-fejl. Hvad med at omkranse hver fil med
> <p></p>?
>


I den færdige fil bliver kun filnavnet af hver fil gemt og IKKE selve
indholdet. Hm, kan du gennemskue det?

Martin


Martin

unread,
Jun 28, 2012, 10:31:54 AM6/28/12
to
Fandt fejlen -
fwrite($handle,$contents);

istedet for fwrite($handle,$file);

Martin

unread,
Jun 28, 2012, 10:54:40 AM6/28/12
to
$savefile = dirname(__FILE__) . '/saved.txt';
$files = glob(dirname(__FILE__) . '/*.txt');
foreach($files AS $file) {
file_put_contents($savefile, '<br><br>' . file_get_contents($file),
FILE_APPEND);
}

scootergrisen

unread,
Jun 28, 2012, 10:58:26 AM6/28/12
to
> Nogle gode forslag?

Gem følgende kode i en fil og lav en mappe kaldet "mappenmedfilerne"
samme sted og put dine filer (fil_1, fil_2, osv) i den mappe.

Så bliver der gemt en fil kaldet "storfil.txt" i samme mappe hvor du har
filen med PHP koden.

<?php

error_reporting(-1);
ini_set('display_startup_errors', 'on');
ini_set('display_errors', true);

$mappe = 'mappenmedfilerne';
$filsomskalgemmes = "storfil.txt";
$filindhold = array();

function hentfilliste($mappe){

$liste = array();

$mappehandle = opendir($mappe);

while(($fil = readdir($mappehandle)) !== false){

if($fil != "." && $fil != ".."){

if(is_file("$mappe/$fil")){

$liste[] = $fil;

}

}

}

closedir($mappehandle);

natcasesort($liste);

return $liste;

}

$arraymedfilnavne = hentfilliste($mappe);

foreach($arraymedfilnavne as $filnavn){

$filindhold[] = file_get_contents("$mappe/$filnavn");

}

$datasomskalgemmes = implode('<br><br>', $filindhold);

file_put_contents($filsomskalgemmes, $datasomskalgemmes);

?>

Martin Larsen

unread,
Jun 28, 2012, 2:32:39 PM6/28/12
to
Bertel Lund Hansen wrote:

> To gange <br> er en HTML-fejl. Hvad med at omkranse hver fil med
> <p></p>?

Hvorfor det? Der er der en semantisk forskel på <p> og <br>. Hvis jeg nu
bare gerne vil have en ekstra tom linje <indsat kan jeg ikke se noget
galt i at bruge to (eller flere) <br>.

Fx kunne man ønske dette layout med ekstra mellemrum for
overskuelighedens skyld:


Hvis man indsætter

<br><br>

i sin html-kode, fås en tom linje.


Der er naturligvis alternativer såsom en <span> der måske også
formatterer kodeeksemplet, men ønskes der ingen særlig formattering ud
over "luften", er <br> IMO en ganske passende løsning.

Bertel Lund Hansen

unread,
Jun 28, 2012, 2:46:30 PM6/28/12
to
Martin Larsen skrev:

>> To gange <br> er en HTML-fejl. Hvad med at omkranse hver fil med
>> <p></p>?

> Hvorfor det?

Jeg har lige tjekket det, og jeg må tage mine ord i mig igen. For
nogle år siden ville det have givet en kodefejl og ikke have
virket i visse browsere, men jeg kan se at standarden er ændret
så det nu er legalt at lave flere <br> i træk.

> Fx kunne man ønske dette layout med ekstra mellemrum for
> overskuelighedens skyld:

Det ville jeg lave ved at style et afsnit med ekstra bundmargin.
Jeg har dog også nogle steder brugt "<p> </p>" hvis jeg ville
have at man i selve koden kunne se at der skulle være luft.

Kim Ludvigsen

unread,
Jun 28, 2012, 2:55:26 PM6/28/12
to
Den 28-06-2012 20:46, Bertel Lund Hansen skrev:
> Martin Larsen skrev:
>
>>> To gange <br> er en HTML-fejl. Hvad med at omkranse hver fil med
>>> <p></p>?
>
>> Hvorfor det?
>
> Jeg har lige tjekket det, og jeg må tage mine ord i mig igen. For
> nogle år siden ville det have givet en kodefejl og ikke have
> virket i visse browsere, men jeg kan se at standarden er ændret
> så det nu er legalt at lave flere <br> i træk.

Jeg tror, du husker forkert. Flere <br> har vist altid virket. De
tidligste editorer brugte netop flere <br>'er til at lave afstand - hvis
ellers det ikke er mig, der husker forkert.

--
Mvh. Kim Ludvigsen
Stor sammenligning af antivirusprogrammer og sikkerhedspakker:
http://kimludvigsen.dk/sammenligning/antivirus

scootergrisen

unread,
Jun 28, 2012, 3:10:55 PM6/28/12
to
>>>> To gange <br> er en HTML-fejl. Hvad med at omkranse hver fil med
>>>> <p></p>?
>>
>>> Hvorfor det?
>>
>> Jeg har lige tjekket det, og jeg må tage mine ord i mig igen. For
>> nogle år siden ville det have givet en kodefejl og ikke have
>> virket i visse browsere, men jeg kan se at standarden er ændret
>> så det nu er legalt at lave flere <br> i træk.
>
> Jeg tror, du husker forkert. Flere <br> har vist altid virket. De
> tidligste editorer brugte netop flere <br>'er til at lave afstand - hvis
> ellers det ikke er mig, der husker forkert.

Tror da heller aldrig 2 eller flere <br> efter hinanden giver kodefejl
det må vist være en anden fejl så.

For eksempel hvis det er brugt i XHTML eller de ikke har været omsluttet
af <div> eller ligende.

Men det jo let nok og teste i W3C markup validatoren og se hvad den siger.

Bertel Lund Hansen

unread,
Jun 28, 2012, 5:04:37 PM6/28/12
to
Kim Ludvigsen skrev:

>> virket i visse browsere, men jeg kan se at standarden er ændret
>> så det nu er legalt at lave flere <br> i træk.

> Jeg tror, du husker forkert. Flere <br> har vist altid virket.

Nej. Der har været browsere der renderede det som ét <br> uanset
hvor mange der var, og jeg mener også at det var en kodefejl. Det
sidste er jeg dog mindre sikker på.

Philip Nunnegaard

unread,
Jun 29, 2012, 3:02:27 PM6/29/12
to
Bertel Lund Hansen skrev:

> Nej. Der har været browsere der renderede det som ét <br> uanset
> hvor mange der var, og jeg mener også at det var en kodefejl. Det
> sidste er jeg dog mindre sikker på.

Det må være rigtig mange år siden.
Mine browsere gennem tiden har altid vist et linjeskift pr. <br> i den
tid hvor jeg har haft kendskab til html, dvs. siden efteråret 2000, hvor
jeg havde IE 5.0 og Netscape 4.5.

--
Philip


Bertel Lund Hansen

unread,
Jun 29, 2012, 5:30:56 PM6/29/12
to
Philip Nunnegaard skrev:

>> Nej. Der har været browsere der renderede det som ét <br> uanset
>> hvor mange der var, og jeg mener også at det var en kodefejl. Det
>> sidste er jeg dog mindre sikker på.

> Det må være rigtig mange år siden.

Sikkert. Jeg begyndte med internettet engang i begyndelsen af
90'erne.
0 new messages