05. oktober 2004 - 11:54Der er
37 kommentarer og 1 løsning
søge efter linier i XML/txt filer
Jeg skal bruge et PHP script der kan finde nogle bestemte linier i enten en XML fil eller txt fil (alt efter hvad der er nemmest at lave)
Jeg kan få PHP til at åbne filen, og printe hele indholdet.. men jeg kan IKKE få den til kun at printe de linier jeg ønsker.. hvordan gør jeg det ?!?
det er lige meget om den finder linierne ved at tage et bestemt linie nummer, eller den søger efter ord, og printer linierne hvor de ord er i, det vil virke på begge måder, det er bare med hvordan det kan lade sig gøre...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD> <BODY></BODY></HTML>
Denne linje indeholder 'foreach': foreach ( $linjer as $linje ) Denne linje indeholder 'foreach': if ( preg_match( "/foreach/", $linje ) ) Denne linje indeholder 'foreach': echo "Denne linje indeholder 'foreach': $linje \n";
nu har jeg sat det til at finde "Time", og så finder det "Time of this report: 9/28/2004, 14:59:55" og printer denne linie.. det er også godt nok... men kan jeg på en eller anden måde få den til at skule "Time of this report:" så den kun skriver "9/28/2004, 14:59:55"
$text = <<<STOP lille peter edderkop kravled' op ad muren Time of this report: 9/28/2004, 14:59:55 så kom solen og tørred' peters krop Time of this report: 10/01/2004, 12:51:02 STOP;
$linjer = explode( "\n", $text );
foreach ( $linjer as $linje ) { if ( preg_match( "/Time of this report: (.*)/", $linje, $match ) ) { echo "$match[1]<br>\n"; } }
?>
Så dette burde også virke:
<?php
$linjer = file( "dinfil.txt" );
foreach ( $linjer as $linje ) { if ( preg_match( "/Time of this report: (.*)/", $linje, $match ) ) { echo "$match[1]<br>\n"; } }
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.