|
| check på links Fra : Mickey |
Dato : 21-04-01 19:46 |
|
jeg er ved at lave en "free for all" linkside - altså en hvor man kan skrive
sit link ind selv.
- hvor meget skal man checke på et link ?
--
|-|$235-|)k - Mickey
http://www.susie.dk
mickey(at)susie.dk
| |
Søren Boll Overgaard (21-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 21-04-01 21:51 |
|
On Sat, 21 Apr 2001 20:45:36 +0200, Mickey wrote:
> jeg er ved at lave en "free for all" linkside - altså en hvor man kan skrive
> sit link ind selv.
>
> - hvor meget skal man checke på et link ?
Det letteste er at checke om linket er validt med f.ex.:
if (fopen($link)) { // indsæt linket i databasen }
--
Søren O.
If idiots could fly, IRC would be an airport
| |
Mickey (21-04-2001)
| Kommentar Fra : Mickey |
Dato : 21-04-01 22:18 |
|
"Søren Boll Overgaard" <boll@fw1.dk> skrev i en meddelelse
news:slrn9e3slj.1tjt.boll@treebeard.tolkien.dk...
> On Sat, 21 Apr 2001 20:45:36 +0200, Mickey wrote:
> > jeg er ved at lave en "free for all" linkside - altså en hvor man kan
skrive
> > sit link ind selv.
> >
> > - hvor meget skal man checke på et link ?
>
> Det letteste er at checke om linket er validt med f.ex.:
> if (fopen($link)) { // indsæt linket i databasen }
og det checker altså om den får en 404 eller hva ?
- er der andet der skal checkes, jeg checker allerede om der er http://
foran osv...
--
|-|$235-|)k - Mickey
add your link at http://susie.dk/en/links
http://www.susie.dk - mickey(at)susie.dk
| |
Søren Boll Overgaard (21-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 21-04-01 22:26 |
|
On Sat, 21 Apr 2001 23:17:46 +0200, Mickey wrote:
>> Det letteste er at checke om linket er validt med f.ex.:
>> if (fopen($link)) { // indsæt linket i databasen }
>
> og det checker altså om den får en 404 eller hva ?
Nej. fopen returnerer false hvis den ikke kan åbne filen, hvilket i det her
tilfælde vil betyde at hvis ikke url'en er vaild, og fopen dermed ikke får
en relevant statuskode tilbage, så fejler checket, og du ved at url'en ikke
findes.
> - er der andet der skal checkes, jeg checker allerede om der er http://
> foran osv...
Det behøver du principielt ikke hvis du checker med fopen. Du kan dog lave
en lille dims der automagisk prepender http:// hvis det ikke allerede
findes.
--
Søren O.
Bedøm din edbforhandler på http://edbforhandlere.dk/
| |
Søren Boll Overgaard (21-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 21-04-01 22:30 |
|
On 21 Apr 2001 21:26:01 GMT, Søren Boll Overgaard wrote:
> On Sat, 21 Apr 2001 23:17:46 +0200, Mickey wrote:
>
>>> Det letteste er at checke om linket er validt med f.ex.:
>>> if (fopen($link)) { // indsæt linket i databasen }
>>
>> og det checker altså om den får en 404 eller hva ?
>
> Nej. fopen returnerer false hvis den ikke kan åbne filen, hvilket i det her
> tilfælde vil betyde at hvis ikke url'en er vaild, og fopen dermed ikke får
> en relevant statuskode tilbage, så fejler checket, og du ved at url'en ikke
> findes.
>
>> - er der andet der skal checkes, jeg checker allerede om der er http://
>> foran osv...
>
> Det behøver du principielt ikke hvis du checker med fopen. Du kan dog lave
> en lille dims der automagisk prepender http:// hvis det ikke allerede
> findes.
Der er iøvrigt syntaksfejl i mit eksempel. Det skulle naturligvis have
været:
if (fopen ($link, "r")) { // Hurra, hurra }
--
Søren O.
Bedøm din edbforhandler på http://edbforhandlere.dk/
| |
Jonas Koch Bentzen (21-04-2001)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 21-04-01 22:34 |
|
Søren Boll Overgaard skrev:
> Der er iøvrigt syntaksfejl i mit eksempel. Det skulle naturligvis have
> været:
>
> if (fopen ($link, "r")) { // Hurra, hurra }
Der burde vel også være snabel-a foran fopen, sådan at scriptet ikke
dør, hvis linket ikke kan åbnes...?
--
Venlig hilsen
Jonas Koch Bentzen
| |
Mickey (21-04-2001)
| Kommentar Fra : Mickey |
Dato : 21-04-01 22:35 |
|
"Jonas Koch Bentzen" <ingen.epostadresse@eksempel.dk> skrev i en meddelelse
news:9bsubj$30nb$1@news.cybercity.dk...
> Søren Boll Overgaard skrev:
>
> > Der er iøvrigt syntaksfejl i mit eksempel. Det skulle naturligvis have
> > været:
> >
> > if (fopen ($link, "r")) { // Hurra, hurra }
>
> Der burde vel også være snabel-a foran fopen, sådan at scriptet ikke
> dør, hvis linket ikke kan åbnes...?
lyder som en udemærket ide - men virker det så efter hensigten ?
--
|-|$235-|)k - Mickey
add your link at http://susie.dk/en/links
http://www.susie.dk - mickey(at)susie.dk
| |
Søren Boll Overgaard (21-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 21-04-01 22:47 |
|
On Sat, 21 Apr 2001 23:35:14 +0200, Mickey wrote:
>> > Der er iøvrigt syntaksfejl i mit eksempel. Det skulle naturligvis have
>> > været:
>> >
>> > if (fopen ($link, "r")) { // Hurra, hurra }
>>
>> Der burde vel også være snabel-a foran fopen, sådan at scriptet ikke
>> dør, hvis linket ikke kan åbnes...?
>
> lyder som en udemærket ide - men virker det så efter hensigten ?
Ja. Og ja, et snabela vil sikkert være en god ide.
--
Søren O.
There are no stupid questions, only inquisitive idiots
| |
Mickey (21-04-2001)
| Kommentar Fra : Mickey |
Dato : 21-04-01 22:50 |
|
"Søren Boll Overgaard" <boll@fw1.dk> skrev i en meddelelse
news:slrn9e3vug.1tjt.boll@treebeard.tolkien.dk...
> On Sat, 21 Apr 2001 23:35:14 +0200, Mickey wrote:
>
> >> > Der er iøvrigt syntaksfejl i mit eksempel. Det skulle naturligvis
have
> >> > været:
> >> >
> >> > if (fopen ($link, "r")) { // Hurra, hurra }
> >>
> >> Der burde vel også være snabel-a foran fopen, sådan at scriptet ikke
> >> dør, hvis linket ikke kan åbnes...?
> >
> > lyder som en udemærket ide - men virker det så efter hensigten ?
>
> Ja. Og ja, et snabela vil sikkert være en god ide.
men det løser ikke mit problem med "bad file descriptor" ?
--
|-|$235-|)k - Mickey
add your link at http://susie.dk/en/links
http://www.susie.dk - mickey(at)susie.dk
| |
Mickey (21-04-2001)
| Kommentar Fra : Mickey |
Dato : 21-04-01 22:31 |
|
"Søren Boll Overgaard" <boll@fw1.dk> skrev i en meddelelse
news:slrn9e3un9.1tjt.boll@treebeard.tolkien.dk...
> On Sat, 21 Apr 2001 23:17:46 +0200, Mickey wrote:
>
> >> Det letteste er at checke om linket er validt med f.ex.:
> >> if (fopen($link)) { // indsæt linket i databasen }
> >
> > og det checker altså om den får en 404 eller hva ?
>
> Nej. fopen returnerer false hvis den ikke kan åbne filen, hvilket i det
her
> tilfælde vil betyde at hvis ikke url'en er vaild, og fopen dermed ikke får
> en relevant statuskode tilbage, så fejler checket, og du ved at url'en
ikke
> findes.
jeg får den her:
Warning: fopen(" http://www.notexisting.dk/","r") - Bad file descriptor
på både
if (fopen("$url/", "r")) {
og
if (fopen("$url", "r")) {
>
> > - er der andet der skal checkes, jeg checker allerede om der er http://
> > foran osv...
>
> Det behøver du principielt ikke hvis du checker med fopen. Du kan dog lave
> en lille dims der automagisk prepender http:// hvis det ikke allerede
> findes.
det er også det den laver - kigger om der er http:// på, ellers sætter den
det på! (og der er muligheder for https, hTTp osv..)
--
|-|$235-|)k - Mickey
add your link at http://susie.dk/en/links
http://www.susie.dk - mickey(at)susie.dk
| |
Peter Brodersen (22-04-2001)
| Kommentar Fra : Peter Brodersen |
Dato : 22-04-01 00:12 |
|
On 21 Apr 2001 21:26:01 GMT, boll@fw1.dk (Søren Boll Overgaard) wrote:
>> og det checker altså om den får en 404 eller hva ?
>Nej. fopen returnerer false hvis den ikke kan åbne filen, hvilket i det her
>tilfælde vil betyde at hvis ikke url'en er vaild, og fopen dermed ikke får
>en relevant statuskode tilbage, så fejler checket, og du ved at url'en ikke
>findes.
fopen vil også returnere false ved en 404'er, når man bruger eksterne
URL's.
http://stock.ter.dk/hentfil.php
--
- Pede
Professionel nørd
| |
Michael Jack (23-04-2001)
| Kommentar Fra : Michael Jack |
Dato : 23-04-01 13:32 |
|
Søren Boll Overgaard <boll@fw1.dk> wrote:
> Nej. fopen returnerer false hvis den ikke kan åbne filen, hvilket i det her
> tilfælde vil betyde at hvis ikke url'en er vaild, og fopen dermed ikke får
> en relevant statuskode tilbage, så fejler checket, og du ved at url'en ikke
> findes.
Hvornår/dan timer fopen() ud? Kan det sættes i scriptet?
Eksempel:
Hvis siden svarer inden x sek. vil jeg gerne includere siden. Ellers vil
jeg vise noge lokalt i stedet.
Om siden svarer "hurtigt nok" vil bl.a. afhænge af belastning på
serveren hvor siden befinder sig, I guess? Manuale siger bare:
"If the open fails, the function returns false."
Mvh. Michael
| |
Søren Boll Overgaard (23-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 23-04-01 15:52 |
|
On Mon, 23 Apr 2001 14:31:58 +0200, Michael Jack wrote:
Hej
> Hvornår/dan timer fopen() ud? Kan det sættes i scriptet?
Der slår du hovedet på sømmet. Der ikke umiddelbart en måde at styre timeout
på, hvilket potentielt giver problemer. Jeg har ikke funden en måde at
håndtere det på.
--
Søren O.
Bedøm din edbforhandler på http://edbforhandlere.dk/
| |
Jonas Koch Bentzen (23-04-2001)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 23-04-01 16:55 |
|
Søren Boll Overgaard skrev:
> On Mon, 23 Apr 2001 14:31:58 +0200, Michael Jack wrote:
>
>> Hvornår/dan timer fopen() ud? Kan det sættes i scriptet?
>
> Der slår du hovedet på sømmet. Der ikke umiddelbart en måde at styre
> timeout på
Nej, men så kunne han jo bruge fsockopen i stedet for, hvilket giver
mulighed for timeout. Det er godt nok mere besværligt, men det er en
mulighed.
--
Venlig hilsen
Jonas Koch Bentzen
| |
Michael Jack (23-04-2001)
| Kommentar Fra : Michael Jack |
Dato : 23-04-01 18:09 |
|
Jonas Koch Bentzen <ingen.epostadresse@eksempel.dk> wrote:
> Nej, men så kunne han jo bruge fsockopen i stedet for, hvilket giver
> mulighed for timeout. Det er godt nok mere besværligt, men det er en
> mulighed.
Har I prøvet apache_lookup_uri()?
Den returnerer angiveligt bl.a. værdien request_time.
Jeg er kun interesseret i URL'er af typen HTTP, og PHP er installeret
som modul, så den burde kunne bruges.
Mvh. Michael
| |
Thomas L. Kjeldsen (23-04-2001)
| Kommentar Fra : Thomas L. Kjeldsen |
Dato : 23-04-01 18:44 |
|
Søren Boll Overgaard wrote:
>> Hvornår/dan timer fopen() ud? Kan det sættes i scriptet?
>
> Der slår du hovedet på sømmet. Der ikke umiddelbart en måde at styre timeout
> på, hvilket potentielt giver problemer. Jeg har ikke funden en måde at
> håndtere det på.
Måske kan du bruge den endnu udokumenterede "select" funktion:
http://lxr.php.net/source/php4/ext/sockets/sockets.c#399
/tlk
| |
Anders Johannsen (23-04-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 23-04-01 10:38 |
|
> Det letteste er at checke om linket er validt med f.ex.:
> if (fopen($link)) { // indsæt linket i databasen }
Der er to downsides ved den løsning:
1) Hvis linket findes, vil forbindelsen ikke blive lukket
2) fopen() virker også på f.eks. file:// adresser, hvilket kunne være
potentielt skadeligt
/A
| |
Søren Boll Overgaard (23-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 23-04-01 12:15 |
|
On Mon, 23 Apr 2001 11:38:19 +0200, Anders Johannsen wrote:
>> Det letteste er at checke om linket er validt med f.ex.:
>> if (fopen($link)) { // indsæt linket i databasen }
>
> Der er to downsides ved den løsning:
>
> 1) Hvis linket findes, vil forbindelsen ikke blive lukket
fclose?
> 2) fopen() virker også på f.eks. file:// adresser, hvilket kunne være
> potentielt skadeligt
Ja, men det at åbne en fil kan næppe betegnes som en stor risiko. Specielt
ikke idet den åbnes read-only, og lukkes umiddelbart efter.
--
Søren O.
If idiots could fly, IRC would be an airport
| |
Anders Johannsen (23-04-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 23-04-01 12:34 |
|
> > 1) Hvis linket findes, vil forbindelsen ikke blive lukket
>
> fclose?
Ja ... men med
>> if (fopen($link)) { // indsæt linket i databasen }
har du ikke nogen reference til den filpointer der skal lukkes.
if ($fp = @fopen($link))
fclose($fp);
// indsæt linket i databasen
}
gør derimod tricket.
> > 2) fopen() virker også på f.eks. file:// adresser, hvilket kunne være
> > potentielt skadeligt
>
> Ja, men det at åbne en fil kan næppe betegnes som en stor risiko. Specielt
> ikke idet den åbnes read-only, og lukkes umiddelbart efter.
Medgivet: det er en mindre ting.
/A
| |
Søren Boll Overgaard (23-04-2001)
| Kommentar Fra : Søren Boll Overgaard |
Dato : 23-04-01 13:10 |
|
On Mon, 23 Apr 2001 13:34:03 +0200, Anders Johannsen wrote:
>> > 1) Hvis linket findes, vil forbindelsen ikke blive lukket
>>
>> fclose?
>
> Ja ... men med
>
> >> if (fopen($link)) { // indsæt linket i databasen }
>
> har du ikke nogen reference til den filpointer der skal lukkes.
>
> if ($fp = @fopen($link))
>
> fclose($fp);
> // indsæt linket i databasen
> }
>
> gør derimod tricket.
Bagatel, der giver sig selv.
Iøvrigt er dit eksempel defekt, gæt selv hvor der mangler en {.
:)
--
Søren O.
There are no stupid questions, only inquisitive idiots
| |
Anders Johannsen (23-04-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 23-04-01 13:16 |
|
> Iøvrigt er dit eksempel defekt, gæt selv hvor der mangler en {.
Bagatel, der giver sig selv.
| |
Christian Jørgensen (22-04-2001)
| Kommentar Fra : Christian Jørgensen |
Dato : 22-04-01 08:28 |
|
Mickey <news002@susie.dk> wrote:
>jeg er ved at lave en "free for all" linkside - altså en hvor
>man kan skrive sit link ind selv.
Jeg skrev engang flg:
function check_link($url) {
$url_array = parse_url($url);
if (!$parse_url["path"]) $parse_url["path"] = "/";
@$fs = fsockopen($url_array["host"],80);
if ($fs) {
fputs($fs,"GET ".$url_array["path"]." HTTP/1.1\n");
fputs($fs,"Host: ".$url_array["host"]."\n");
fputs($fs,"Connection: close\n\r\n");
return !eregi("^http\/[0-9]\.[0-9] 404", fgets($fs,1024));
}
}
Måske man skulle smide en timeout-ting på fsockopen
--
Christian Jørgensen
http://www.razor.dk
"Uden cola og hikke - Duer helten ikke!"
| |
|
|