Avatar billede jackass- Nybegynder
20. juni 2007 - 12:22 Der er 6 kommentarer og
1 løsning

String replace

Hej,

Jeg har en fil med en masse linier i ála syslog format hvor entries går igen lettere varieret.. eks:

Juni 2007 program[1] noget mere tekst
Juni 2007 program[2098] noget mere tekst
Juni 2007 program[43] noget mere tekst
Juni 2007 program[726] noget mere tekst

Med system() eller shell_exec() cat/tail/grep'er jeg så i den fil for at få nogle specifikke linier, men er ligeglad med " program[1]" delen, da det bare er ekstra forvirring.

Er der nogen der kan give et eksempel på en funktion til at fjerne disse dele af strengen? Altså teksten " program" + resten hen til næste " " space?

På forhånd tusind tak :)

/jack
Avatar billede sostack Nybegynder
20. juni 2007 - 13:23 #1
<?php
function rydop($file)
{
$filehandle = fopen($file, "r");
$filecontent = fread($filehandle, filesize($file));
$linearray = explode("\n", $filecontent);
foreach($linearray AS $line)
{
    $pos = strpos($line, "] ") + 1;
    $resultcontent .= substr($line, $pos) . "\n";
}
return $resultcontent;
}
echo nl2br(rydop("logtest1.txt")); //navnet på din log/textfil
?>
//sostack
Avatar billede jackass- Nybegynder
20. juni 2007 - 13:34 #2
Hej sostack

Tak for det.. men det er ikke en hel fil jeg skal have ryddet op i.. jeg har en string;

$text = shell_ecev('grep noget /var/www/html/minfil');

..og det er denne ene tekststreng jeg skal have fjernet " program" + det ekstra fra. Kan du rette eksemplet til? :)

/jack
Avatar billede jackass- Nybegynder
20. juni 2007 - 13:36 #3
shell_exec() selvf :)
Avatar billede sostack Nybegynder
20. juni 2007 - 13:46 #4
<?php
function rydop($text)
{
$linearray = explode("\n", $text);
foreach($linearray AS $line)
{
    $pos = strpos($line, "] ") + 1;
    $resultcontent .= substr($line, $pos) . "\n";
}
return $resultcontent;
}
echo nl2br(rydop($text)); //navnet på din log/textf
?>

//sostack
Avatar billede jackass- Nybegynder
20. juni 2007 - 14:05 #5
Takker.. smider du et svar? :)
Avatar billede sostack Nybegynder
21. juni 2007 - 19:00 #6
samler ikke point mere

//sostack
Avatar billede jackass- Nybegynder
07. december 2010 - 12:08 #7
Ok
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