Avatar billede lojmann Nybegynder
20. februar 2005 - 17:05 Der er 8 kommentarer og
2 løsninger

Finde en bestemt string på udvalgt web-sites

Hej,

Jeg vil gerne lave en funktion til at tjekke om en bestemt kode findes på et web-site.

Den skal kunne finde en bestemt HTML kode, dog med mulighed for få undvigelser i selve koden!

Det som der minimum skal være er en <a href> til en bestemt URL www.test.dk etc. og så efter det et img-tag som henter et pic fra www.test.dk etc.

Er det noget der er nogle der kan henvise mig til på nettet eller skrive til mig - jeg har ikke selv specialt god tid til det nemlig.

Flere point gives om nødvendigt!

/Thomas
Avatar billede coderdk Praktikant
20. februar 2005 - 19:08 #1
Noget i stil med:

    $cont = file_get_contents( "http://www.example.dk/side.php" );
    if ( preg_match( "~<a href=\"?http://www.test.dk~i", $cont ) )
    {
        if ( preg_match( "~<img src=\"?http://www.test.dk/~i", $cont ) )
        {
            echo "Fandt det hele :)";
        }
        else
        {
            echo "Billede ikke fundet.";
        }
    }
    else
    {
        echo "Link ikke fundet.";
    }
Avatar billede nyst Nybegynder
21. februar 2005 - 12:12 #2
>> coderdk

Undskyld jeg blander mig men hvis du får tid så

http://www.eksperten.dk/spm/593077 

fortsættelse af det gamle problem*S*

:-)nyst
Avatar billede lojmann Nybegynder
21. februar 2005 - 19:50 #3
Jeg kan ikke få koden til at virke helt, hvis man modificer i selve URL'en til link eller pic. så virker det ikke, dog kan det godt bruges sådan som det er der så jeg accepter dit svar alligevel, dog kun 30 point!
Avatar billede coderdk Praktikant
21. februar 2005 - 20:14 #4
Fint nok, hvordan prøver du at ændre det? Måske kan jeg få det til at virke ;)
Avatar billede lojmann Nybegynder
21. februar 2005 - 20:44 #5
Det er bare så den nu er sådan her:

    $cont = file_get_contents( "http://www.lojmann.dk/" );

    if ( preg_match( "~<a href=\"?http://www.shorturl.dk~i", $cont ) ) {
        echo "Fandt link<BR>";
    }
    if ( preg_match( "~<img src=\"?images/shorturl_dk_small.gif~i", $cont ) ) {
        echo "Fandt billede<BR>";
    }

så det er ikke de store ændringer kan man sige ;)

men der er jo ballade med sider jeg tester (tester ca. 200 stk. lige nu!) som er nede, så dør scriptet bare - det er ikke så fedt, mon det kan fikses? har søgt lidt efter noget timeout men sys ikke lige det vil.... :/
Avatar billede coderdk Praktikant
21. februar 2005 - 20:56 #6
Den kode du skriver virker jo fint... Du kan måske gøre sådan:

    set_time_limit(0);

    if ( $cont = @file_get_contents( "http://www.lojmann.dk/" ) )
    {
        if ( preg_match( "~<a href=\"?http://www.shorturl.dk~i", $cont ) ) {
            echo "Fandt link<BR>";
        }
        if ( preg_match( "~<img src=\"?images/shorturl_dk_small.gif~i", $cont ) ) {
            echo "Fandt billede<BR>";
        }
    }
    else
    {
        echo "URL fejlede...<br>";
    }
Avatar billede lojmann Nybegynder
22. februar 2005 - 21:19 #7
Ja jo det er mig der sov i timen!

Men kan mit lille timout-problem løses mon?
Avatar billede coderdk Praktikant
22. februar 2005 - 22:06 #8
Virker det ikke med set_time_limit(0) (skulle tillade PHP-scripts at køre i en uendelighed)
Avatar billede lojmann Nybegynder
01. april 2005 - 19:32 #9
Endelig fik jeg tid til at se på det, og det løser ikke problemet...

Grunden er at det er ikke selve scriptet som skal time ud, men det er forsøget på at finde hente info fra siden som skal stoppe efter f.eks. 10 sec...

/Thomas
Avatar billede coderdk Praktikant
01. april 2005 - 23:56 #10
Uhm, ikke forstået. Hvis den ikke kan connecte, så fejler den jo efter ganske kort tid. Jeg troede at dit problem var at selve scriptet timede ud - Hvordan mener du helt præcist?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester