Avatar billede compac Seniormester
03. februar 2010 - 17:18 Der er 1 løsning

Rediger tekstfil med php

Jeg har en tekstfil, som jeg ønsker at få pillet dele af teksten ud af.

En del af filen ser således ud:

<name>ACTIVE LOG</name>
<type>GPS Tracklog</type>
<extensions>
<label xmlns="http://www.topografix.com/GPX/gpx_overlay/0/3">
<label_text>ACTIVE LOG</label_text>
<text xmlns="http://www.topografix.com/GPX/gpx_style/0/2">
<font>
<family generic="sans-serif">
<face>Arial</face>
</family>
</font>
</text>
</label>
</extensions>
<time>2008-05-07T13:51:17Z</time>
<extensions>
<family generic="sans-serif">
<face>Arial</face>
</family>
</extentions>
<trkseg>
<trkpt lat="55.54936410" lon="11.94559336">
<ele>47.720</ele>

Linierne fra <extentions> til </extentions> ønsker jeg slettet.

Jeg har lavet følgende kode:

<?php
$filename = "avnso.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd,filesize ($filename));
fclose ($fd);
$delimiter = "<extentions>";
$splitcontents = explode($delimiter, $contents);
$counter = "";
?>
<br><br>
<font color="blue" face="arial" size="4">Split File Contents</font>
<hr>
<?php
foreach ( $splitcontents as $color )
{
$counter = $counter+1;
echo "<b>Split $counter: </b> $color<br>";
}
?>

-men den sletter jo ikke på den måde jeg kunne tænke mig.
Hvilke ændringer skal jeg foretage?
Avatar billede tjens Nybegynder
04. februar 2010 - 19:19 #1
Jeg ville helst have lavet en løsning med XML DOM, men da jeg kun har erfaring med dette fra javascript og VB, bygger jeg videre på din "explode af tekst" metode.

Efter din eksisterende explode vil $splitcontents[0] indeholde tekst som du kan bruge direkte.
Resten vil indeholde </extentions> og skal dermed klippes over, så kun anden halvdel bruges.

Skitse (som måske ikke er helt valid PHP):
$delimiter = "<extentions>";
$splitcontents = explode($delimiter, $contents);
echo $splitcontents[0];

$counter = count($splitcontents);
$delimiter = "</extentions>";

for ($i = 1; $i < $counter; $i++ )
{
  $split2 = explode($delimiter, $splitcontents[$i]);
  echo split2[1];
}
?>
Forsvinder delimiter teksten ved explode?
Hvis nej, skal det hårdkodes lidt substring.
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