/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Parse indholdet af en side?
Fra : Kenneth Laulund Niel~


Dato : 15-04-01 20:42

Hej

Jeg har følgende side http://www.kernel.org/kdist/finger_banner som jeg
gerne skulle have puttet igennem noget php.

indholdet af siden:

The latest stable version of the Linux kernel is: 2.4.3
The latest beta version of the Linux kernel is: 2.3.99-pre9
The latest prepatch (alpha) version *appears* to be: 2.4.4-pre3

Det jeg skal bruge er kun tallene, resten er lige meget, og jeg skal så
bruge hvertal til at genere en adresse ala denne:
ftp://mitdomain.dk/$tal1.tar.gz

Jeg aner bare ikke hvordan, så hvis nogen har et forslag, hint eller en
adresse til noget om det så ville jeg blive glad.

Nedenunder er hvad jeg er kommer fremtil indtil videre, ved ikke om det kan
bruges til noget.

Kenneth Nielsen
dsl25451@vip.cybercity.dk

kernelstats.php:
<?php
$server = "www.kernel.org"; # ip: 209.10.41.242
$port = 80; # standard http
$uri = "/kdist/finger_banner"; # grab banner
$header_passed = 0;
$cache_file = "/tmp/kernelstats.cache"; # cache fil
$cache_time = 90; # minimum tid mellem hentning (i minuter, 90-> 3 timer)
$current_time = split(" ", microtime(), 2);

if ((($current_time[1] - filemtime($cache_file)) > $cache_time) ||
(!file_exists($cache_file)) || (!filesize($cache_file))) {
$fpread = fsockopen("$hostname", $port, &$errno, &$errstr);
if(!$fpread) {
echo "$errstr ($errno)<br>\n";
?>



 
 
Troels Arvin (16-04-2001)
Kommentar
Fra : Troels Arvin


Dato : 16-04-01 09:40

On Sun, 15 Apr 2001 21:41:43 +0200, "Kenneth Laulund Nielsen"
<Does@not.exist.spammer.ha.ha> wrote:

> The latest stable version of the Linux kernel is: 2.4.3 The latest
> beta version of the Linux kernel is: 2.3.99-pre9 The latest
> prepatch (alpha) version *appears* to be: 2.4.4-pre3
>
> Det jeg skal bruge er kun tallene

Hvad med
1. Start med at splitte teksten op i linjer (explode(...)).
2. Loop gennem ikke-tomme linjer.
3. For hvert gennemløb benytter du preg_match() til at finde
strenge med
a. kolon (:)
b. mindst ét whitespace (\s+)
c. ét tal (\d)
d. ét punktum (\.)
e. mindst ét tal (\d+)
f. et punktum (\.)
g. alt undtagen whitespace (\S+)

Heraf benytter du c-g.

Følgende (utestet) burde kunne udføre match'et:

$pattern='(:\s+)(\d\.\d+\.\S+)';
preg_match($pattern,$linje,$matches);
// ($linje antages at rumme indholdet af aktuelle linje)
// Det interesssante vil da for hver linje
// findes i $matches[2];

--
Greetings from Troels Arvin, Copenhagen, Denmark

Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste