/ 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
Hente nyheder fra php.net
Fra : Jes Søndergaard


Dato : 10-03-01 20:01

Til at hente nyhedsoverskrifterne fra php.net har jeg bakset følgende
sammen:

$side = implode("", file("http://www.php.net/"));
while (ereg(".[^</h1>]+<h1>(.[^<h1>]+)</h1>(.+)", $side, $regs)) {
$side = $regs[2];
print $regs[1]."<BR>";
}

Eneste problem er at scriptet kun henter nyhed 1, 3, 6, 8 og 9

For mig at se ligger problemet i at jeg ikke har en start- og sluttegn ('^'
og '$') i mit regulære udtryk. Hvis jeg tilføjet et starttegn i starten af
udtrykket returneres der ingen ting, mens der netop kommer noget hvis jeg
fjerner []-sætningen i starten:

^.[^</h1>]+ ... returerer ikke noget
^.+ ... returnerer noget

For mig at se har jeg nået et punkt hvor manualerne ikke rækker.
Hvad skal jeg gøre?

Mvh.
Jes Søndergaard



 
 
Peter Brodersen (11-03-2001)
Kommentar
Fra : Peter Brodersen


Dato : 11-03-01 01:54

On Sat, 10 Mar 2001 19:00:38 GMT, "Jes Søndergaard"
<jessonde@worldonline.dk> wrote:

>^.[^</h1>]+ ... returerer ikke noget

Check din bog om regulære udtryk igen. Man kan ikke skrive [^</h1>]

[..] angiver en klasse af tegn.
[^...] angiver en klasse af tegn, som ikke er et af de nævne.

Der er fx ingen forskel på [^</h1>] og [^<>1h/]


--
- Pede
Professionel nørd

Jes Søndergaard (11-03-2001)
Kommentar
Fra : Jes Søndergaard


Dato : 11-03-01 12:24

"Peter Brodersen" <professionel@nerd.dk> skrev:

> Check din bog om regulære udtryk igen. Man kan ikke skrive [^</h1>]

OK, havde overset at man kun kan bruge ^-tegnet i forbindelse med []-udtryk.

Det løser dog stadig ikke mit problem:
Hvis man kun kan bruge not-operator ifm. []-udtryk, kan mit problem vel ikke
løses vha. et regulært udtryk, da udtrykket i en følgende sætning:

<h1>nyhed1</h1><h1>nyhed2</h1><h1>nyhed3</h1>

ikke må give følgende resultat:

<h1>*</h1>
* = nyhed1</h1><h1>nyhed2</h1><h1>nyhed3

men skal derimod returnere følgende:

<h1>*1</h1><h1>*2</h1><h1>*3</h1>
*1 = nyhed1
*2 = nyhed2
*3 = nyhed3

Mvh.
Jes Søndergaard



Søg
Reklame
Statistik
Spørgsmål : 177523
Tips : 31968
Nyheder : 719565
Indlæg : 6408677
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste