Avatar billede ipkiss_ Nybegynder
14. april 2003 - 23:08 Der er 13 kommentarer og
1 løsning

funktion som fjerner linier i en tekst streng

Hej
findes der en funktion, som kan fjerne bestemte linier fra en tekst streng, hvis linien f.eks. begynder med # el. %.

En native funktion i php el. en et sted ? :)

På forhånd tak
Lars
Avatar billede tipsen Nybegynder
14. april 2003 - 23:20 #1
ligger hele teksten bare i én streng med linierne adskilt af \n ?
Avatar billede ipkiss_ Nybegynder
15. april 2003 - 11:03 #2
jeg bruger nl2br funktionen til at få linieskift, så jeg går ud fra der er nogle \n ?
Avatar billede schaefner Juniormester
15. april 2003 - 11:56 #3
Hvis du læser indholdet ind et et array, så kan du f.eks. gøre således:

<?php
$arr[] = "En normal linje nr. 1";
$arr[] = "En normal linje nr. 2";
$arr[] = "#Noget tekst";
$arr[] = "En normal linje nr. 3";
$arr[] = "%Noget tekst";

for($i=0; $i < count($arr); $i++) {
  if(substr($arr[$i],0,1) == "#" || substr($arr[$i],0,1) == "%") {
    array_splice($arr, $i, 1);
  }
}
?>

Så skulle den gerne fjerne alle linjer med # eller % forrest

/Jesper Sørensen
Avatar billede schaefner Juniormester
15. april 2003 - 12:04 #4
Og til at lave det til et array kan du bruge explode:
http://php.net/explode
Avatar billede ipkiss_ Nybegynder
15. april 2003 - 12:05 #5
ok, jeg tjekker det senere :)
Avatar billede schaefner Juniormester
15. april 2003 - 12:25 #6
Du kan se den her: www.disneyzone.dk/array_splice.php :)
Avatar billede ipkiss_ Nybegynder
15. april 2003 - 12:28 #7
nice, giv bare et svar så får du point :)
Avatar billede schaefner Juniormester
15. april 2003 - 12:36 #8
svar :)
Avatar billede tipsen Nybegynder
15. april 2003 - 12:37 #9
En modificeret (hurtigere) udgave:

<?php
$strVar = "blablal1\nblabla2\n#blablba3\n%blabla4\nblabla5";

$arr = explode("\n", $strVar);
for($i=0; $i < count($arr); $i++) {
  $tmp = substr($arr[$i],0,1);
  if($tmp == '#' || $tmp == '%') {
    unset($arr[$i]);
  }
}
$strNyVar = implode("\n", $arr);
?>
Avatar billede tipsen Nybegynder
15. april 2003 - 12:38 #10
Bare for at undgå en tung array-operation med array_splice() !
Avatar billede tipsen Nybegynder
15. april 2003 - 12:45 #11
Det er selvfølgelig kun relevant, hvis man skal behandle tekst med mere end 5-10 linier :-)
Avatar billede schaefner Juniormester
15. april 2003 - 13:01 #12
Jeg mente/vidste ikke unset() kunne bruges med array's, men man lærer jo hele tiden noget nyt ;o)
Avatar billede schaefner Juniormester
15. april 2003 - 13:03 #13
Men man kan selvfølgelig bare kigge i manualen ;o)
Avatar billede tipsen Nybegynder
15. april 2003 - 13:07 #14
Jeg mente til gengæld at det var nok bare at nulstille elementet, dvs. sætte det lig NULL eller '', men det fungerede hvertfald ikke :-)
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