03. januar 2005 - 16:32
Der er
15 kommentarer
data in og ud af .txt file
hey hvordan tager jeg data fra an .txt file som opstillingen er fx jens numsemand IP:212.23.22.88-212.23.22.95 FFF
Annonceindlæg fra Infor
03. januar 2005 - 16:33
#1
p.s jens numsemand og IP:212.23.22.88-212.23.22.95 skal være 2 ting
03. januar 2005 - 16:35
#2
Jeg er ikke helt med på hvad du vil?
03. januar 2005 - 16:41
#3
bogstavsekvensen " IP:" ligner noget stabilt man kan lede efter. så hvad med: $linie = freads( $filpeger, 1024 ); echo $linie ."<br>"; // DEBUG LINIE. fjernes når det duer $lin_array = explode( $linie, " IP:" ); $navnet = $lin_array[0]; echo $navnet ."<br>"; // DEBUG LINIE. fjernes når det duer $ip_range = $lin_array[1]; echo $ip_range ."<br>"; // DEBUG LINIE. fjernes når det duer mvh JakobA
03. januar 2005 - 16:43
#4
Ups parametrene til explode er i forkert rækkefølge. Det skal være: $lin_array = explode( " IP:", $linie );
03. januar 2005 - 16:48
#5
Hvad med: <?php $cont = file_get_contents( "liste.txt" ); if ( preg_match_all( "/^(.*?) IP:(.*?)\-(.*?)$/im", $cont, $matches ) ) { $names = $matches[1]; $start = $matches[2]; $end = $matches[3]; $n = count( $names ); for ( $i = 0; $i < $n; $i++ ) { echo "Navn: $names[$i] Start: $start[$i] End: $end[$i]<br>"; } } ?>
03. januar 2005 - 16:58
#6
Kommentar: coderdk 03/01-2005 16:35:54 Jeg er ikke helt med på hvad du vil? lave et ip ban system p.s din code virker ikke :(
03. januar 2005 - 17:31
#7
theff, det virker her ;) Får du fejl? Min liste.txt ser sådan ud: 1jksahdfjkas df ip:1324423-12314 2jksahdfjk asdf ip:2324423-212314 3jksahdfjka sdf ip:324423-312314 4jksahd fjkasdf ip:4324423-412314 5jksah dfjkasdf ip:5324423-512314 6jk sahdfjkasdf ip:6324423-612314 (ja det er volapyk, men det er jo princippet)
03. januar 2005 - 17:32
#8
ikke nogen tal men ellers rigtig får ingen fejl FFF
03. januar 2005 - 17:37
#9
Prøv lige: <?php $cont = file_get_contents( "liste.txt" ); if ( preg_match_all( "/^(.*?) IP:(.*?)\-(.*?)$/im", $cont, $matches ) ) { $names = $matches[1]; $start = $matches[2]; $end = $matches[3]; $n = count( $names ); for ( $i = 0; $i < $n; $i++ ) { echo "Navn: $names[$i] Start: $start[$i] End: $end[$i]<br>"; } } else { echo "Fandt intet der matchede..."; } ?> Kan vi se de første par linjer i din fil?
03. januar 2005 - 17:46
#10
weee den virker nu :)kan du osse fortælle mig hvordan jeg smider dem i en aray og banner dem FFF
03. januar 2005 - 17:52
#11
Mjoh :) Præcist hvordan mener du? ;)
03. januar 2005 - 17:56
#12
hvordan sætter jeg dem i et array fx $banned = array(); ip ip ip if($serverblablaIaddres = $banned) { exit(), }
03. januar 2005 - 18:04
#13
heheh ja ok, det er jo en større operation :P Men ok, her er den enkle version: <?php $cont = file_get_contents( "liste.txt" ); if ( preg_match_all( "/^(.*?) IP:(.*?)\-(.*?)$/im", $cont, $matches ) ) { $start = $matches[2]; $end = $matches[3]; $antal = count( $start ); $checkip = ip2long( $_SERVER['REMOTE_ADDR'] ); for ( $i = 0; $i < $antal; $i++ ) { $start[ $i ] = ip2long( $start[ $i ] ); if ( $start[ $i ] >= $checkip ) { $end[ $i ] = ip2long( $end[ $i ] ); if ( $end > $checkip ) { break; // Han er ikke bannet } elseif ( $end <= $checkip ) { die( "Din IP-adresse er banned!" ); } } } } else { echo "Advarsel! Fejl ved læsning af ban-fil!"; } ?>
03. januar 2005 - 20:26
#14
er det bare mig der ikke kan acceptere FFF som trykker på accepter
03. januar 2005 - 23:43
#15
Eh? :)
Vi tilbyder markedets bedste kurser inden for webudvikling