/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Funktion: Tæl antal linjer
Fra : Henrik Boye


Dato : 16-04-06 23:17

Hej

Jeg leder efter en funktion, som kan retunere antallet af linjer i en
fil. Det må være muligt at gøre med PHP.

Jeg har f.eks. en fil, som hedder "newsletter_email_addresses.txt".

Er der nogen som kan hjælpe mig? Jeg har forsøgt at søge lidt på
php.net og her i nyhedsgruppen, men umiddelbart uden resultater...

--
Silas Boye Nissen
http://boyeit.dk/
http://cmforum.dk/
http://sporvognsrejser.dk/


 
 
Jacob Jørgensen (16-04-2006)
Kommentar
Fra : Jacob Jørgensen


Dato : 16-04-06 23:54

> Er der nogen som kan hjælpe mig? Jeg har forsøgt at søge lidt på
> php.net og her i nyhedsgruppen, men umiddelbart uden resultater...
>
Prøv evt. en google søgning på "php count number of lines".

http://www.google.dk/search?q=php+count+number+of+lines

Mvh Jacob



Henrik Stidsen (17-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 17-04-06 00:24

Henrik Boye explained :
> Jeg leder efter en funktion, som kan retunere antallet af linjer i en
> fil. Det må være muligt at gøre med PHP.

Det kan det også

> Jeg har f.eks. en fil, som hedder "newsletter_email_addresses.txt".

> Er der nogen som kan hjælpe mig? Jeg har forsøgt at søge lidt på
> php.net og her i nyhedsgruppen, men umiddelbart uden resultater...

Prøv med
$lines = file("newsletter_email_adresses.txt");
echo "Der er " . count($lines) . " linier i filen";

Utestet, uden garanti :)

--
Henrik Stidsen - http://henrikstidsen.dk/
"I´m sorry for whatever I´m going to do and I swear I didn´t do any of
that stuff I did." - Rufus Riley, The Minority Report



Henrik Boye (17-04-2006)
Kommentar
Fra : Henrik Boye


Dato : 17-04-06 14:48

Henrik Stidsen <nntpspam@hs235.dk> skrev:
>Prøv med
>$lines =
>file("newsletter_email_adresses.txt ");
>echo "Der er " . count($lines) . "
>linier i filen";
>
>Utestet, uden garanti :)

Jeg forsøger med:
$lines =
count(file("http://website.dk/sti/newsletter_email_addresses.txt"));
echo "<p>Antal modtagere af nyhedsbrev:
<b>$lines</b></p>\n";

Det retunerer $lines == 1
.... på trods af at der er flere hundrede linjer i
filen.

Hvad kunne tænkes at gå galt?

--
Silas Boye Nissen
http://boyeit.dk/
http://cmforum.dk/
http://sporvognsrejser.dk/


Bertel Lund Hansen (17-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 17-04-06 14:57

Henrik Boye skrev:

> Jeg forsøger med:
> $lines =
> count(file("http://website.dk/sti/newsletter_email_addresses.txt"));
> echo "<p>Antal modtagere af nyhedsbrev:
> <b>$lines</b></p>\n";

> Det retunerer $lines == 1
> ... på trods af at der er flere hundrede linjer i
> filen.

> Hvad kunne tænkes at gå galt?

Jeg ved det ikke, men du kunne prøve at se om det er noget med
linjeskift. Det følgende burde gøre det samme som dit eget
forsøg:

$lines = count(explode("\n",file_get_contents("http://website.dk/sti/newsletter_email_addresses.txt")));

Fidusen er at du så kan prøve med det her i stedet.

$lines = count(explode("\r",file_get_contents("http://website.dk/sti/newsletter_email_addresses.txt")));

Hvis det gør en forskel er 'linjeskiftet' kun et returtegn.

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

Henrik Boye (17-04-2006)
Kommentar
Fra : Henrik Boye


Dato : 17-04-06 15:13

Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev:
>Jeg ved det ikke, men du kunne prøve at se om det
er noget med
>linjeskift. Det følgende burde gøre det samme som
dit eget
>forsøg:
>
>$lines =
>count(explode("\n",file_get_contents("http://websit
>e.dk/sti/newsletter_email_addresses.txt")));
>
>Fidusen er at du så kan prøve med det her i stedet.
>
>$lines =
>count(explode("\r",file_get_contents("http://websit
>e.dk/sti/newsletter_email_addresses.txt")));
>
>Hvis det gør en forskel er 'linjeskiftet' kun et
returtegn.

Jeg tror også, at det må have noget at gøre med
linjeskift.
De kodestumper du kommer med giver dog stadig det
"dårlige" resultat:
$lines == 1

--
Silas Boye Nissen
http://boyeit.dk/
http://cmforum.dk/
http://sporvognsrejser.dk/


Henrik Stidsen (17-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 17-04-06 15:32

Henrik Boye has brought this to us :
> Jeg tror også, at det må have noget at gøre med
> linjeskift.
> De kodestumper du kommer med giver dog stadig det
> "dårlige" resultat:
> $lines == 1

Har du mulighed for at finde ud af hvilken type linieskift filen er
gemt med ?

Som Bertel foreslår er det sandsynligvis linieskiftene den er gal - et
træls problem idet der findes flere forskellige måder at markere
linieskift i en fil.

Prøv evt. at lave noget optælling af linieskift (ereg funktionen evt,
søg efter \n, \r, \n\r og \r\n og se hvad resultater de giver.

--
Henrik Stidsen - http://henrikstidsen.dk/
"The secret of staying young is to live honestly, eat slowly, and lie
about your age." - Lucille Ball



Henrik Boye (17-04-2006)
Kommentar
Fra : Henrik Boye


Dato : 17-04-06 15:53

Henrik Stidsen <nntpspam@hs235.dk> skrev:
>Har du mulighed for at finde ud af
>hvilken type linieskift filen er
>gemt med ?
>
>Prøv evt. at lave noget optælling
>af linieskift (ereg funktionen evt,
>søg efter \n, \r, \n\r og \r\n og
>se hvad resultater de giver.

Et sted på vores netværk angives:
define('CRLF', "\r\n");
(Jeg ved ikke, hvad CRLF står for.)

--
Silas Boye Nissen
http://boyeit.dk/
http://cmforum.dk/
http://sporvognsrejser.dk/


Bertel Lund Hansen (17-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 17-04-06 16:57

Henrik Boye skrev:

> Et sted på vores netværk angives:
> define('CRLF', "\r\n");
> (Jeg ved ikke, hvad CRLF står for.)

CR = Carriage Return. Det er kode 13 eller "\r" (return). Den
skifter i princippet ikke linje, men sender blot cursoren til
starten af den den er på (svarer til at skubbe skrivemaskinens
vogn helt til højre).
LF = Line Feed. Det er kode 10 eller "\n" (new line). Den skifter
i princippet ikke position, men sender cursoren lodret ned på
linjen nedenunder (svarer til at vippe med det håndtag der drejer
tromlen eller dreje ét hak på hjulet).
Tilsammen giver det ny linje med cursoren til venstre.

I praksis bruges de dog forskelligt.

Hvis din fil har "\r\n" som ny linje, er det ikke der problemet
ligger.

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

Henrik Boye (17-04-2006)
Kommentar
Fra : Henrik Boye


Dato : 17-04-06 17:22

Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev:
>CR = Carriage Return. Det er kode 13 eller "\r"
(return). Den
>skifter i princippet ikke linje, men sender blot
cursoren til
>starten af den den er på (svarer til at skubbe
skrivemaskinens
>vogn helt til højre).
>LF = Line Feed. Det er kode 10 eller "\n" (new
line). Den skifter
>i princippet ikke position, men sender cursoren
lodret ned på
>linjen nedenunder (svarer til at vippe med det
håndtag der drejer
>tromlen eller dreje ét hak på hjulet).
>Tilsammen giver det ny linje med cursoren til
venstre.
>
>I praksis bruges de dog forskelligt.
>
>Hvis din fil har "\r\n" som ny linje, er det ikke
der problemet
>ligger.

Jeg siger tusind tak for jeres hjælp! Efter et
grundigt gennemtjek af min kode har jeg nu fået
løst mit problem.

--
Silas Boye Nissen
http://boyeit.dk/
http://cmforum.dk/
http://sporvognsrejser.dk/


Henrik Stidsen (17-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 17-04-06 17:32

Henrik Boye submitted this idea :
> Efter et
> grundigt gennemtjek af min kode har jeg nu fået
> løst mit problem.

Hvordan ?

--
Henrik Stidsen - http://henrikstidsen.dk/
"To be or not to be. That's not really a question." - Jean-Luc Godard



Henrik Boye (18-04-2006)
Kommentar
Fra : Henrik Boye


Dato : 18-04-06 16:48

Henrik Stidsen <nntpspam@hs235.dk> skrev:
>Hvordan ?

Årsagen til at det ikke virkede første gang var,
at funktionen ikke havde tilladelse til at tilgå
txt-filen. Med det samme jeg fjernede denne
administrative spærring, virkede det hele.

Dvs. at den kode jeg benytter til at tælle
antallet af linjer i en fil er:
echo "<p>Antal modtagere af nyhedsbrev:
<b>".count(file("http://website.dk/sti/newsletter_email_addresses.txt"
))."</b></p>\n";

Meget enkelt med: count(file("http-adresse til
filen"));

--
Silas Boye Nissen
http://boyeit.dk/
http://cmforum.dk/
http://sporvognsrejser.dk/


Geert Lund (17-04-2006)
Kommentar
Fra : Geert Lund


Dato : 17-04-06 18:36

Henrik Stidsen wrote:

> Utestet, uden garanti :)

En omvej men efter samme princip - som dog er operativsystem-safe...

<?php

function linesinfile($filename) {
$fp = fopen($filename, "rb");
$buffer = fread($fp, filesize($filename));
fclose($fp);
$lines = preg_split("/\r?\n|\r/", $buffer);
return count($lines);
}

echo linesinfile( 'dinfilher' );

?>

Den bør virke med filer skabt på *NIX, Windows og Mac.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Kim Schulz (17-04-2006)
Kommentar
Fra : Kim Schulz


Dato : 17-04-06 16:12

On 17 Apr 2006 14:52:34 GMT
Henrik Boye <gizmo@paradis.dk> wrote:

> Henrik Stidsen <nntpspam@hs235.dk> skrev:
> >Har du mulighed for at finde ud af
> >hvilken type linieskift filen er
> >gemt med ?
> >
> >Prøv evt. at lave noget optælling
> >af linieskift (ereg funktionen evt,
> >søg efter \n, \r, \n\r og \r\n og
> >se hvad resultater de giver.
>
> Et sted på vores netværk angives:
> define('CRLF', "\r\n");
> (Jeg ved ikke, hvad CRLF står for.)
>

Carrige Return Line Feed

et udtryk fra gamle dage hvor man skrev på skrivemaskine.
når man havde skrevet en linje ud skulle man køre Carrige tilbage og
derved kørte den papiret en ny linje frem.

Martin (17-04-2006)
Kommentar
Fra : Martin


Dato : 17-04-06 16:50

Henrik Boye wrote:
> Hej
>
> Jeg leder efter en funktion, som kan retunere antallet af linjer i en
> fil. Det må være muligt at gøre med PHP.
>
> Jeg har f.eks. en fil, som hedder "newsletter_email_addresses.txt".
>
> Er der nogen som kan hjælpe mig? Jeg har forsøgt at søge lidt på
> php.net og her i nyhedsgruppen, men umiddelbart uden resultater...
>

// Returnere et array
function getCountLines($file) {
$text = file_get_contents($file);
return explode("<br />",nl2br($file));
}

print count(getCountLines("filnavn"));

Bertel Lund Hansen (17-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 17-04-06 17:00

Martin skrev:

> return explode("<br />",nl2br($file));

Hvorfor vil du omvejen omkring et dyrt funktionskald til ingen
nytte?

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

Martin (17-04-2006)
Kommentar
Fra : Martin


Dato : 17-04-06 20:21

Bertel Lund Hansen wrote:
> Martin skrev:
>
>> return explode("<br />",nl2br($file));
>
> Hvorfor vil du omvejen omkring et dyrt funktionskald til ingen
> nytte?
>

Hvis en fil fx er gemt i unix format så er linjeskiftene \r og i windows
format er de \r\n så klarer nl2br() begge dele, så er det ligemeget
hvordan filen er gemt.


Hvis du mente selve funktionen, så er det jo også en hel del nemmere at
få outputtet ud.

$text = getCountLines("fil");
print "der er ".count($text)." linjer i filen";
$i=0;
foreach($text AS $out) {
$i++;
print "Linje: ".$i.": ".$out;
}

Bertel Lund Hansen (17-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 17-04-06 21:32

Martin skrev:

> Hvis en fil fx er gemt i unix format så er linjeskiftene \r og i windows
> format er de \r\n så klarer nl2br() begge dele, så er det ligemeget
> hvordan filen er gemt.

De filer jeg har skrevet kun med "\n", læses fint med file().

Hvis man ikke ville stole på det, kunne man læse den med
$content = explode("\n",file_get_contents(FILENAME));
$lines = count($content);
og så trimme linjerne når de skal bruges.

En operation hvor man først indføjer 6 tegn i stedet for ét blot
for straks at fjerne dem igen, tager tid.

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

Martin (18-04-2006)
Kommentar
Fra : Martin


Dato : 18-04-06 02:41

Bertel Lund Hansen wrote:
> En operation hvor man først indføjer 6 tegn i stedet for ét blot
> for straks at fjerne dem igen, tager tid.

Nææ... gør det egentlig ikke.

fil.txt = 40500 linjers "Hej med dig\n\r"
= 672 kb.

Denne kode bliver brugt

<?php
$START=microtime();
function getCountLines($file) {
$text = file_get_contents($file);
return explode("<br />",nl2br($text));
}
$text = getCountLines("C:/Documents and Settings/-LsV-/Desktop/fil.txt");
print "Antal Linjer: ".count($text);
print "<br /><br />";

print microtime()-$START;
?>

// Output er
Antal Linjer: 40500

0.062864


Dette er så kørt på en 600mhz server, så hvis du kalder det krævende...
ja så ved jeg altså ikke.. hmm?

Prøver lige med en 7,88mb fil

// output
Antal Linjer: 486001

0.705624

Ok - 0.7 sekunder.

Lad os prøve med din kode Bertel.

<?php
$START=microtime();

$lines = count(explode("\n",file_get_contents("C:/Documents and
Settings/-LsV-/Desktop/fil.txt")));
print "Antal Linjer: ".$lines;
print "<br /><br />";

print microtime()-$START;
?>
// Output
Antal Linjer: 486001

0.547543

Forskellen er så 0.2 sekunder... ikke specielt meget


Men anyway - hvis jeg skulle lave noget ala, så ville jeg nok straks
kaste mig over en klasse, også få indbygget alle funktionerne ind i det.
Så man kun skal åbne filen 1 gang. :)

Arne Feldborg (17-04-2006)
Kommentar
Fra : Arne Feldborg


Dato : 17-04-06 23:33

Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev Mon, 17 Apr 2006
18:00:21 +0200

>Martin skrev:
>
>> return explode("<br />",nl2br($file));
>
>Hvorfor vil du omvejen omkring et dyrt funktionskald til ingen
>nytte?
>
Det er ikke en omvej, det er en nødvendighed. Al jeres diskussion om \n
contra \n\r er derimod en omvej.

Når man henter en HTTP://- fil ind på den foreslåede måde, så vil man jo
få de linier - og det antal liner - der er i HTML-kildeteksten, og det
er jo normalvis slet ikke det man er interesseret i. I princippet kan en
HTML fil være een enkelt linie.

Hvis teksten så ovenikøbet er i tabeller, så bliver det yderligere
besværlig.



--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Benny Nissen (17-04-2006)
Kommentar
Fra : Benny Nissen


Dato : 17-04-06 23:37

Arne Feldborg ramte sit keyboard den 18-04-2006 00:32 og fik dette ud af
det:

> Det er ikke en omvej, det er en nødvendighed. Al jeres diskussion om \n
> contra \n\r er derimod en omvej.
>
> Når man henter en HTTP://- fil ind på den foreslåede måde, så vil man jo
> få de linier - og det antal liner - der er i HTML-kildeteksten, og det
> er jo normalvis slet ikke det man er interesseret i. I princippet kan en
> HTML fil være een enkelt linie.

Nu var det jo ikke en html fil der var tale om, men en ren tekstfil.


--
Benny Nissen
www.bennynissen.dk

Arne Feldborg (18-04-2006)
Kommentar
Fra : Arne Feldborg


Dato : 18-04-06 00:38

Benny Nissen <news@bennynissen.dk> skrev Tue, 18 Apr 2006 00:37:16 +0200
>Nu var det jo ikke en html fil der var tale om, men en ren tekstfil.
>
I så fald ser jeg overhovedet ikke problemet.?

Og hvorfor skriver alle folk så som om det er en fil der skal hentes via
(HTTP://) ?

Men fremfor el lang akademisk diskussion, så prøv dog at skrive det
returnerede ud på skærmen.

Hvis du bruger formatet "$myfile = file(bla.bla)" så lad det efterfølge
af dette:

print_r($myfile);

For at se om du overhovedet har fået indholdet hjem.? Dette er det
første du overhovedet bør foretage dig!


Og, hvis det er tilfældet, så kan du begynde at skille det ad:

for ($i=0;$i<count($myfile);$i++){
   echo '<p>',$i.' ';
   print_r($myfile[$i]);
}

Bemærk, at på det tidspunkt er de oprindelige linieskift, hvadenten det
er \n eller \r\n, stadig intakt i slutningen af hver linie. Disse kan
fjernes med "trim()"



--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Geert Lund (18-04-2006)
Kommentar
Fra : Geert Lund


Dato : 18-04-06 01:55

Arne Feldborg wrote:

> Og hvorfor skriver alle folk så som om det er en fil der skal hentes via
> (HTTP://) ?

Så vidt jeg kan se - er den eneste der påstår det - dig? Vi andre
snakker om funktioner der er baseret på filsystemet (dog vil de
formentlig også virke over http).

> Men fremfor el lang akademisk diskussion, så prøv dog at skrive det
> returnerede ud på skærmen.

Jeg kan heller ikke her se hvad problemet er? Der bliver fortalt og
forklaret hvorfor der kan være et problem - og givet forskellige
løsningsmodeller - og nogle er mere hensigtsmæssige end andre!

> Hvis du bruger formatet "$myfile = file(bla.bla)" så lad det efterfølge
> af dette:
>
> print_r($myfile);
>
> For at se om du overhovedet har fået indholdet hjem.? Dette er det
> første du overhovedet bør foretage dig!

Jeg er ret sikker på at indholdet er der - da det jo er en lokal fil der
læses.

Men læs tråden igen :)

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Bertel Lund Hansen (18-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 18-04-06 07:09

Arne Feldborg skrev:

> I så fald ser jeg overhovedet ikke problemet.?

Nej, det fremgår.

Spørgsmålet var hvordan man kan aflæse antal linjer i en tekstfil
- intet andet. Der forelå ikke spor om at filens indhold skulle
huskes, endsige bruges til noget som helst.

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

Arne Feldborg (18-04-2006)
Kommentar
Fra : Arne Feldborg


Dato : 18-04-06 21:45

Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev Tue, 18 Apr 2006
08:08:34 +0200

>> I så fald ser jeg overhovedet ikke problemet.?
>>
>Nej, det fremgår.
>
Jeg forstod ikke hvordan man kunne gøre spørgsmålet om linieskift til et
probelem i en tekstfil, og det forstår jeg for den sags skyld stadigvæk
ikke.


>Spørgsmålet var hvordan man kan aflæse antal linjer i en tekstfil
>- intet andet. Der forelå ikke spor om at filens indhold skulle
>huskes, endsige bruges til noget som helst.
>
Sandt nok. Men det var dig selv der brugte eksemplet med et
file(HTTP://osv.osv) kald. Men ja, selvfølgelig kan man også kalde en
tekstfil på denne måde.

Min pointe var bare, at det hjælper ikke spørgeren stort, at starte en
akademisk diskussion om "\n" versus "\r\n" (eller om lineantal i det
hele taget) sålænge vi ikke ved hvad spørgeren får retur - eller om han
i det hele taget får noget retur.!

Derfor vil første skridt altid være at aflæse resultatet, før man
begynder at gætte på, hvorfor det ikke opfører sig som forventet.

Og skulle man endelig diskutere linieskift og PHP så er det ikke
forskellen mellem Dos og Unix man skal fokusere på (dem håndterer PHP
aldeles udmærket), men derimod forskellen mellem Dos og Unix på den ene
side og så Mac på den anden side.

--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Geert Lund (18-04-2006)
Kommentar
Fra : Geert Lund


Dato : 18-04-06 23:23

Arne Feldborg wrote:

> Jeg forstod ikke hvordan man kunne gøre spørgsmålet om linieskift til et
> probelem i en tekstfil, og det forstår jeg for den sags skyld stadigvæk
> ikke.

Måske - det faktum at linieskift (uagtet hvordan disse måtte se ud) i en
fil netop har betydning for hvordan du tæller antallet af linier, da det
er det eneste punkt i en fil man kan tælle antallet af linier på?

> Min pointe var bare, at det hjælper ikke spørgeren stort, at starte en
> akademisk diskussion om "\n" versus "\r\n" (eller om lineantal i det
> hele taget) sålænge vi ikke ved hvad spørgeren får retur - eller om han
> i det hele taget får noget retur.!

Jo, det er jo vigtigt - at tage højde for dette uanset hvad spørgeren
får retur - deraf de flere generiske løsninger der tager højde for
DOS/Windows, *NIX og Mac (som du selv nævner) metoderne at definere et
linieskift på, da dette ikke er uvæsentligt i en rutine til at tælle
linieskift.

Jeg er dog enig i:

> Derfor vil første skridt altid være at aflæse resultatet, før man
> begynder at gætte på, hvorfor det ikke opfører sig som forventet.

Det var dog ikke udgangspunktet for spørgeren - der ville have en
funktion til at tælle antallet af liner - og fik det... Deraf den
afledte diskusion om \n og \r og OS varianter.


Jeg forstår dog heller ikke hvordan vi pludselig nåede frem til at
Henrik går fra at ville inkludere en fil fra filsystemet til at ville
inkludere en fil hentet over http (resultatet er dog det samme omend der
kan opstå et par ekstra fejlkilder). Jo, altså jeg kan godt se at det
var Henrik selv der skiftede fra at ville hente den i filsystemet til at
ville hente den via HTTP - men hvorfor han skiftede er ikke forklaret
endnu :)


--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Arne Feldborg (19-04-2006)
Kommentar
Fra : Arne Feldborg


Dato : 19-04-06 00:46

Geert Lund <glund-news@post.tele.dk> skrev Wed, 19 Apr 2006 00:22:59
+0200


>> Jeg forstod ikke hvordan man kunne gøre spørgsmålet om linieskift til et
>> probelem i en tekstfil, og det forstår jeg for den sags skyld stadigvæk
>> ikke.
>
>Måske - det faktum at linieskift (uagtet hvordan disse måtte se ud) i en
>fil netop har betydning for hvordan du tæller antallet af linier, da det
>er det eneste punkt i en fil man kan tælle antallet af linier på?
>
Helt klart. Men men det som folk overser er, at set fra PHP's side er
der *ingen* forskel på, om det er "\n" eller om det er "\r\n".


>Det var dog ikke udgangspunktet for spørgeren - der ville have en
>funktion til at tælle antallet af liner - og fik det... Deraf den
>afledte diskusion om \n og \r og OS varianter.
>
Jeg kommer ind dér, hvor spørgeren har fået oplyst, at han skal bruge
count(), og så derefter skriver:

>Det retunerer $lines == 1
>... på trods af at der er flere hundrede linjer i
>filen.
>
Og det er netop her kæden efter min mening hopper af.

Istedet for at bede manden undersøge, hvad (om noget overhovedet) han
egentlig får returneret, så begynder man at diskutere forskelle i Dos'
og Unix' måde at skrive linie skift på.

Forskelle der set fra PHP's side er *ikke* eksisterende.

Jeg har som selvlærd / halvlærd amatør meget stor respekt for de dygtige
programører her i gruppen - og ofte har jeg selv fået hjælp her.

Men engang imellem er det som nogle (ingen nævnt, ingen glemt) har mere
travlt med at gøre selv simple spørgsmål til indviklede problemer, end
de har med egentlig at hjælpe spørgerne til selv at komme videre.


--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Martin (19-04-2006)
Kommentar
Fra : Martin


Dato : 19-04-06 02:46

Arne Feldborg wrote:
>
> Men engang imellem er det som nogle (ingen nævnt, ingen glemt) har mere
> travlt med at gøre selv simple spørgsmål til indviklede problemer, end
> de har med egentlig at hjælpe spørgerne til selv at komme videre.
>

Jeg vil nu bare kalde det forskellige metoder at bruge PHP på :)
Det er altid rart at få et forskelligt syn på sagen. Der findes
(heldigvis?) ingen standard metode at bruge PHPs funktioner på.


Bertel Lund Hansen (19-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 19-04-06 07:18

Arne Feldborg skrev:

> Istedet for at bede manden undersøge, hvad (om noget
> overhovedet) han egentlig får returneret, så begynder man at
> diskutere forskelle i Dos' og Unix' måde at skrive linie skift
> på.

Har du overset at det faktisk løste hans problem?

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

Arne Feldborg (19-04-2006)
Kommentar
Fra : Arne Feldborg


Dato : 19-04-06 10:12

Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev Wed, 19 Apr 2006
08:17:52 +0200


>> Istedet for at bede manden undersøge, hvad (om noget
>> overhovedet) han egentlig får returneret, så begynder man at
>> diskutere forskelle i Dos' og Unix' måde at skrive linie skift
>> på.
>
>Har du overset at det faktisk løste hans problem?
>
Øh..?

Problemet havde absolut intet med linieskift at gøre. Problemet var
netop at han ingen ting fik returneret.

--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Kim Schulz (17-04-2006)
Kommentar
Fra : Kim Schulz


Dato : 17-04-06 20:38

On Mon, 17 Apr 2006 21:20:59 +0200
Martin <news@natten-i.dk> wrote:

> Hvis en fil fx er gemt i unix format så er linjeskiftene \r og i
> windows format er de \r\n så klarer nl2br() begge dele, så er det
> ligemeget hvordan filen er gemt.

det er altså \n i unix

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste