|
| Linieskift med fwrite Fra : Joe |
Dato : 08-04-03 21:19 |
|
Hvordan fremtvinger man et linieskift når man skriver til en fil?
$tok = strtok($contents," \n");
while ($tok)
{
if(preg_match("/127.0.0.1/",$tok))
{
fwrite($file_handle,$tok."\n"); //jeg går ud fra det er her
det går galt
}
$tok = strtok("\n");
}
Som det er ud nu kommer det hele bare ud i et lang kører.
Nogle ideer? Jeg synes ikke http://www.php.net/manual/en/function.fwrite.php
er særlig hjælpsom lige på det punkt....men jeg kikker måske det forkerte
sted??
| |
Jonas Koch Bentzen (09-04-2003)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 09-04-03 10:08 |
|
Joe wrote:
> Hvordan fremtvinger man et linieskift når man skriver til en fil?
Sådan som du har gjort det.
> if(preg_match("/127.0.0.1/",$tok))
Den hurtigste og letteste måde at afgøre, om en streng findes i en anden
streng, er strpos(). Brug kun preg_match(), hvis du decideret har brug
for regulære udtryk.
Dit regulære udtryk vil så vidt jeg kan se i øvrigt passe på f.eks.
"127a0b0c1", for punktum betyder et vilkårligt tegn. Det problem undgås
ved at bruge en funktion, der slet ikke bruger regulære udtryk - f.eks.
strpos().
> Som det er ud nu kommer det hele bare ud i et lang kører.
Sandsynligvis fordi du udskriver det i browseren, hvor \n ikke vises som
linjeskift. Kør nl2br() på filens indhold, når du udskriver det i browseren.
| |
Joe (09-04-2003)
| Kommentar Fra : Joe |
Dato : 09-04-03 21:56 |
|
Jeg skriver indholdet til en .txt fil. og åbner denne i notepad, og her
kommer det hele i en lang kører.
Har du andre ideer til hvad der kan være årsagen?
Angående brugen af preg_match... her er tale om en test konstruktion....jeg
regner med at gøre dem lidt mere avancerede med tiden.... men rart at vide
med strpos() den kan sagtens vise sig nyttig i andre situationer.
"Jonas Koch Bentzen" <ingen.email@eksempel.dk> wrote in message
news:b70ntr$snl$1@sunsite.dk...
> Joe wrote:
> > Hvordan fremtvinger man et linieskift når man skriver til en fil?
>
> Sådan som du har gjort det.
>
> > if(preg_match("/127.0.0.1/",$tok))
>
> Den hurtigste og letteste måde at afgøre, om en streng findes i en anden
> streng, er strpos(). Brug kun preg_match(), hvis du decideret har brug
> for regulære udtryk.
>
> Dit regulære udtryk vil så vidt jeg kan se i øvrigt passe på f.eks.
> "127a0b0c1", for punktum betyder et vilkårligt tegn. Det problem undgås
> ved at bruge en funktion, der slet ikke bruger regulære udtryk - f.eks.
> strpos().
>
> > Som det er ud nu kommer det hele bare ud i et lang kører.
>
> Sandsynligvis fordi du udskriver det i browseren, hvor \n ikke vises som
> linjeskift. Kør nl2br() på filens indhold, når du udskriver det i
browseren.
>
| |
Jonas Koch Bentzen (10-04-2003)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 10-04-03 10:17 |
|
Joe wrote:
>
> Jeg skriver indholdet til en .txt fil. og åbner denne i notepad, og her
> kommer det hele i en lang kører.
> Har du andre ideer til hvad der kan være årsagen?
På Linux/Unix behøver man kun "\n" for at lave et linjeskift. På Windows
skal der "\r" foran.
Altså:
fwrite($fp, "$linje\r\n");
| |
Kristian Risager Lar~ (10-04-2003)
| Kommentar Fra : Kristian Risager Lar~ |
Dato : 10-04-03 00:52 |
|
> Dit regulære udtryk vil så vidt jeg kan se i øvrigt passe på f.eks.
> "127a0b0c1", for punktum betyder et vilkårligt tegn. Det problem undgås
> ved at bruge en funktion, der slet ikke bruger regulære udtryk - f.eks.
> strpos().
Eller med "\.", altså ved at escape punktum.
Men du har ret: Brug strpos().
--
Kristian Risager Larsen, Californien, USA - http://kezze.dk
| |
|
|